tkmapper

  • 简介

1.整合tkmapper

  •  添加tkmapper的依赖
     

    <!--tkmapper-->
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper-spring-boot-starter</artifactId>
                <version>2.1.5</version>
            </dependency>

  • 修改启动类的@MapperScan注解的包

     

    import tk.mybatis.spring.annotation.MapperScan;
    
    @SpringBootApplication
    @MapperScan("com.qfedu.fmmall.dao")
    public class ApiApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ApiApplication.class, args);
        }
    
    }

2.逆向工程

  • 添加逆向工程依赖

     
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.5</version>
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>5.1.47</version>
                </dependency>
                <dependency>
                    <groupId>tk.mybatis</groupId>
                    <artifactId>mapper</artifactId>
                    <version>3.4.4</version>
                </dependency>
            </dependencies>
        </plugin>

  • 逆向⼯程配置

    在resources/generator⽬录下创建generatorConfig.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>
     <!-- 引⼊数据库连接配置 -->
    <!-- <properties resource="jdbc.properties"/>-->
     <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
     <property name="beginningDelimiter" value="`"/>
     <property name="endingDelimiter" value="`"/>
     <!-- 配置 GeneralDAO -->
     <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
     <property name="mappers" value="com.qfedu.tkmapperdemo.general.GeneralDAO"/>
     </plugin>
     <!-- 配置数据库连接 -->
     <jdbcConnection driverClass="com.mysql.jdbc.Driver"
     connectionURL="jdbc:mysql://localhost:3306/fmmall2" 
    userId="root" password="admin123">
     </jdbcConnection>
     <!-- 配置实体类存放路径 -->
     <javaModelGenerator targetPackage="com.qfedu.tkmapperdemo.beans"
    targetProject="src/main/java"/>
     <!-- 配置 XML 存放路径 -->
     <sqlMapGenerator targetPackage="/" targetProject="src/main/resources/mappers"/>
     <!-- 配置 DAO 存放路径 -->
     <javaClientGenerator targetPackage="com.qfedu.tkmapperdemo.dao"
    targetProject="src/main/java" type="XMLMAPPER"/>
     <!-- 配置需要指定⽣成的数据库和表,% 代表所有表 -->
     <table tableName="%">
     <!-- mysql 配置 -->
    <!-- <generatedKey column="id" sqlStatement="Mysql" identity="true"/>-->
     </table>
    <!-- <table tableName="tb_roles">-->
    <!-- &lt;!&ndash; mysql 配置 &ndash;&gt;-->
    <!-- <generatedKey column="roleid" sqlStatement="Mysql" identity="true"/>-->
    <!-- </table>-->
    <!-- <table tableName="tb_permissions">-->
    <!-- &lt;!&ndash; mysql 配置 &ndash;&gt;-->
    <!-- <generatedKey column="perid" sqlStatement="Mysql" identity="true"/>-->
    <!-- </table>-->
     </context>
    </generatorConfiguration>

  • 将配置⽂件设置到逆向⼯程的maven插件

  • 执⾏逆向⽣成

3.使用方法 

 

import org.springframework.beans.factory.annotation.Autowired;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = TkmapperDemoApplication.class)
public class CategoryDAOTest {
    @Autowired
    private CategoryDAO categoryDAO;

    @Test
    public void testInsert() {
        Category category = new Category(0, "测试类别3", 1, 0, "03.png", "xixi", "aaa.jpg", "black");
        //int i = categoryDAO.insert(category);
        int i = categoryDAO.insertUseGeneratedKeys(category);
        System.out.println(category.getCategoryId());
        assertEquals(1, i);
    }

    @Test
    public void testUpdate() {
        Category category = new Category(48, "测试类别4", 1, 0, "04.png", "heihei", "aaa.jpg", "black");
        int i = categoryDAO.updateByPrimaryKey(category);
        // 根据⾃定义条件修改,Example example就是封装条件的
        // int i1 = categoryDAO.updateByExample( Example example);
        assertEquals(1, i);
    }

    @Test
    public void testDelete() {
        int i = categoryDAO.deleteByPrimaryKey(48);
        // 根据条件删除
        //int i1 = categoryDAO.deleteByExample(Example example);
        assertEquals(1, i);
    }

    @Test
    public void testSelect1() {
        //查询所有
        List<Category> categories = categoryDAO.selectAll();
        for (Category category : categories) {
            System.out.println(category);
        }
    }

    @Test
    public void testSelect2() {
        //根据主键查询
        Category category = categoryDAO.selectByPrimaryKey(47);
        System.out.println(category);
    }

    @Test
    public void testSelect3() {
        //条件查询
        //1.创建⼀个Example封装 类别Category查询条件
        Example example = new Example(Category.class);
        Example.Criteria criteria = example.createCriteria();
        criteria.andEqualTo("categoryLevel", 1);
        criteria.orLike("categoryName", "%⼲%");
        List<Category> categories = categoryDAO.selectByExample(example);
        for (Category category : categories) {
            System.out.println(category);
        }
    }

    @Test
    public void testSelect4() {
        //分⻚查询
        int pageNum = 2;
        int pageSize = 10;
        int start = (pageNum - 1) * pageSize;
        RowBounds rowBounds = new RowBounds(start, pageSize);
        List<Category> categories = categoryDAO.selectByRowBounds(new Category(), rowBounds);
        for (Category category : categories) {
            System.out.println(category);
        }
        //查询总记录数
        int i = categoryDAO.selectCount(new Category());
        System.out.println(i);
    }

    @Test
    public void testSelect5() {
        //带条件分⻚
        //条件
        Example example = new Example(Category.class);
        Example.Criteria criteria = example.createCriteria();
        criteria.andEqualTo("categoryLevel", 1);
        //分⻚
        int pageNum = 2;
        int pageSize = 3;
        int start = (pageNum - 1) * pageSize;
        RowBounds rowBounds = new RowBounds(start, pageSize);
        List<Category> categories = categoryDAO.selectByExampleAndRowBounds(example, rowBounds);
        for (Category category : categories) {
            System.out.println(category);
        }
        //查询总记录数(满⾜条件)
        int i = categoryDAO.selectCountByExample(example);
        System.out.println(i);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值