mybatis-plus理解
mybatis-plus相当于mybatis的加强版,主要增加了一个BaseMapper的接口,这个接口中拥有一些对数据库的基本操作,当需要对数据库进行一些基本的操作时,可以直接使用BaseMapper中的方法,这样可以减少很多对数据库进行操作的代码,使得代码更简洁。
首先导入依赖(pom.xml)
<!-- mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1.tmp</version>
</dependency>
<!-- pagehelper 分页-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
示例代码
UserMapper:继承BaseMapper
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.project.entity.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
User
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("usrs") //对应数据库中的表名
public class User {
private int id;
private String name;
private String pwd;
private int age;
}
UserController(使用到swagger,如果不想用这个的话,可以把含有Api的注解删除,然后将PostMappeing改成RequestMapping,运行后即可通过浏览器输入url得到数据)
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.example.project.entity.User;
import com.example.project.mapper.UserMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping
//Api注解,描述信息
@Api(value = "HelloController", description = "HelloController")
public class HelloController {
@Autowired
private UserMapper userMapper;
@PostMapping("/addPerson")
//方法描述
@ApiOperation(notes = "添加用户", value = "addPerson")
public List<User> addPerson(
@ApiParam(name = "name", value = "姓名") @RequestParam("name") String name,
@ApiParam(name = "pwd", value = "密码") @RequestParam("pwd") String pwd,
@ApiParam(name = "age", value = "年龄") @RequestParam("age") int age) {
User user = new User();
user.setName(name);
user.setPwd(pwd);
user.setAge(age);
userMapper.insert(user);
List<User> userList = userMapper.selectList(null);
return userList;
}
@GetMapping("selectUser")
@ApiOperation(notes = "显示所有用户", value = "selectUser")
public List<User> selectUser(){
List<User> userList = userMapper.selectList(null);
return userList;
}
@PostMapping("deleteById")
@ApiOperation(notes = "根据id删除用户", value = "deleteById")
public List<User> deleteById(@ApiParam(name = "id", value = "id") @RequestParam("id") int id){
userMapper.deleteById(id);
List<User> userList = userMapper.selectList(null);
return userList;
}
@PostMapping("selectAllList")
@ApiOperation(notes = "通过条件查询用户", value = "selectAllList")
public List<User> selectAllList(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age","21");
List<User> user3 = userMapper.selectList(queryWrapper);
return user3;
}
@PostMapping("selectByMap")
@ApiOperation(notes = "根据map条件查询用户",value = "selectByMap")
public List<User> selectByMap(@ApiParam(name = "column",value = "字段") @RequestParam("column") String column,
@ApiParam(name = "value",value = "值") @RequestParam("value") Object value){
Map<String,Object> map = new HashMap<>();
map.put(column,value);
List<User> userList = userMapper.selectByMap(map);
return userList;
}
@PostMapping("selectById")
@ApiOperation(notes = "根据id查询用户",value = "selectById")
public User selectById(@ApiParam(name = "id",value = "编号")@RequestParam("id") int id){
User user = userMapper.selectById(id);
return user;
}
@PostMapping("selectByWrap")
@ApiOperation(notes = "条件区间查询",value = "selectByWrap")
public List<User> selectByWrap(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//查询年龄在20到22之间的用户,包括20和22
queryWrapper.between("age",20,22);
List<User> userList = userMapper.selectList(queryWrapper);
return userList;
}
@PostMapping("selectLike")
@ApiOperation(notes = "模糊查询",value = "selectLike")
public List<User> selectLike(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//查询名字带有z的用户
queryWrapper.like("name","z");
List<User> userList = userMapper.selectList(queryWrapper);
return userList;
}
//分页
@PostMapping("selectPage")
@ApiOperation(notes = "分页查询",value = "selectPage")
public PageInfo<User> selectPage(@ApiParam(name = "pageNum",value = "页数")@RequestParam("pageNum") int pageNum){
PageHelper.startPage(pageNum,2);
List<User> userList = userMapper.selectList(null);
PageInfo<User> pageInfo = new PageInfo<>(userList);
return pageInfo;
}
@PostMapping("update")
@ApiOperation(notes = "更新用户",value = "update")
public User update(){
User user = new User();
user.setAge(25);
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name","zs");
userMapper.update(user,updateWrapper);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name","zs");
User user1 = userMapper.selectOne(queryWrapper);
return user1;
}
@PostMapping("updateById")
@ApiOperation(notes = "通过id更新用户",value = "updateById")
public User updateById(){
User user = new User();
user.setId(3);
user.setPwd("4561111");
userMapper.updateById(user);
User user1 = userMapper.selectById(user.getId());
return user1;
}
}
补充:
如果想要用swagger的话,看下面的内容:
swagger的依赖如下:
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
SwaggerConfig(配置代码)
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
//页面展示信息设置
.apiInfo(apiInfo())
.select()
//为当前包下controller生成API文档
.apis(RequestHandlerSelectors.basePackage("com.example.project.Controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Swagger在线文档")
.description("SpringBootStudy API")
//联系人:名字 网址 邮箱
.contact(new Contact("用户名","localhost:8080","邮箱"))
//版本号
.version("1.0")
.build();
}
}
297

被折叠的 条评论
为什么被折叠?



