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());
    }

.

 

  

posted @ 2020-06-28 14:23  钟小嘿  阅读(1945)  评论(0编辑  收藏  举报