使用mybatis-plus需要一些配置
mybatis配置
xml中配置:
<!--mybatisplus起步依赖-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version>
</dependency>
<!--MySQL提供的JDBC驱动包,用于在Java应用程序中连接MySQL数据库-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>
</dependency>
yml中配置
#@SpringBootApplication -——》启动所包含的@EnableAutoConfiguration 自动扫描yml进行设置
#配置数据源
spring:datasource:username: rootpassword: rooturl: jdbc:mysql://192.168.227.128:3306/mp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=falsedriver-class-name: com.mysql.cj.jdbc.Driver
配置结束后建立实体类
实体类:主要用于封装数据并提供对数据的访问和操作方法
@Data //可选
@Builder //可选
@TableName("user") //对应表的名字,实体类的类名(转成小写后)和数据库表名相同时,可以不指定该注解
public class User {private Long id;private String name;private Integer age;private String email;private Long managerId;private Date createTime;
}
在mapper层的操作,定义一个操作这个表的接口
传入实体类User,BaseMapper会自动生成crud等常用方法
public interface UserMapper extends BaseMapper<User> {}
在建立启动类的时候加入@MapperScan(com.lsr.mapper)
注解扫描启动类的文件
扫描后用private UserMapper usermapper
可能会标红,但是不影响,跳过ideal检测即可,如果直接在每个Mapper接口加@Mapper
注解就不会标红,但是太麻烦没必要,直接跳过ideal检测
mybatis-plus生成的mapper的使用如下
插入数据
public void test01(){User user = User.builder() //用lombok包中的builder方法来创建实例更方便.id(1234l) //但需要在User实体类上加@Builder注解.name("lsr").age(18).email("1234@qq.com").managerId(1235l).build();userMapper.insert(user); //insert方法需要传入一个实例
}
查询数据
userMapper.selectById()
需要传入的id实现了Serialzable接口
主键集合查找
//通过主键的集合来查找public void test01(){List<Long> longs = Arrays.asList(1088250446457389058l, 1234l);List<User> users = userMapper.selectBatchIds(longs);}
//通过传入一个Map来查询,map的key为表的字段名,value为表的字段值public void test01(){HashMap<String, Object> hashMap = new HashMap<>();hashMap.put("name","lsr");List<User> users = userMapper.selectByMap(hashMap);}
条件构造器
//通过selectMaps可返回自己想要的字段,而不是一个user对象public void test01(){QueryWrapper<User> wrapper = new QueryWrapper<>();wrapper.select("id","name");wrapper.eq("id",1234l);List<Map<String, Object>> mapList = userMapper.selectMaps(wrapper);System.out.println(mapList);}