springboot + tkmapper

基本

基于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方法)

猜你喜欢

转载自blog.csdn.net/qq_36382225/article/details/94392007