-
SpringBoot整合tkMybatis基础教程
2021-02-07 19:24:53通用mapper 概念 使用Mybatis时,大的问题是,要写大量的重复SQL语句在xml文件中,除了特殊的业务逻辑SQL语句之外,还有大量结构类似的增删改查SQL。而且,当数据库表结构改动时,对应的...-- 添加了tkmybatis的启动通用mapper
概念
使用Mybatis时,大的问题是,要写大量的重复SQL语句在xml文件中,除了特殊的业务逻辑SQL语句之外,还有大量结构类似的增删改查SQL。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这大量增 加了程序员的负担。避免重复书写CRUD映射的框架有两个
- 通用mybatis(tk mybatis)
- mybatis plus,通能更加强大
依赖
通用Mapper的作者也为自己的插件编写了启动器,我们直接引入即
<!-- 添加了tkmybatis的启动器依赖可以注释掉原本mybatis的依赖--> <!--<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency>--> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.0.2</version> </dependency>
实体类
tk mybatis 实体类使用的注解是jpa注解
import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Data @NoArgsConstructor @AllArgsConstructor @ToString @Table public class Admin { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String account; private String password; }
注意事项:
- 默认表名=类名,字段名=属性名
- 表名可以使用 @Table(name = “tableName”) 进行指定 ,如果表名和实体类名相同可以不加name属性
- @Column(name = “fieldName”) 指定 ,如果字段名和属性名相同可以不加属性name
- 使用 @Transient 注解表示跟字段不进行映射
- 主键id必须要 @Id 使用指定,以及@GeneratedValue(strategy = GenerationType.IDENTITY)表示主键自增策略
不需要做任何配置就可以使用了
持久层
import com.kaikeba.entity.Admin; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import tk.mybatis.mapper.common.Mapper; import java.util.List; @Repository public interface AdminMapper extends Mapper<Admin> { @Select("select * from admin") public List<Admin> findAll(); }
1、必须继承 tk mybatis提供的Mapper类,以及使用需要操作的bean类作为泛型参数
2、继承完也可以自行添加数据库操作一旦继承了Mapper,继承的Mapper就拥有了Mapper所有的通用方法:
Select
方法: List select(T record);
说明:根据实体中的属性值进行查询,查询条件使用等号方法: T selectByPrimaryKey(Object key);
说明:根据主键字段进行查询,方法参数必须包含完整的主键属性, 查询条件使用等号方法: List selectAll();
说明:查询全部结果,select(null)方法能达到同样的效果方法: T selectOne(T record);
说明:根据实体中的属性进行查询,只能有一个返回值,有多个结果是抛出异 常,查询条件使用等号方法: int selectCount(T record);
说明:根据实体中的属性查询总数,查询条件使用等号 Insert方法: int insert(T record);
说明:保存一个实体,null的属性也会保存,不会使用数据库默认值 方法: int insertSelective(T record); 说明:保存一个实体,null的属性不会保存,会使用数据库默认值Update
方法: int updateByPrimaryKey(T record);
说明:根据主键更新实体全部字段,null值会被更新方法: int updateByPrimaryKeySelective(T record);
说明:根据主键更新属性不为null的值Delete
方法: int delete(T record);
说明:根据实体属性作为条件进行删除,查询条件使用等号方法: int deleteByPrimaryKey(Object key);
说明:根据主键字段进行删除,方法参数必须包含完整的主键属性Example方法
方法: List selectByExample(Object example);
说明:根据Example条件进行查询 重点:这 个查询支持通过 Example 类指定查询列,通过 selectProperties 方法指定查询列方法: int selectCountByExample(Object example);
说明:根据Example条件进行查询总数方法: int updateByExample(@Param(“record”) T record, @Param(“example”) Object example);
说明:根据 Example条件更新实体 record 包含的全部属性,null值会被更新方法: int updateByExampleSelective(@Param(“record”) T record, @Param(“example”) Object example);
说明:根据Example条件更新实体 record 包含的不是null的属性值方法: int deleteByExample(Object example);
说明:根据Example条件删除数据启动类
注意:必须使用tk mybatis的MapperScan
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import tk.mybatis.spring.annotation.MapperScan; @SpringBootApplication @MapperScan("com.kaikeba.mapper") public class SpringbootMybatisApplication { public static void main(String[] args) { SpringApplication.run(SpringbootMybatisApplication.class, args); } }
-
java项目tkmybatis整合_SpringBoot集成TkMybatis插件
2021-03-10 01:12:47前提:基于SpringBoot项目,正常集成Mybatis后,为了简化sql语句的编写,甚至达到无mapper.xml文件。在本篇总结教程,不在进行SpringBoot集成... 引入TkMybatis的Maven依赖2. 实体类的相关配置,@Id,@Table3. Mapper继...前提:
基于SpringBoot项目,正常集成Mybatis后,为了简化sql语句的编写,甚至达到无mapper.xml文件。
在本篇总结教程,不在进行SpringBoot集成Mybatis的概述。
如有需要,请查看我另一篇文章 SpringBoot集成MyBatis,这里不再赘述。
一. 实现步骤
1. 引入TkMybatis的Maven依赖
2. 实体类的相关配置,@Id,@Table
3. Mapper继承tkMabatis的Mapper接口
4. 启动类Application或自定义Mybatis配置类上使用@MapperScan注解扫描Mapper接口
5. 在application.properties配置文件中,配置mapper.xml文件指定的位置[可选]
6. 使用TkMybatis提供的sql执行方法
PS :
1. TkMybatis默认使用继承Mapper接口中传入的实体类对象去数据库寻找对应的表,因此如果表名与实体类名不满足对应规则时,会报错,这时使用@Table为实体类指定表。(这种对应规则为驼峰命名规则)
2. 使用TkMybatis可以无xml文件实现数据库操作,只需要继承tkMybatis的Mapper接口即可。
3. 如果有自定义特殊的需求,可以添加mapper.xml进行自定义sql书写,但路径必须与步骤4对应。
6. 如有需要,实现mapper.xml自定义sql语句
二. 实现细节
2.1 引入TkMybatis的Maven依赖
tk.mybatis
mapper
4.0.3
tk.mybatis
mapper-spring-boot-starter
2.0.3
2.2 实体类的配置
TkMybatis默认使用继承Mapper接口中传入的实体类对象去数据库寻找对应的表,因此如果表名与实体类名不满足对应规则时,会报错,这时使用@Table为实体类指定表。(这种对应规则为驼峰命名规则)
下面以一个实体类Custoemr为例:
package cn.invengo.middleware.base.model;
import java.util.Date;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
// @Table指定该实体类对应的表名,如表名为base_customer,类名为BaseCustomer可以不需要此注解
@Table(name = "t_base_customer")
public class Customer {
// @Id表示该字段对应数据库表的主键id
// @GeneratedValue中strategy表示使用数据库自带的主键生成策略.
// @GeneratedValue中generator配置为"JDBC",在数据插入完毕之后,会自动将主键id填充到实体类中.类似普通mapper.xml中配置的selectKey标签
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY,generator = "JDBC")
private Long id;
private String name;
private String code;
private String status;
private String linkman;
private String linkmanPhone;
private String remark;
private String attr01;
private String attr02;
private String attr03;
private Date createDate;
private Date lastUpdate;
private Long creater;
private Long lastUpdateMan;
getter(),setter()方法省略...
}
2.3 Mapper继承tkMabatis的Mapper接口
import cn.base.model.Customer;
import tk.mybatis.mapper.common.Mapper;
/**
* @ClassName: CustomerMapper
* @Description:TODO(Customer数据库操作层)
* @author: wwj
* @date: 2018年8月31日 上午10:12:20
*/
public interface CustomerMapper extends Mapper {
}
01.png
2.4 启动类Application或自定义Mybatis配置类上使用@MapperScan注解扫描Mapper接口
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import tk.mybatis.spring.annotation.MapperScan;
@SuppressWarnings("deprecation")
@SpringBootApplication
@MapperScan("cn.base.mapper")
public class MiddlewareApplication extends SpringBootServletInitializer {
private static Logger logger = LoggerFactory.getLogger(MiddlewareApplication.class);
public static void main(String[] args) {
SpringApplication.run(MiddlewareApplication.class, args);
logger.info("Application Start Success!");
}
// 当SpringBoot项目打成war包发布时,需要继承SpringBootServletInitializer接口实现该方法
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
}
2.5 application.properties配置mapper.xml配置文件的扫描路径
mybatis.mapperLocations=classpath*:cn/base/mapper/*.xml
2.6 使用TkMybatis提供的sql执行方法
import java.util.List;
import java.util.Objects;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import cn.invengo.middleware.base.mapper.CustomerMapper;
import cn.invengo.middleware.base.model.Customer;
import cn.invengo.middleware.base.service.BaseCustomerService;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.entity.Example.Criteria;
@Service
@Transactional
public class BaseCustomerServiceImpl implements BaseCustomerService {
@Autowired
private CustomerMapper customerMapper;
@Override
public List selectByEntity(Customer customer) {
if(Objects.isNull(customer)) {
customer = new Customer();
}
Example example = new Example(Customer.class);
Criteria criteria = example.createCriteria();
criteria.andEqualTo(customer);
return customerMapper.selectByExample(example);
}
@Override
public int insertSelective(Customer customer) {
return customerMapper.insertSelective(customer);
}
@Override
public int updateSelectiveById(Customer record) {
return customerMapper.updateByPrimaryKeySelective(record);
}
}
02.png
2.7 如有需要,自定义mapper.xml配置文件,完成自定义sql编写
ps:
1. 大多数复杂的需求,都能通过TkMyBatis的组合完成操作。这里以联表查询为例,自定义mapper.xml的sql编写。
2. 该mapper.xml与以往普通方式的mapper.xml文件不同之处在于,这里不需要使用resultMap进行字段的映射。当然如果想在返回的Map中新增返回字段映射直接添加新的字段即可。
使用tkmybatis,在数据模型修改之后,修改代码也较为简便,只需要修改对应实体类中的字段即可。
eg:
ContainerMapper.xml:
id="selectCodeByDeviceId"
parameterType="java.lang.Long"
resultType="java.lang.String">
SELECT c.`code` FROM
`t_base_container`
c LEFT OUTER JOIN
t_base_device
d ON c.id =
d.container_id
WHERE d.id = #{deviceId,jdbcType=BIGINT};
ps:这里需要注意的是,不要自己在mapper.xml中在书写tkMybatis已经有的一些基础方法了,否则会报错提示方法重复。
本篇总结到此结束。
-
SpringBoot集成TkMybatis开发环境搭建
2020-03-19 11:40:43为何用TkMybatis 基于SpringBoot项目,正常集成Mybatis后,为了简化sql语句的编写,甚至达到无mapper.xml文件。...1. 引入TkMybatis的Maven依赖 2. 实体类的相关配置,@Id,@Table 3. Mapper继承tkMabat...为何用TkMybatis
基于SpringBoot项目,正常集成Mybatis后,为了简化sql语句的编写,甚至达到无mapper.xml文件。 在本篇总结教程,不在进行SpringBoot集成Mybatis的概述。
项目搭建TkMybatis开发环境
1. 引入TkMybatis的Maven依赖 2. 实体类的相关配置,@Id,@Table 3. Mapper继承tkMabatis的Mapper接口 4. 启动类Application或自定义Mybatis配置类上使用@MapperScan注解扫描Mapper接口 5. 在application.properties配置文件中,配置mapper.xml文件指定的位置[可选] 6. 使用TkMybatis提供的sql执行方法 PS : 1. TkMybatis默认使用继承Mapper接口中传入的实体类对象去数据库寻找对应的表,因此如果表名与实体类名不满足对应规则时,会报错,这时使用@Table为实体类指定表。(这种对应规则为驼峰命名规则) 2. 使用TkMybatis可以无xml文件实现数据库操作,只需要继承tkMybatis的Mapper接口即可。 3. 如果有自定义特殊的需求,可以添加mapper.xml进行自定义sql书写,但路径必须与步骤4对应。 6. 如有需要,实现mapper.xml自定义sql语句
1、
<!-- https://mvnrepository.com/artifact/tk.mybatis/mapper --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>4.0.3</version> </dependency> <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.0.3</version> </dependency>
2、实体类略过
3、Dao层接口略过
4、
@MapperScan(basePackages = { "com.xxx.mybatis.mapper" })
5、yml文件配置
mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.xxx.mybatis.dao # 注意:对应实体类的路径 config-location: classpath:mybatis-config.xml mapper: mappers: com.xxx.mybatis.MyBaseDao #通用mapper基类位置 identity: MYSQL
好文章参考:
-
SpringBoot集成TkMybatis插件
2019-04-24 13:39:48前提: 基于SpringBoot项目,正常集成Mybatis后,为了简化sql语句的编写,甚至达到无mapper.xml文件。 在本篇总结教程,不在进行SpringBoot集成Mybatis...1. 引入TkMybatis的Maven依赖 2. 实体类的相关配置,@Id,@Table...前提:
基于SpringBoot项目,正常集成Mybatis后,为了简化sql语句的编写,甚至达到无mapper.xml文件。 在本篇总结教程,不在进行SpringBoot集成Mybatis的概述。
如有需要,请查看我另一篇文章 SpringBoot集成MyBatis,这里不再赘述。
一. 实现步骤
1. 引入TkMybatis的Maven依赖 2. 实体类的相关配置,@Id,@Table 3. Mapper继承tkMabatis的Mapper接口 4. 启动类Application或自定义Mybatis配置类上使用@MapperScan注解扫描Mapper接口 5. 在application.properties配置文件中,配置mapper.xml文件指定的位置[可选] 6. 使用TkMybatis提供的sql执行方法
PS :
1. TkMybatis默认使用继承Mapper接口中传入的实体类对象去数据库寻找对应的表,因此如果表名与实体类名不满足对应规则时,会报错,这时使用@Table为实体类指定表。(这种对应规则为驼峰命名规则)
2. 使用TkMybatis可以无xml文件实现数据库操作,只需要继承tkMybatis的Mapper接口即可。
3. 如果有自定义特殊的需求,可以添加mapper.xml进行自定义sql书写,但路径必须与步骤4对应。6. 如有需要,实现mapper.xml自定义sql语句
二. 实现细节
2.1 引入
TkMybatis
的Maven
依赖<!-- https://mvnrepository.com/artifact/tk.mybatis/mapper --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>4.0.3</version> </dependency> <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.0.3</version> </dependency>
2.2 实体类的配置
TkMybatis默认使用继承Mapper接口中传入的实体类对象去数据库寻找对应的表,因此如果表名与实体类名不满足对应规则时,会报错,这时使用@Table为实体类指定表。(这种对应规则为驼峰命名规则) 下面以一个实体类Custoemr为例:
package cn.invengo.middleware.base.model; import java.util.Date; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; // @Table指定该实体类对应的表名,如表名为base_customer,类名为BaseCustomer可以不需要此注解 @Table(name = <span class="hljs-string">"t_base_customer"</span>) public class Customer { // @Id表示该字段对应数据库表的主键id // @GeneratedValue中strategy表示使用数据库自带的主键生成策略. // @GeneratedValue中generator配置为<span class="hljs-attr">"JDBC"</span>,在数据插入完毕之后,会自动将主键id填充到实体类中.类似普通mapper.xml中配置的selectKey标签 @Id @GeneratedValue(strategy = GenerationType.IDENTITY,generator = <span class="hljs-attr">"JDBC"</span>) private Long id; private String name; private String code; private String status; private String linkman; private String linkmanPhone; private String remark; private String attr01; private String attr02; private String attr03; private Date createDate; private Date lastUpdate; private Long creater; private Long lastUpdateMan; getter(),setter()方法省略... }
2.3
Mapper
继承tkMabatis
的Mapper
接口import cn.base.model.Customer; import tk.mybatis.mapper.common.Mapper;
/** * @ClassName: CustomerMapper * @Description:TODO(Customer数据库操作层) * @author: wwj * @date: */ public interface CustomerMapper extends Mapper<Customer> { }
01.png2.4 启动类
Application
或自定义Mybatis
配置类上使用@MapperScan
注解扫描Mapper
接口import org.slf4j.Logger; import org.slf<span class="hljs-number">4</span>j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.web.SpringBootServletInitializer; import tk.mybatis.spring.annotation.MapperScan; @SuppressWarnings(<span class="hljs-string">"deprecation"</span>) @SpringBootApplication @MapperScan(<span class="hljs-string">"cn.base.mapper"</span>) public class MiddlewareApplication extends SpringBootServletInitializer { private static Logger logger = LoggerFactory.getLogger(MiddlewareApplication.class); public static void main(String[] args) { SpringApplication.run(MiddlewareApplication.class, args); logger.info(<span class="hljs-attr">"Application Start Success!"</span>); } // 当SpringBoot项目打成war包发布时,需要继承SpringBootServletInitializer接口实现该方法 @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application.class); } }
2.5
application.properties
配置mapper.xml
配置文件的扫描路径mybatis.mapperLocations=classpath*:cn/base/mapper/*.xml
2.6 使用
TkMybatis
提供的sql执行方法import java.util.List; import java.util.Objects; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import cn.invengo.middleware.base.mapper.CustomerMapper; import cn.invengo.middleware.base.model.Customer; import cn.invengo.middleware.base.service.BaseCustomerService; import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example.Criteria; @Service @Transactional public class BaseCustomerServiceImpl implements BaseCustomerService { @Autowired private CustomerMapper customerMapper; @Override public List<Customer> selectByEntity(Customer customer) { if(Objects.isNull(customer)) { customer = new Customer(); } Example example = new Example(Customer.class); Criteria criteria = example.createCriteria(); criteria.andEqualTo(customer); return customerMapper.selectByExample(example); } @Override public int insertSelective(Customer customer) { return customerMapper.insertSelective(customer); } @Override public int updateSelectiveById(Customer record) { return customerMapper.updateByPrimaryKeySelective(record); } }
02.png2.7 如有需要,自定义
mapper.xml
配置文件,完成自定义sql编写ps: 1. 大多数复杂的需求,都能通过TkMyBatis的组合完成操作。这里以联表查询为例,自定义mapper.xml的sql编写。 2. 该mapper.xml与以往普通方式的mapper.xml文件不同之处在于,这里不需要使用resultMap进行字段的映射。当然如果想在返回的Map中新增返回字段映射直接添加新的字段即可。 使用tkmybatis,在数据模型修改之后,修改代码也较为简便,只需要修改对应实体类中的字段即可。
eg:
ContainerMapper.xml:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.invengo.middleware.base.mapper.ContainerMapper"> <select id="selectCodeByDeviceId" parameterType="java.lang.Long" resultType="java.lang.String"> SELECT c.`code` FROM `t_base_container` c LEFT OUTER JOIN t_base_device d ON c.id = d.container_id WHERE d.id = #{deviceId,jdbcType=BIGINT}; </select> </mapper>
ps:这里需要注意的是,不要自己在mapper.xml中在书写tkMybatis已经有的一些基础方法了,否则会报错提示方法重复。
本篇总结到此结束。
-
【Spring Boot】——集成TkMybatis插件
2019-06-24 13:58:06前提: 基于SpringBoot项目,正常集成Mybatis后,为了简化sql语句的编写,甚至达到无mapper.xml文件。 在本篇总结教程,不在进行SpringBoot集成Mybatis的...1. 引入TkMybatis的Maven依赖 2. 实体类的相关配置,@Id,@Ta... -
mybatis入门教程(F)
2019-04-30 21:24:01地址:http://www.mybatis.tk/ ...mybatis的一个学习网站:http://www.mybatis.org/mybatis-3/zh/getting-started.html 资料学习地址:https://blog.csdn.net/hellozpc/article/details/80878563 ... -
MyBatis使用教程
2016-01-15 13:50:07MyBatis Generator中文文档 MyBatis Generator中文文档地址: http://mbg.cndocs.tk/ 该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据... -
关于使用tk.mybatis中写自定义的mapper的问题
2018-11-18 18:55:45使用tk.mybatis能满足大多数操作,但是想添加自己的查询方法时候今天遇到了坑,总结一下 官方教程 大致分两种 1. 使用纯接口注解方式时 在mapper接口中自定义方法上添加如@Select,@insert类似的注释,里边写相应的... -
mybatis.generator.1.3.6与tk.mybatis通过mapper使用细节
2019-06-07 17:05:23如何在springboot项目中集成mybatis.generator插件的教程在网上已经很多了,这里只是分享一个使用时的细节。我们在逆向工程生成实体类时,通常需要将我们表名中的前缀去掉,1.3.6版本后添加了一个属性可以实现此功能... -
Mybatis-Plus教程---轻松上手Mybatis_Plus
2021-01-18 12:01:51常用的有:JPA、tk-mapper、MyBatisPlus 一句话,偷懒用的! 简介 MyBatis-Plus官网:https://mp.baomidou.com/ 是什么?MyBatis本来就是简化JDBC操作的!而MyBatis-Plus就是简化MyBatis操作的。 MyBatis- -
tk-mybatis 不能连接表吗_自学SQL网教程之08-SQL Lesson 7: 外连接(OUTER JOINs)
2020-11-28 22:02:57SQL Lesson 7: 外连接(OUTER JOINs)INNER JOIN 只会保留两个表都存在的数据(还记得之前的交集吗),这看起来意味着一些数据的丢失,在某些场景下会有问题.真实世界中两个表存在差异很正常,所以我们需要更多的连... -
MyBatis之通用Mapper教程《一》基本使用
2020-05-21 22:45:48通用Mapper使用教程 1.引入 1.1 作用 替我们生成常用的正删改查的sql语句 1.2 通用mapper官方地址 ...2. 快速入门 2.1 快速搭建(基于Spring Boot) ...tk.mybatis</groupId> <artifactId>mapper-spr -
MyBatis-Plus2020学习笔记数据库教程
2020-08-24 18:38:04MyBatis-Plus 为什么要学习它呢?MyBatisPlus可以节省我们大量工作时间,所有的CRUD代码它都可以自动化完成! JPA 、 tk-mapper、MyBatisPlus 特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如... -
MyBatis-Plus之简介、快速入门、insert、update
2020-07-24 16:57:51顾名思义,MyBatis-Plus是一个MyBatis的增强工具,是用来简化JDBC操作的,它可以大量节省我们的工作时间,因为所有的CRUD代码它都可以自动化完成,与MyBatis-Plus类似的组件还有JPA、tk-mapper 官网:... -
ssm如何实现界面跳转_如何实现java项目的快速开发?Spring Boot +SSM 入门教程 2
2020-12-15 22:14:45Tkmybatis是基于Mybatis框架开发的一个工具,通过调用它提供的方法实现对单表的数据操作,不需要写任何sql语句,让开发更加高效。首先,在pom.xml文件引入 tk.mybatis mapper 4.0.3 tk.mybatis mapper-spring-boot-... -
关于tkmapper的基础操作(环境搭建篇)
2019-12-06 15:34:40关于tkmapper的基础操作(环境搭建篇) 序言 这些年,随着WEB应用的...那么今天,我给大家带来一篇基于mybatis的插件——tkmapper的使用教程。 什么是tkmapper tkmapper,又成为通用mapper。是由我们中国人自己开发的... -
SpringBoot整合MybatisPlus基础教程
2021-02-08 16:41:01Mybatis plus 概念 使用Mybatis时,大的问题是,要写大量的重复SQL语句在xml文件中,除了特殊的业务...通用mybatis(tk mybatis) mybatis plus,通能更加强大 依赖 <dependency> <groupId>com.baom -
Spring Boot(二)集成TK Mpaaer和 H2 DataBase
2018-09-02 17:00:22TKMapper 在Mybatis的基础上封装了绝大多数的单表操作,基本的CURD,条件查询,统计查询,除非出现多表操作,否则,不需要自己写SQL,请参考通用 MAPPER 3 H2 数据库是一个极小的数据库,支持内存模式,嵌入式模式... -
Spring Boot教程(九):Spring Boot集成Mapper4
2018-05-07 18:22:13直接使用上个章节的源码,Spring Boot教程(八):Spring Boot集成pagehelper分页插件 二、添加mapper4依赖 <!-- mapper4 --> <dependency> <groupId>tk.mybatis&... -
SSM框架使用通用mapper教程
2021-02-09 07:30:03通用mapper是mybatis的一个插件,传统的mybatis需要使用创建dao层,mapper.xml,和实体类,但是一旦使用了通用mapper之后,只要创建实体类就可以与数据库进行数据库查询数据. 第一步,引入依赖 版本控制 <mapper.... -
MBG+通用Mapper使用教程!
2020-07-03 23:56:52MBG+通用Mapper使用教程MBG+通用Mapper使用步骤MBG1、引入依赖(MBG依赖,mabatis,数据库驱动,数据源,lombok)2、配置连接相关参数3、将generatorConfig.xml配置文件放入main/resource目录下4、生成dao(xxxMapper)、... -
Java微服务架构l零从基础到精通高清视频教程全套 163课
2019-09-26 09:52:57071 集成 TkMyBatis 简化 MyBatis 操作 072 集成 PageHelper 分页插件 073 使用 MyBatis Maven Plugin 自动生成代码 074 集成 MyBatis-测试查询 第7章 项目实战 075项目简介 076 创建依赖管理项目 077 创建通用... -
新手入门,Springboot+redis+rabbitmq+Jmeter实现高并发现时秒杀,idea+maven测试
2019-12-24 15:27:15新手入门,Springboot+redis+rabbitmq+Jmeter实现高并发现时秒杀,idea+maven测试 文章前言 现在电商项目都有许多的...idea+redis+rabbitmq+Jmeter+RedisDesktopManager+tkmybatis 安装工具的路径 RabbitMQ安装教程&... -
开箱即用之Spring Boot
2020-11-20 00:17:05相关的各种教程、脚手架也是一抓一大把。而今天博主秉承着删繁就简的思想,记录一下在 Spring Boot 框架下,如何以最快、最简单的方式完成:从数据库逆向工程到持久层、业务层,最后到控制层的实现。 一、框架 本文... -
2019Java微服务架构 2.0-全网首发-网盘地址
2019-09-10 15:38:56章节7-Spring-Boot\千锋java教程:045 MyBatis-TkMyBatis.mp4 章节7-Spring-Boot\千锋java教程:046 MyBatis-代码生成插件.mp4 章节7-Spring-Boot\千锋java教程:047 MyBatis-CRUD.mp4 章节8-Spring-Cloud\千锋java...