导入jar包
导入后不需要添加Mybatis依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
yml改动
将mybatis改为maybatis-plus,其他不变
#SpringBoot整合mybatisplus
mybatis-plus:
#指定别名包
type-aliases-package: com.jt.pojo
#加载指定的xml映射文件
mapper-locations: classpath:/mybatis/mappers/*.xml
#开启驼峰映射
configuration:
map-underscore-to-camel-case: true
配置POJO
1.@TableName(“demo_user”) 指定表名
2.@TableId(type = IdType.AUTO) 主键自增
3.@TableField(“age”) 实现属性与字段映射
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@TableName("demo_user")//指定表名
public class User implements Serializable {
@TableId(type = IdType.AUTO)//主键自增
private Integer id;
private String name;
//@TableField("age") //实现属性与字段映射
private Integer age;
private String sex;
}
配置Mapper
继承BaseMapper
注意:泛型不能省略
public interface UserMapper extends BaseMapper<User> {
List<User> findAll();
}
测试
测试类注解:@SpringBootTest
@SpringBootTest
class SpringbootSsm2ApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
User user = new User();
user.setAge(18).setName("rose").setSex("女");
userMapper.insert(user);
}
}
条件构造器
1.QueryWrapper,条件构造器 动态拼接where条件
2.默认的关系链接符 and
@Test
public void selectByNS(){
User user = new User();
user.setName("大乔").setSex("女");
// QueryWrapper:条件构造器
QueryWrapper<User> queryWrapper=new QueryWrapper<>(user);
List<User> list = userMapper.selectList(queryWrapper);
System.out.println(user);
}
利用构造器创造条件
1.eq = 2.gt > 3.lt< 4.ge >= 5.le <= 6.ne <>
@Test//利用构造器创造条件 name=大乔 and sex=女
public void selectByNS2(){
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.eq("name", "大乔")
.eq("sex", "女");
List<User> list = userMapper.selectList(queryWrapper);
System.out.println(list);
}
@Test//利用构造器创造条件 age>18 and sex=男
public void selectByAS(){
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.gt("age", 18)
.eq("sex", "男");
List<User> list = userMapper.selectList(queryWrapper);
System.out.println(list);
}
@Test//利用构造器创造条件 name like %君% and sex=女
public void selectByLikeNS(){
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.like("name", "君")
// .likeLeft("name", "君") 表示左侧百分号 %君
.eq("sex", "女");
List<User> list = userMapper.selectList(queryWrapper);
System.out.println(list);
}
@Test//利用构造器创造条件 id in (1,3,4,5) 根据年龄降序排列
public void selectByIds(){
Integer[] ids = {1,3,4,5};//必须使用包装类型
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.in("id", ids)
.orderByDesc("age");
List<User> list = userMapper.selectList(queryWrapper);
System.out.println(list);
}
@Test//利用构造器创造条件 只获取第一列字段信息,做关联查询时候可以使用
public void selectObjs(){
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.eq("sex", "女");
List<Object> list = userMapper.selectObjs(queryWrapper);
System.out.println(list);//只获取到id信息
}
@Test//利用构造器创造条件 条件不为null才当作条件
public void selectList(){
Integer age = null;
String sex = "女";
boolean flag = StringUtils.hasLength(sex);
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.gt(age != null,"age" ,age )
.eq(flag, "sex", sex);
List<User> list = userMapper.selectList(queryWrapper);
System.out.println(list);
}