基本
基于mybaits的数据源配置
导包
<!-- tkmapper -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
包扫描
写在主入口或者任何@configuration注解类上
@tk.mybatis.spring.annotation.MapperScan(basePackages={xxx})
如何使用
自定义接口,实现Mapper接口
public interface TestMapper extends Mapper<ProductVo> {
}
继承后,获取通用CRUD方法,如果需要添加自定义方法,直接在接口中添加,然后在xml目录添加xml文件(与普通mybatis使用方法相同)
查询
分页:可以配合pagehelper进行分页查询操作
条件:使用Example对象
/**
* tkmapper
*/
@RequestMapping("test3")
public void run2() {
Page page = PageHelper.startPage(0, 10); // 分页
long total = page.getTotal();
Example e = new Example(ProductVo.class); // 构建条件对象
e.createCriteria()
.andEqualTo("name",1);
List<ProductVo> selectAll = mapper2.selectByExample(e);
long total2 = page.getTotal();
}
对象实体和Mapper文件自动生成
配合mybatis generator来生成。generator.xml的配置如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<property name="javaFileEncoding" value="UTF-8"/>
<property name="useMapperCommentGenerator" value="true"/>
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<property name="caseSensitive" value="true"/>
<property name="forceAnnotation" value="true"/>
<property name="generateColumnConsts" value="true"/>
<property name="generateDefaultInstanceMethod" value="true"/>
<property name="beginningDelimiter" value=""/>
<property name="endingDelimiter" value=""/>
<!--使用Data注解时,Getter,Setter,ToString,EqualsAndHashCode注解无效-->
<!--<property name="lombok" value="Data,Accessors"/>-->
<property name="lombok" value="Getter,Setter,ToString,Accessors,EqualsAndHashCode"/>
<property name="lombokEqualsAndHashCodeCallSuper" value="true"/>
<property name="swagger" value="true"/>
</plugin>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/lee27" userId="root"
password="123456">
</jdbcConnection>
<!-- model -->
<javaModelGenerator targetPackage="com.lee.jrlee27.mybatis.tkmapper.vo"
targetProject="src/main/java"/>
<!-- sql文件 -->
<sqlMapGenerator targetPackage="mapper"
targetProject="src/main/resources"/>
<!-- Mapper接口 -->
<javaClientGenerator targetPackage="com.lee.jrlee27.mybatis.tkmapper.dao"
targetProject="src/main/java"
type="XMLMAPPER"/>
<table tableName="products2">
<generatedKey column="id" sqlStatement="JDBC"/>
</table>
</context>
</generatorConfiguration>
与普通不同的地方在于多了一个插件的配置
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<property name="caseSensitive" value="true"/>
<property name="forceAnnotation" value="true"/>
<property name="generateColumnConsts" value="true"/>
<property name="generateDefaultInstanceMethod" value="true"/>
<property name="beginningDelimiter" value=""/>
<property name="endingDelimiter" value=""/>
<!--使用Data注解时,Getter,Setter,ToString,EqualsAndHashCode注解无效-->
<!--<property name="lombok" value="Data,Accessors"/>-->
<property name="lombok" value="Getter,Setter,ToString,Accessors,EqualsAndHashCode"/>
<property name="lombokEqualsAndHashCodeCallSuper" value="true"/>
<property name="swagger" value="true"/>
</plugin>
可以生成:实体model(带注解),Mapper文件(继承Mapper,也可以自定义父Mapper接口),sqlmapper(仅仅有resultmap,没有sql方法)