Spring Boot2 学习笔记之导入 MyBatis-Plus(五)
首先准备pom.xml
文件
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency>
第一步需要在 mysql 创建一个 user 表
CREATE TABLE user ( id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键 ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年龄', email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱', PRIMARY KEY (id) );
然后创建我们的 user 实体类
User.java
@Data @TableName("user") public class User { private Long id; private String name; private Integer age; private String email; }
在我们的项目 class 根目录中创建一个 mapper 文件夹,里面是数据库操作 mapper
里面加入我们的第一个 mapper UserMapper
,它继承自BaseMapper
@Component @Mapper public interface UserMapper extends BaseMapper<User> { }
在 Application.java 文件中指定 mapper 路径
@SpringBootApplication @MapperScan("com.jdbc.demo.mapper") #/在 class 跟目录下的 mapper 目录下 public class JdbcApplication { public static void main(String[] args) { SpringApplication.run(JdbcApplication.class, args); } }
这样我们就创建好了一个针对 user 表的 mapper
可以在 controller 中使用了
@Autowired UserMapper userMapper; //查询所有用户的信息 @GetMapping("userlist") public List getUsers(){ List<User> userList = userMapper.selectList(null); return userList; } //根据 id 进行查询 @GetMapping("user/{id}") public Map<String,Object> getOneUser(@PathVariable("id") Long id){ User user = userMapper.selectById(id); Map<String,Object> res = new HashMap<>(); res.put("userinfo",user); return res; }
通常开发中经常要代码复用,直接写在 controller 中不是太好,我们可以通过创建UserService
的方式来操作数据库
创建一个UserService
的接口
在这里继承自com.baomidou.mybatisplus.extension.service.IService
public interface UserService extends IService<User> { }
并编写一个UserService
的实现类
@Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { }
这样我们就可以在Controller
中使用UserService
来返回数据了,代码如下:
@Autowired UserService UserService; //查询年龄大于 20 岁的用户数量 @GetMapping("user/count") public Map<String ,Object> testUserService(){ Map<String,Object> res = new HashMap<>(); QueryWrapper<User> UserWhere = new QueryWrapper<>(); UserWhere.gt("age",20); res.put("user:count",UserService.count(UserWhere)); return res; }
简单的MyBatis-Plus
今天就先学到这里了,期待后面更复杂的应用