zoukankan      html  css  js  c++  java
  • TKMybatis基本用法

    TKMybatis与Mybatis-plus都是mybatis的扩展,有相同的地方,也有不同的地方。

    1.导入坐标

      <!--mybatis依赖-->
    <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.0.0</version>
            </dependency>
     <!--tk.mybatis依赖-->
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper-spring-boot-starter</artifactId>
                <version>2.1.5</version>
            </dependency>

    需要注意的是,这里mybatis的版本必须在2.0.0+,不然会报错。

    2.创建实体类

    package com.example.easypoidemoadmin.entity;
    
    import lombok.Data;
    
    import javax.persistence.Column;
    import javax.persistence.Table;
    
    /**
     * @author zhongyushi
     * @date 2020/6/26 0026
     * @dec 描述
     */
    @Data
    @Table(name = "comp")
    public class Company {
       @Id
        @Column(name = "name")
        private String name;
    
    
        @Column(name = "logo")
        private String logo;
    
        @Column(name = "dec1")
        private String dec;
    
        public Company(String name,String logo,String dec){
            this.name=name;
            this.logo=logo;
            this.dec=dec;
        }
    
        public Company(){}
    }

    这里通过Table注解来指定数据库中的表名,默认和实体类相同,这里为了简单,就修改了表名。

    3.创建dao接口类

    package com.example.easypoidemoadmin.dao;
    
    import com.example.easypoidemoadmin.entity.Company;
    import tk.mybatis.mapper.common.Mapper;
    
    /**
     * @author zhongyushi
     * @date 2020/6/26 0026
     * @dec 描述
     */
    @org.apache.ibatis.annotations.Mapper
    public interface CompanyDao extends Mapper<Company> {
    
    }

    通过集成Mapper方法来使用TKMybatis,注意不能把包导错了。

    4.启动类添加包扫描

    import tk.mybatis.spring.annotation.MapperScan;
    
    @SpringBootApplication
    @MapperScan("com.example.easypoidemoadmin.dao")

    这里包扫描的注解也是使用TKMybatis的。

    5.controller接口测试

      @Autowired
        private CompanyDao companyDao;
        @GetMapping("/test")
        public void test(){
            List<Company> companies = companyDao.selectAll();
            System.out.println(companies);
        }

    这里只使用了一个方法,还有一些常用的方法,比如insertSelective,它会只把有值(不为NULL)的属性插入到数据库。其他的雷同,主要包含Selective即可。

    6.常用注解

    6.1主键自增

    mysql:

    mysql可以在创建表时指定主键自增,因此在插入数据时不给id的值即可。

    oracle:

    @KeySql(sql = "select attach.nextval from dual", order = ORDER.BEFORE)
    

    其实就是先创建一个序列,然后在这里去使用序列的值。

    创建序列的语句:

    create sequence xk_SEQ
    increment by 1
    start with 1
    minvalue 1
    maxvalue 9999999
    order
    cache 20
    cycle;
    xk_SEQ是序列名称。

    7.分页

    分页使用插件PageHelper,然后实例化一个PageInfo对象,里面包含了查询的数据列表,数据总条数等等。

     public Result getList(String name,String dec, Integer page, Integer limit) {
            Map<String,Object> map=new HashMap<>();
            map.put("name",name);
            map.put("dec",dec);
            List<Company> list =comDao.selectBySelective(map);
            PageHelper.startPage(page, limit);
            PageInfo pageInfo = new PageInfo(list);
            return new Result(200, pageInfo.getList(), (int) pageInfo.getTotal(), pageInfo.getPages());
        }

    .

      

    就是这么简单,你学废了吗?感觉有用的话,给笔者点个赞吧 !
  • 相关阅读:
    踏个脚印,今天在博客园安了个家!
    微软WebDeployment Project插件发布网站时老是报出"aspnet_merge.exe”已退出,代码为1的错误
    从xap文件中读取文件
    ASP.NET MVC学习笔记二(URL映射规则)
    Siverlight Contrib的alpha版与正式版有很大区别
    带你尝鲜LiteOS 组件EasyFlash
    带你了解几种二进制代码相似度比较技术
    让数据大白于天下:GCC插件实现代码分析和安全审计
    鸿蒙轻内核源码分析:MMU协处理器
    高性能云网关,打通云内外业务互通的任督二脉
  • 原文地址:https://www.cnblogs.com/zys2019/p/13196320.html
Copyright © 2011-2022 走看看