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

.

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM