引入MyBatisPlus快速上手
在SpringBoot项目的基础上加入依赖
1、添加依赖
com.mysql
mysql-connector-j
runtime
x
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
com.baomidou
mybatis-plus-boot-starter
3.5.3.1
2、yml配置文件
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost/mybatisplusdb?useSLL=false&characterEncoding=UTF-8
username: root
password: 123456
mybatis-plus:
myBatisPlus扫描包
mapper-location: classpath:mapper/.xml
configuration:
# MyBatisPlus日志打印
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 开启驼峰命名
map-underscore-to-camel-case: true
3、pojo
实体类
package com.zsh.pojo;
@AllArgsConstructor
@NoArgsConstructor
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Integer id;
private String name;
private Integer age;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime dateTime;
}
4、mapper
package com.zsh.mapper;
@Mapper
public interface UserMapper extends BaseMapper {
}
5、Service
package com.zsh.service;
public interface UserService extends IService {
}
6、ServiceImpl
package com.zsh.service.impl;
@Service
public class UserServiceImpl extends ServiceImpl implements UserService {
}
Mapper.xml的配置文件
创建Mapper.xml文件
src --> main --> resources下建一个和mapper路径一样的包 :要用反斜杠com\zsh\springboot_mybatis\mapper
<?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">
select * from user where id = #{id}
MybatisPlus单表增删改查
1、创建Mapper
package com.example.sutdent.mapper;
@Mapper
public interface UserMapper extends BaseMapper {
// 登录
@Select("select * from user where username = #{username} and password = #{password}")
public User login(User user);
}
2、创建service
package com.example.sutdent.service;
public interface UserService extends IService {
// 登录
public User login(User user);
// 列表
public List<User> list(@Param("username") String username);
}
3、创建serviceimpl
package com.example.sutdent.service.impl;
@Service
public class UserServiceImpl extends ServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User login(User user) {
return userMapper.login(user);
}
}
4、创建Controller
package com.example.sutdent.controller;
@RestController
@RequestMapping("/User")
@Api(tags = "这是UserController")
public class UserController {
@Autowired
private UserService userService;
// 登录
@ApiOperation("登录")
@PostMapping("/login")
public Object login(User user){
User login = userService.login(user);
return Result.success("获取成功",login);
}
// 根据id查询
@ApiOperation("根据id查询")
@GetMapping("/findById")
public Object findById(Integer userid){
User byId = userService.getById(userid);
return Result.success("查询成功",byId);
}
// 列表
@ApiOperation("列表")
@GetMapping("/list")
public Object list(){
List<User> list = userService.list();
return Result.success("获取成功",list);
}
// 添加
@ApiOperation("添加")
@PostMapping("/add")
public Object add(User user){
boolean i = userService.save(user);
return Result.success("添加成功");
}
// 修改
@ApiOperation("修改")
@PutMapping("/update")
public Object update(User user){
boolean i = userService.updateById(user);
return Result.success("修改成功");
}
// 删除
@ApiOperation("删除")
@DeleteMapping("/delete")
public Object delete(Integer userid){
boolean i = userService.removeById(userid);
return Result.success("删除成功");
}
}
动态sql的xml文件写法
查询
select * from empx
name like concat('%',#{name},'%')
and gender = #{gender}
and entrydate between #{begin} and #{end}
修改
update employee
name = #{name},
username = #{username},
password = #{password},
phone = #{phone},
sex = #{sex},
id_number = #{idNumber},
status = #{status},
update_time = #{updateTime},
update_user = #{updateUser},
where id = #{id}
删除
delete from emp where id in
#{id}
</foreach>
MyBatisPlus两表联查
1、pojo实体类
package com.zsh.pojo;
@AllArgsConstructor
@NoArgsConstructor
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Integer id;
private String name;
private Integer age;
private Integer sex;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime dateTime;
}
package com.zsh.pojo;
@AllArgsConstructor
@NoArgsConstructor
@Data
@TableName("sex")
public class Gender {
@TableId(type = IdType.AUTO)
private Integer id;
private String sex;
}
package com.zsh.pojo;
@AllArgsConstructor
@NoArgsConstructor
@Data
public class UserVO {
private Integer id;
private String name;
private Integer age;
private Integer sex;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime dateTime;
private Integer sum;
private Gender gender;
}
2、Mapper
package com.zsh.mapper;
@Mapper
public interface UserMapper extends BaseMapper {
@Select("select * from user")
List<UserVO> selectAll();
}
3、Service
package com.zsh.service;
public interface UserService extends IService {
void export(HttpServletResponse response);
List<UserVO> selectTwo();
}
4、ServiceImpl
package com.zsh.service.impl;
@Service
public class UserServiceImpl extends ServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Autowired
private GenderMapper genderMapper;
@Override
public List<UserVO> selectTwo() {
// 查询user表
List<UserVO> userList = userMapper.selectAll();
for (UserVO userVO : userList) {
// 查询性别表(根据user的sex值)
Gender gender = genderMapper.selectById(userVO.getSex());
// 给返回结果设置性别
userVO.setGender(gender);
}
// 返回
return userList;
}
}
5、Test
package com.zsh.mapper;
@SpringBootTest
public class MybatisPlusTest {
@Autowired
private UserService userService;
@Test
public void selectTwo(){
List<UserVO> userVOList = userService.selectTwo();
System.out.println("userVOList:" + userVOList);
}
}