使用SpringBoot+TKmybatis+mysql实现简单demo(后台管理增删改查)
TKmybatis 是基于 Mybatis 框架开发的一个工具,通过调用它提供的方法实现对单表的数据操作,不需要写任何 sql 语句,这极大地提高了项目开发效率。
可参考https://www.codeleading.com/article/98311983977/
TKmybatis 的封装依赖一个 @SelectProvider 注解来完成,如果你使用过 @Select 注解,那么 @SelectProvider 与它没有质的区别,只是在定义注解的方式上有所不同, 一个是直接定义 sql, 一个是在外部定义好 sql 直接引用。
增删改查依赖注解:@InsertProvider 注解、@DeleteProvider 注解、@UpdateProvider 注解、@SelectProvider 注解
public interface Mapper {
@Select("select user_id,user_name from t_user ")
List<Map<String, String>> getUserInfo();
}
public interface SelectAllMapper<T> {
@SelectProvider(type = BaseSelectProvider.class,method ="dynamicSQL"
)
List<T> selectAll();
}
@SelectProvider 引用的各种 *Provider.class 实现类,就是依赖反射、注解等手段拼接 SQL 语句的过程。
/**
* 查看全部
*/
public String selectAll(MappedStatement ms) {
Class<?> entityClass = this.getEntityClass(ms);
this.setResultType(ms, entityClass);
StringBuilder sql = new StringBuilder();
sql.append(SqlHelper.selectAllColumns(entityClass));
sql.append(SqlHelper.fromTable(entityClass, this.tableName(entityClass)));
sql.append(SqlHelper.orderByDefault(entityClass));
return sql.toString();
}
TKmybatis 底层源码如下:



springBoot整合tkMybatis实现步骤:
1: 引入依赖
2: 实体类配置注解(@Id @Table)
3: Mapper继承tk的接口
4:启动类定义扫描Mapper接口的路径(@MapperScan)
5:配置文件定义扫描mapper.xml文件的路径(yml 或者 properties文件)
6:调用tk提供的接口和数据库交互
在pom.xml中引入tk.mybatis的引用:
<dependency>
<groupId>tk.mybatisgroupId>
<artifactId>mapper-spring-boot-starterartifactId>
<version>1.2.4version>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<scope>runtimescope>
dependency>
配置 application.yml:
# 服务端口
server:
port: 8083
# 数据源配置
spring:
datasource:
name: test
url: jdbc:mysql://localhost:3306/db_user?&allowMultiQueries=true&useUnicode=true