Spring Boot版本:2.3.4.RELEASE
tkMybatis封装了底层SQL,使开发者在操作单表的情况下可以不考虑SQL的写法,通过Java函数接口操作数据库。
并且tkMybatis是基于Mybaits的,所以也能编写XML文件来执行复杂的SQL语句。
Maven依赖
1 | xml复制代码<dependencies> |
配置文件
application.yml:
1 | yml复制代码server: |
配置文件中开启了hibernate自动建表方便测试,建表前检查下数据库有没有同名表,有则删除。
新建两个实体类
TbUser和TbProduct
1 | markdown复制代码- src |
TbUser:
1 | java复制代码package com.cc.model.entity; |
TbProduct:
1 | java复制代码package com.cc.model.entity; |
创建操作user表和product表的dao类:
UserDao:
1 | java复制代码package com.cc.dao; |
ProductDao:
1 | java复制代码package com.cc.dao; |
tkmybatis配置类
为了使dao类能被扫描到,还需要mybatis测试类:
1 | java复制代码package com.cc.config; |
创建一个controller来测试
TestController:
1 | java复制代码package com.cc.controller; |
启动程序使其生效。
实战
实战的内容为:
- 插入一个user数据
- 更新一个user数据
- 查询所有user数据
- 查询指定名称的user
- 插入几条product数据
- 根据userId查询关联的所有product数据(连表查询)
- 删除user数据
为了简单,接口的参数都是写死的。
插入一个user数据
1 | java复制代码@GetMapping("/insertUser") |
更新一个user数据
1 | java复制代码@GetMapping("/updateUser") |
查询所有user数据
1 | java复制代码@GetMapping("/selectAllUser") |
查询指定id/名称的user
1 | java复制代码@GetMapping("/selectUserById") |
插入几条product数据
1 | java复制代码@GetMapping("/insertSomeProduct") |
根据userId查询关联的所有product数据(连表查询)
因为dao只能操作单表,所以我们需要编写xml来实现连表操作。
首先要在配置文件文件中添加包扫描:
application.yml
1 | java复制代码## dao.xml的路径配置 |
然后在resources下创建dao文件夹,并且新建product.xml:
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
在ProductDao下新增函数:
1 | java复制代码package com.cc.dao; |
然后编写接口:
1 | java复制代码@GetMapping("/selectProductByUserId") |
删除user数据
1 | java复制代码@GetMapping("/deleteUser") |
例子虽然不多,但是已经足够了解到,借助tkMybatis框架,我们操作单表的时候不用再写SQL语句,可以省略许多的代码,我们不用再为每一个实体类编写增删改查语句,仅仅只要新建一个映射实体类的Dao,不过几行通用代码而已。
还有当单表操作不满足于我们需求的时候,可以自行编写SQL语句并应用到XML下,真正做到按需开发,能省则省。
本文转载自: 掘金