TKMybatis基本用法
本文共 3,000 字,预计阅读时间 10 分钟
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:
1 | @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()); }
.
就是这么简单,你学废了吗?感觉有用的话,给笔者点个赞吧 !
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!