TkMyBatis大杂烩
1. 什么是TkMyBatis
TkMyBatis是一个MyBatis的通用Mapper工具
2. 引入TkMyBatis到SpringBoot项目
以Gradle为例
compile 'tk.mybatis:mapper-spring-boot-starter:2.0.3'
3. 基本用法
- 创建模型类(不需要注解)
- 创建Mapper接口,并继承tk.mybatis.mapper.common.Mapper(不需要注解)
- 注册Mapper 通过MapperScan(tk包非MyBatis包)注解来注册全部的Mapper
示例:
package bj;
import lombok.Data;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.spring.annotation.MapperScan;
import javax.annotation.Resource;
import javax.persistence.Column;
import javax.persistence.Id;
import java.util.Date;
/**
* Created by BaiJiFeiLong@gmail.com at 2018/6/26 下午1:51
*/
@SpringBootApplication
@MapperScan(basePackageClasses = App.class)
public class App implements ApplicationListener<ApplicationReadyEvent> {
@Resource
private PersonMapper personMapper;
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
@Override
public void onApplicationEvent(ApplicationReadyEvent event) {
System.out.println("selectAll");
System.out.println(personMapper.selectAll());
System.out.println("selectByPrimaryKey");
System.out.println(personMapper.selectByPrimaryKey(6));
}
}
@Data
class Person {
@Id
private Integer id;
private String username;
private String firstName;
private Date createdAt;
@Column(name = "the_remark")
private String remark;
}
interface PersonMapper extends Mapper<Person> {
}
4. 模型类中的注解
TkMyBatis主要使用的是Jpa注解。一般情况下,如果模型属性与数据库名称一样的话,不需要特殊配置。
如果数据库用下划线命名法,模型类用驼峰命名法,不需要设置,TkMyBatis默认开启转换。
数据库字段与模型字段通过命名转换仍然不匹配的话,需要使用@Column(name = "the_name")
来进行关联
如果需要用到TkMyBatis提供的主键相关方法,则需要在模型类中注解主键,比如@Id
5. 具体用法
集成Mapper接口后,我们的Mapper接口就有了大量的基础增删该查接口
- selectAll 查询全部记录
- selectByPrimaryKey 查询主键
- insert 插入一条记录(每个字段都会反映在SQL中)
- insertSelective 插入一条记录,值为null的字段不反映在SQL中,给数据库使用默认值的机会
文章首发链接:https://baijifeilong.github.io/2018/06/27/tkmybatis/
TkMyBatis大杂烩的更多相关文章
- Html菜鸡大杂烩
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- ASP.NET Web API 入门大杂烩
[前言] 本文是大杂烩,意思即是:到处Copy再加一点点思考而混在一起的文章,引用来源因为太多太杂故而省略,望原作者原谅. [概述] ASP.NET Web API随ASP.NET MVC 4一起发行 ...
- iOS小知识点大杂烩
转自OPEN经验 1,打印View所有子视图 po [[self view]recursiveDescription] 2,layoutSubviews调用的调用时机 * 当视图第一次显示的时候会被调 ...
- ASP.NET开发大杂烩
ASP.NET开发大杂烩 正巧今天遇到一个获取动态生成table中的一个动态生成的TextBox的值的时候总是findcontrol不到.后来经过我们的徐总,瞬间解决,但是我觉得对于一个页面的声明周期 ...
- C++学习笔记——大杂烩
C++学习笔记--大杂烩 by方阳 版权声明:本文为博主原创文章,转载请指明转载地址 h ...
- XMPP大杂烩
XMPP大杂烩 对XMPP的理解 XMPP是基于XML的即时通讯协议.对即时通讯场景进行了高度抽象,比如用订阅对方的上下线状态表示好友.提供了文本通讯.用户上下线通知.联系人管理.群组聊天等功能,还可 ...
- MyBatis大杂烩
1. 集成到SpringBoot项目中 核心依赖是org.mybatis.spring.boot:mybatis-spring-boot-starter,当然还需要jdbc和数据库驱动 build.g ...
- 大杂烩 -- 查找单向链表倒数第m个元素
基础大杂烩 -- 目录 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1.输入并查找 方案:头插法,正向查找第m个元素. ...
- 大杂烩 -- HashMap、HashTable、ConCurrentHashMap 联系与区别
基础大杂烩 -- 目录 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1. Hashtable 和 HashMap ⑴ ...
随机推荐
- 网络基础-- 之 子网划分 and 一些基础解释
子网划分的核心思想就是------ 借主机为为网络位 最近几天--看了一下今天就分享一波. 首先我们先来理解一下 ----- one. 进制的转换 ----- two. IP地址 -- ...
- [leetcode]38. Count and Say数数
The count-and-say sequence is the sequence of integers with the first five terms as following: 1. 1 ...
- Swift 闭包即OC中的Block
- 闭包的定义 1.提前准备好的代码 2.在需要的时候执行 3.可以当做参数传递 // 1.最简单的闭包 // () -> () 没有参数,没有返回值的函数 // 如 ...
- 在IIS7里配置 ISAPI,运行dll程序,总提示下载dll
在IIS7里配置 ISAPI,运行dll程序,总提示下载dll,只需要把对应站点应用程序池里面的高级设置里的启用32位应用程序,设为“true"即可.
- sleep() 和 wait() 区别
sleep()不释放同步锁,wait()释放同步锁 sleep()的作用是让线程休眠指定的时间,时间到后自动恢复线程执行.运行的主动权是由线程决定的. wait()可以用notify()直接唤起,运行 ...
- ABP框架系列之八:(Introduction-介绍)
Introduction We are creating different applications based on different needs. But implementing commo ...
- IIS 设置文件传输大小限制
IIS默认传输文件大小为30M,最大允许传输为2G. 1.通过webconfig配置节点设置 在IIS 6.0 设置如下配置节点: 但是IIS 7.0-8.0还要做添加如下配置节点才能正确,否则还是默 ...
- 《大型网站系统与Java中间件实践》
读了一下,个人认为最好的部分,就是第四章了. CH04 服务框架 4.2 服务设计与实现 // 获取可用服务地址列表 // 确定调用服务目标机器 // 建立连接(Socket) // 请求序列化 // ...
- Python之旅Day1 数据类型初识(数字|字符串|列表|数据运算) 编码 表达式(if...else|for|while)
初识PYTHON Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(吉多·范罗苏姆)于 ...
- JDBC几种常见的数据库连接
JDBC的URL=协议名+子协议名+数据源名.a 协议名总是“jdbc”.b 子协议名由JDBC驱动程序的编写者决定.c 数据源名也可能包含用户与口令等信息:这些信息也可单独提供.几种常见的数据库连接 ...