一些常用的操作,这里基本全都包含,下面是整理出来的各种方法,发夹可以按顺序自己写一遍,如果有不懂的我还有资源文件供大家下载:包含项目/sql/项目直接启动即可,就可以使用,里面记录的注释都很清楚,不懂也可以留言。Springboot整合mypatis-plus源码.rar
pom.xml依赖:
<!--SpringBoot启动依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mybatis-plus相关依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<!--lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
配置文件:
#访问端口号
server.port=8081
#mybatis链接数据库的四个参数:
#数据库驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库url
spring.datasource.url=jdbc:mysql://rm-wz90k10mz1a6s5x52po.mysql.rds.aliyuncs.com:3306/xinglei_data?characterEncoding=utf8&useSSL=false
#数据库用户名
spring.datasource.username=xinglei_data
#数据库密码
spring.datasource.password=Xl199411
#mybatis xml文件的加载地址
# 用来扫描mapper.xml文件 如果mapper.xml在java文件下必须要写要不扫描不到xml文件,如果卸载resources下则可以省略
#mybatis-plus.mapper-locations=classpath:com/xl/boot01/mapper/*Mapper.xml
#配置mybatis的别名
#mybatis.type-aliases-package=com.xl.boot01.entity
#打印sql
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
Controller:
/**
* 新增一条数据
* @param userInfo
* @return
*/
@PostMapping("insertUserInfo")
public String insertUserInfo(@RequestBody UserInfo userInfo){
int i = userInfoService.insertUserInfo(userInfo);
if(i>0){
return "新增成功条";
}else{
return "新增失败";
}
}
/**
* 更具多条件删除多条数据
* @param userInfo
* @return
*/
@DeleteMapping("deletesByParam")
public String deletesByParam(@RequestBody UserInfo userInfo){
int i = userInfoService.deletesByParam(userInfo);
if(i>0){
return "删除成功"+i+"条";
}else{
return "删除失败";
}
}
/**
* 根据id批量删除多条数据
* @param id
* @return
*/
@DeleteMapping("deletesByArrayListId")
public String deletesByArrayListId(@RequestBody List<Integer> id){
int i = userInfoService.deletesByArrayListId(id);
if(i>0){
return "删除成功"+i+"条";
}else{
return "删除失败";
}
}
/**
* 根据id删除一条数据
* @param id
* @return
*/
@DeleteMapping("deleteById/{id}")
public String deleteById(@PathVariable int id){
int i = userInfoService.deleteById(id);
if(i>0){
return "删除成功";
}else{
return "删除失败";
}
}
/**
* 根据id修改其他信息
* @param userInfo
* @return
*/
@PutMapping("updateById")
public String updateById(@RequestBody UserInfo userInfo){
int i = userInfoService.updateById(userInfo);
if(i>0){
return "修改成功";
}else{
return "修改失败";
}
}
/**
* 根据性别和年龄修改电话
* @param userInfo
* @return
*/
@PutMapping("updateByParam")
public String updateByParam(@RequestBody UserInfo userInfo){
int i = userInfoService.updateByParam(userInfo);
return "已成功修改"+i+"条数据";
}
/**
* 查询所有信息
* 以及sex性别条件和userName用户姓名的like条件
* @param userInfo
* @return
*/
@PostMapping("/queryAll")
public List<UserInfo> queryList(@RequestBody UserInfo userInfo){
return userInfoService.queryList(userInfo);
}
/**
* 根据id查询一条
* @param id
* @return
*/
@GetMapping("/queryById/{id}")
public UserInfo queryById(@PathVariable int id ){
UserInfo userInfo = userInfoService.queryById(id);
return userInfo;
}
/**
* 多条件查询
* @param userInfo
* @return
*/
@PostMapping("queryByparam")
public List<UserInfo> queryByparam(@RequestBody UserInfo userInfo){
List<UserInfo> userInfos = userInfoService.queryByparam(userInfo);
return userInfos;
}
/**
* 分页查询
* @param userInfoDto
* @return
*/
@PostMapping("querPage")
public IPage<UserInfo> querPage(@RequestBody UserInfoDto userInfoDto){
IPage<UserInfo> userInfoIPage = userInfoService.queryPage(userInfoDto);
return userInfoIPage;
}
/**
*自定义sql分页查询
* @param userInfoDto
* @return
*/
@PostMapping("queryListByParamPage")
public IPage<UserInfo> queryListByParamPage(@RequestBody UserInfoDto userInfoDto) {
IPage<UserInfo> userInfoIPage = userInfoService.queryListByParamPage(userInfoDto);
return userInfoIPage;
}
/**
* 自定义sql分页查询关联查询
* @param userInfoDto
* @return
*/
@PostMapping("queryUserInfoandUserAdderssInfo")
public IPage<UserInfoOrUserAdderssInfoVO> queryUserInfoandUserAdderssInfo(@RequestBody UserInfoDto userInfoDto){
return userInfoService.queryUserInfoandUserAdderssInfo(userInfoDto);
}
Service接口:
/**
* 新增一条数据
* @param userInfo
* @return
*/
int insertUserInfo(UserInfo userInfo);
/**
*
* 根据id删除一条数据
* @param id
* @return
*/
int deleteById(int id);
/**
* 批量删除
* @param id
* @return
*/
int deletesByArrayListId(List<Integer> id);
/**
* 条件删除
* @param userInfo
* @return
*/
int deletesByParam(UserInfo userInfo);
/**
* 更具id修改一条数据
* @param userInfo
* @return
*/
int updateById(UserInfo userInfo);
/**
* 根据多个条件修改一条数据
* @param userInfo
* @return
*/
int updateByParam(UserInfo userInfo);
/**
* mybatis
* 查询全部
* @return
*/
List<UserInfo> queryList(UserInfo userInfo);
/**
* 根据主键查询一条
* @param id
* @return
*/
UserInfo queryById(int id);
/**
* 多条件查询
* @param userinfo
* @return
*/
List<UserInfo> queryByparam(UserInfo userinfo);
/**
* 分页查询
* @param userInfoDto
* @return
*/
IPage<UserInfo> queryPage(UserInfoDto userInfoDto);
/**
* 自定义sql分页查询
* @param userInfoDto
* @param userInfoDto
* @return
*/
IPage<UserInfo> queryListByParamPage(UserInfoDto userInfoDto);
/**
* 自定义sql分页查询关联查询
* @param userInfoDto
* @return
*/
IPage<UserInfoOrUserAdderssInfoVO> queryUserInfoandUserAdderssInfo(UserInfoDto userInfoDto);
ServiceImpl实现类:
/**
* 新增
*/
//插入一条数据 mybatis-plus方法
@Override
public int insertUserInfo(UserInfo userInfo) {
int i = userInfoMapper.insert(userInfo);
return i;
}
/**
* 删除
*/
//根据id删除一条数据 mybatis-plus方法
@Override
public int deleteById(int id) {
int i = userInfoMapper.deleteById(id);
return i;
}
//批量删除多条数据 mybatis-plus方法
@Override
public int deletesByArrayListId(List<Integer> id) {
int i = userInfoMapper.deleteBatchIds(id);
return i;
}
//条件删除一条数据 mybatis-plus方法
@Override
public int deletesByParam(UserInfo userInfo) {
Map map=new HashMap<>();
if(!userInfo.getSex().isEmpty()&&userInfo.getSex()!=""){
map.put("SEX",userInfo.getSex());
}
if(!userInfo.getAge().isEmpty()&&userInfo.getAge()!=""){
map.put("AGE",userInfo.getAge());
}
int i = userInfoMapper.deleteByMap(map);
return i;
}
/**
* 修改
*/
//根据id修改一条 mybatis-plus方法
@Override
public int updateById(UserInfo userInfo) {
int i = userInfoMapper.updateById(userInfo);
return i;
}
//多条件修改 mybatis-plus方法
@Override
public int updateByParam(UserInfo userInfo) {
// UpdateWrapper<UserInfo> where条件设置
UpdateWrapper updateWrapper=new UpdateWrapper();
if(!userInfo.getSex().isEmpty()&&userInfo.getSex()!=""){
updateWrapper.eq("SEX",userInfo.getSex());
}
if(!userInfo.getAge().isEmpty()&&userInfo.getAge()!=""){
updateWrapper.eq("AGE",userInfo.getAge());
}
//修改的字段
UserInfo upDateUserInfo=new UserInfo();
upDateUserInfo.setPhone(userInfo.getPhone());
int i = userInfoMapper.update(upDateUserInfo, updateWrapper);
return i;
}
/**
* 查询
*/
//查询全部 mybatis-plus方法
@Override
public List<UserInfo> queryList(UserInfo userInfo) {
//QueryWrapper对象有很多使用的方法,这里只演示eq和like
QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
if (!userInfo.getSex().isEmpty()&&userInfo.getSex()!=""){
queryWrapper.eq("SEX",userInfo.getSex());
}
if (!userInfo.getUserName().isEmpty()&&userInfo.getUserName()!=""){
queryWrapper.like("USER_NAME",userInfo.getUserName());
}
//如果sex和userName属性都为null穿空即可
return userInfoMapper.selectList(queryWrapper);
}
//根据id查询一条 mybatis-plus方法
@Override
public UserInfo queryById(int id) {
UserInfo userInfo = userInfoMapper.selectById(id);
return userInfo;
}
//多条件查询 mybatis-plus方法
@Override
public List<UserInfo> queryByparam(UserInfo userInfo) {
Map map=new HashMap<>();
if(!userInfo.getUserId().isEmpty()&&userInfo.getUserId()!=""){
map.put("USER_ID",userInfo.getUserId());
}
if(!userInfo.getUserName().isEmpty()&&userInfo.getUserName()!=""){
map.put("USER_NAME",userInfo.getUserName());
}
if(!userInfo.getSex().isEmpty()&&userInfo.getSex()!=""){
map.put("SEX",userInfo.getSex());
}
if(!userInfo.getAge().isEmpty()&&userInfo.getAge()!=""){
map.put("AGE",userInfo.getAge());
}
if(!userInfo.getPhone().isEmpty()&&userInfo.getPhone()!=""){
map.put("PHONE",userInfo.getPhone());
}
List list = userInfoMapper.selectByMap(map);
return list;
}
/**
* 分页查询 mybatis-plus方法
* @param userInfoDto
* @return
*/
@Override
public IPage<UserInfo> queryPage(UserInfoDto userInfoDto) {
//分页配置
Page<UserInfo> page = new Page<>(userInfoDto.getPage(), userInfoDto.getSize());
//添加条件查询可把下面代码放开
/*QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
if (!userInfoDto.getSex().isEmpty()&&userInfoDto.getSex()!=""){
queryWrapper.eq("SEX",userInfoDto.getSex());
}
if (!userInfoDto.getUserName().isEmpty()&&userInfoDto.getUserName()!=""){
queryWrapper.like("USER_NAME",userInfoDto.getUserName());
}*/
IPage<UserInfo> userInfoIPage = userInfoMapper.selectPage(page, null);
return userInfoIPage;
}
/**
* 自定义sql分页查询 mybatis-plus方法
* @param userInfoDto
* @return
*/
@Override
public IPage<UserInfo> queryListByParamPage(UserInfoDto userInfoDto) {
//分页配置
Page<UserInfo> page = new Page<>(userInfoDto.getPage(), userInfoDto.getSize());
//where条件设置
QueryWrapper<UserInfo> wrapper = new QueryWrapper();
if (!userInfoDto.getSex().isEmpty()&&userInfoDto.getSex()!=""){
wrapper.eq("SEX",userInfoDto.getSex());
}
if (!userInfoDto.getUserName().isEmpty()&&userInfoDto.getUserName()!=""){
wrapper.like("USER_NAME",userInfoDto.getUserName());
}
return userInfoMapper.queryListByParamPage(page,wrapper);
}
/**
* 自定义sql分页查询关联查询
* @param userInfoDto
* @return
*/
@Override
public IPage<UserInfoOrUserAdderssInfoVO> queryUserInfoandUserAdderssInfo(UserInfoDto userInfoDto) {
IPage<UserInfoOrUserAdderssInfoVO> userInfoOrUserAdderssInfoVOS = userInfoMapper.queryUserInfoandUserAdderssInfo(new Page<>(userInfoDto.getPage(), userInfoDto.getSize()));
return userInfoOrUserAdderssInfoVOS;
}
mapper接口:
//自定义sql分页查询
IPage<UserInfo> queryListByParamPage(IPage<UserInfo> page, @Param(Constants.WRAPPER) Wrapper<UserInfo> queryWrapper);
//自定义sql分页查询关联查询
IPage<UserInfoOrUserAdderssInfoVO> queryUserInfoandUserAdderssInfo(IPage<UserInfoDto> page);
mapper.xml:
<select id="queryListByParamPage" resultMap="BaseResultMap">
select * from user_info ${ew.customSqlSegment}
</select>
<select id="queryUserInfoandUserAdderssInfo" resultType="com.xl.boot01.vo.UserInfoOrUserAdderssInfoVO">
SELECT USER_INFO.*,USER_ADDERSS_INFO.* FROM USER_INFO,USER_ADDERSS_INFO WHERE USER_INFO.ADDERSS=USER_ADDERSS_INFO.ADDERSS_ID
</select>