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

.

  

最新文章

  1. 在Linux下的中断方式读取按键驱动程序
  2. 【python】点分十进制ip与数字互转
  3. webservice MaxReceivedMessageSize :已超过传入消息(65536)的最大消息大小配额
  4. ubuntu14 谷歌输入法
  5. CSS水平垂直居中总结
  6. hibernate3与ehcache-2.8.3配合使用,在多个SessionFactory实例的情况下出现&ldquo;Another unnamed CacheManager already exists in the same VM&rdquo;问题
  7. ios 调用js方法(ios监听js方法执行)
  8. Android-关于屏幕适配的一些经验
  9. C#中获得汉字的首拼音(简化版)
  10. 【POJ2773】Happy 2006 欧几里德
  11. python 之路,Day11 (下)- sqlalchemy ORM
  12. Draw2d中的布局管理器Layout比较
  13. 实例化bean
  14. 关闭NetworkManager的作用
  15. 获取Windows服务下当前路径的方法
  16. 字符串匹配(二)----KMP算法
  17. Gym 101908C - Pizza Cutter - [树状数组]
  18. javascript 实现数据结构 - 队列
  19. flask 在模板中渲染表单
  20. 3.Liunx网络管理命令

热门文章

  1. 人均年薪50万以上,docker到底是什么?为什么这么火?
  2. 使用FOR XML PATH实现多行数据合并成一列
  3. KMP:补齐循环节
  4. 【uva 10600】ACM Contest and Blackout(图论--次小生成树 模版题)
  5. Codeforces301D. Yaroslav and Divisors
  6. 牛客编程巅峰赛S2第10场 - 钻石&amp;王者 C.牛牛的路径和 (位运算,dfs)
  7. Codeforces Round #171 (Div. 2) B. Books (模拟队列)
  8. Codeforces Round #501 (Div. 3) B. Obtaining the String (思维,字符串)
  9. js中for循环遍历的写法
  10. docker的FAQ