前言:
基于SpringBoot项目快速实现MySql数据库的增删改查。
一、Maven依赖导入
<!-- 数据库连接-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
<!-- mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
二、配置yml文件
server:
port: 8080
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8&useSSL=false
username: root
password: root
需要注意的按mysql版本填写 driver-class-name nysql版本高于3.6 需要在驱动中添加cj字样。
三、添加表、实体
CREATE TABLE `user` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` varchar(30) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '姓名',
`age` int DEFAULT NULL COMMENT '年龄',
`email` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
@Data注解是Lombok,需要额外添加依赖及插件
@TableId 是mybatis自带注解。什么主键自增方式。根据自己MySQL中拟定的来。
四、轮子开滚
1、创建对应实体Mapper接口
public interface UserMapper extends BaseMapper<User> {
}
继承mybatis包中的BaseMapper类,泛型是对应数据表的实体类。
2、创建对应实体service与serviceImpl类。
service接口:
public interface IUserService extends IService<User> {
}
继承MyBatis包中的IService类,泛型是对应数据表的实体类。
serviceImpl实现类:
@Service
@Slf4j
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
}
@Service注解:spring自动装配至容器。一定不要忘记添加。
@Slf4j注解:Lombok依赖中带入的,方便我们业务代码中的日志输出。
用法如下:
public String userGet(String userId){
// {} 为占位符类似。可多个使用
log.info("本次查询用户ID为:{}",userId);
return faceFacade.userGet(groupId);
}
3、添加启动类注解
@SpringBootApplication
@MapperScan("org.java.demo.springbootdemo.mapper")
public class SpringBootDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootDemoApplication.class, args);
}
}
@MapperScan("xxxx") 对应的就是自己mapper文件所在包的全路径。
4、编写Controller层使用轮子。
package org.java.demo.springbootdemo.controller;
import org.java.demo.springbootdemo.entity.User;
import org.java.demo.springbootdemo.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController //@ResponseBody + @Controller 无需再每个方法上添加了
@RequestMapping("/mybatis") //请求前缀,区分、快速寻找controller
public class MyBatisDemoController {
//自动注入service
@Autowired
private IUserService userService;
/**
* 新增数据至User表
* @param user user实体
* @return
*/
@PostMapping("/addUser")
public String addUser(@RequestBody User user){
boolean save = userService.save(user);
if (save) {
return "SUCCESS!";
} else {
return "FAIL!";
}
}
}
这样一个简单的保存实体至数据表就完成了。
Mybatis自带的service就携带了简单的CRUD操作。
至于连表查询等。则还是需要去编写Mapper.xml方法实现。