tk-mybatis和mybatisplus使用和区别
时间:2023-07-06 03:37:00
概念:
一.tk-mybatis的使用
1.tk-mybatis启动器需要引入,直接介绍。
pom.xml介绍以下内容
tk.mybatis mapper-spring-boot-starter 2.0.2 ndency>
2. 创建实体类
tk mybatis 实体使用的注释是jpa注解 JPA详细说明参考手册
@Table ( name = "tb_user" )public class User implements Serializable {private static final long serialVersionUID = 1L ;@Id@GeneratedValue ( strategy = GenerationType . IDENTITY )private Long id ;// 用户名private String userName ;...
3.创建接口实现继承
@Mapperpublic interface UserMapper extends tk . mybatis . mapper . common . Mapper < User > {public List < User > findByUser ( User user );}
如果有自定义的映射文件方法,就在接口中设置方法,然后配置对应的xml文件。
没有自定义的方法,此接口中不用写任何内容。
注意:此处的xml文件名称要和接口名称相同,xml中的id要与接口中的方法名称相同。
注意:如果使用mapperScan注解而不是Mapper要把MapperScan类改成tk-mybatis构件的类
例如:@MapperScan("com.lxs.demo.dao") 加到springBoot启动类Application上。
@MapperScan和@Mapper的区别就是 :后者是单个类接口的实现,前者是包扫描的接口的实现的。
此处是自定义的xml方法,通过判断name,和note不为null的情况下,进行对name,note的模糊查询。
一旦继承了tk-mybatis Mapper,继承的Mapper就拥有了该Mapper所有的通用方法:
@RunWith(SpringRunner.class)@SpringBootTestpublic class UserDaoTest {@Autowiredprivate UserMapper userMapper;//自定义的方法测试@Testpublic void testFindByUser() {User user = new User();user.setName("a");Listlist = userMapper.findByUser(user); for (User user : list) {System.out.println(user);}}@Testpublic void testFindAll() {Listlist = userMapper.selectAll(); for (User user : list) {System.out.println(user);}}@Testpublic void testFindById() {User user = userMapper.selectByPrimaryKey(4);System.out.println(user);}@Testpublic void testFindByExample() {Example example = new Example(User.class);example.createCriteria().andLike("name", "%a%");userMapper.selectByExample(example).forEach(user -> {System.out.println(user);});
二.mybatisplus的使用
1.引入mp的启动器。
com.baomidou mybatis-plus-boot-starter 3.3.2
2.创建实体类
@Datapublic class User {private Long id;private String name;private Integer age;private String email;}
此处的@data注解是对实体类的get和set方法的简化,使用此注解可以省略get和set方法的创建。使用时候直接使用即可,需要引入lombok依赖和对应的插件,这里不再具体说明。
注解名称
|
说明
|
@TableName
|
实体类的类名和数据库表名不一致
|
@TableId
|
实体类中的成员名称和表中字段名称不一致> |
@TableField
|
排除实体类中非表字段
|
3.创建接口继承 BaseMapper
其实是mybatisplus包下的BaseMapper
com.baomidou.mybatisplus.core.mapper.BaseMapper
public interface UserMapper extends BaseMapper{ }
4.测试
@RunWith(SpringRunner.class)@SpringBootTestpublic class SampleTest {@Resourceprivate UserMapper userMapper;@Testpublic void testSelect() {System.out.println(("----- selectAll method test ------"));ListuserList = userMapper.selectList(null); Assert.assertEquals(6, userList.size());userList.forEach(System.out::println);}}
继承了 MP的 BaseMapper,继承的Mapper就拥有了BaseMapper所有的通用方法:
具体使用参考下面博文
gitee上的使用介绍:
mybatisplus:Mybatis-Plus
下面tk和mp的区别:
TKMybatis 和 MybatisPlus哪一个好用 - 代码先锋网