SpringBoot整合MybatisPlus
SpringBoot整合MybatisPlus
mybatisplus ,是国人开发的, 极大地简化了增删改查的操作,并且减少了sql语句的编写.
导入maven依赖
-
pom.xml
-
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version></dependency><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.25</version></dependency>
-
因为要操作数据库,所以还要将数据库驱动包导入.
-
创建数据库表
-
DROP TABLE IF EXISTS `person2`;CREATE TABLE `person2` ( `id` int(0) NOT NULL AUTO_INCREMENT, `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, `phone` bigint(0) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;SET FOREIGN_KEY_CHECKS = 1;
创建完成后编写实体类
-
@NoArgsConstructor// 创建无参的构造方法@AllArgsConstructor// 创建满参的构造方法@Accessors(chain = true)// 使用链式方法@Data// 重写toString方法等方法@TableName("person2")// 对应表名public class Person { //主键有Tableid注解 type是主键自增规则 @TableId(value = "id", type = IdType.AUTO) private Integer id; @TableField("username") private String username; @TableField("phone") private long phone; @TableField("password") private String password;}
编写dao
-
@Repositorypublic interface PersonDao extends BaseMapper<Person> {}
-
这里直接击沉
BaseMapper
即可,BaseMapper里面就有我们常用的方法! -
如果我们想要自定义查询就需要这么写
-
@Repositorypublic interface PersonDao extends BaseMapper<Person> { / * 按照姓名查询 * @param username * @return */ @Select("select * from person2 where username = #{username}") List<Person> selectByUsername(String username);}
-
编写service
-
这里了就用增删改查举例
-
@Servicepublic class PersonService { @Resource private PersonDao personDao; / * 添加person * * @param person * @return */ public Object addPerson(Person person) { return personDao.insert(person); } public Object updPerson(Person person) { //使用 会自动根据id把数据库中的信息进行修改为指定值// person.setId(1);// person.setPassword("setValue");// person.setUsername("setUsername");// person.setPhone(1873374979); return personDao.updateById(person); } public Object delPerosn(Integer id) { return personDao.deleteById(id); } public Object findAll() { return personDao.selectList(null); } / * 只有这个是我们自己定义的 * * @param username * @return object */ public Object findByName(String username) { return personDao.selectByUsername(username); }}
编写Controller
-
@RestControllerpublic class TestCtrl { @Resource private PersonService ps; @RequestMapping("/findAll") public Object findAll() { return new Result("ok", ps.findAll()); } @RequestMapping("/findByName/{username}") public Object findByName(@PathVariable(value = "username") String username) { return new Result("ok", ps.findByName(username)); } @RequestMapping("/del/{id}") public Object delPerson(@PathVariable(value = "id") Integer id ) { return new Result("ok", ps.delPerosn(id)); } @RequestMapping("/add") public Object addPerson(Person person) { return new Result("ok", ps.addPerson(person)); } @RequestMapping("/upd") public Object updPerson(Person person) { return new Result("ok", ps.updPerson(person)); }}
-
每个方法最后返回的 new Result(); 是自己定义的返回值类
-
@Datapublic class Result { private Integer code; private String message; private Object data; public Result(String message, Object data) { this.code = 200; this.message = message; this.data = data; } public Result(String message) { this.code = 4444; this.message = message; }}
-
-
编写完成后一定不要忘了扫描dao !!!
-
在启动类上添加注解@MapperScan
-
@SpringBootApplication//这个不能忘了加 这就是dao接口所在的包@MapperScan("com.mucd.mps.dao")public class MpsApplication { public static void main(String[] args) { SpringApplication.run(MpsApplication.class, args); }}
-
测试
- 我这里使用apipost工具进行测试
- 查询所有
- 添加数据
- 按照username查询
- 按照id删除数据
- 按照id修改数据
10.添加数据
ok测试完成