前言:本文通过简单介绍Spring Boot和MyBatis-Plus框架整合,提升与数据库的交互作用。MyBatis-Plus持久层框架技术相比MyBatis更加强大,效率更高,内置多个增删改查方法,十分适合与Spring Boot组合使用。
导入依赖
<!-- MyBatisPlus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>Latest Version</version>
</dependency>
<!-- mysql 依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
设计数据库
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(32) NOT NULL,
`password` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
INSERT INTO `user` VALUES ('1', 'jack', '123');
INSERT INTO `user` VALUES ('2', 'tom', '123');
配置application.yml
server:
port: 8888 # 端口号
spring
datasource:
driver-class-name: com.mysql.jdbc.Driver # 驱动名
url: jdbc:mysql://127.0.0.1:3306/springboot_demo?useUnicode=true&characterEncoding=UTF8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai # 数据库连接url
username: root # 用户名
password: root # 密码
创建实体类pojo
User.java
@Data // 需要在idea中安装lombok插件
public class User {
private Integer id;
private String username;
private String password;
}
创建mapper
继承BaseMapper<User>
,内置默认有单表的增删改查方法
UserMapper.java
public interface UserMapper extends BaseMapper<User> {
}
修改启动类
MyBatisPlusDemoApplication.java
@SpringBootApplication
@MapperScan("com.tom.mapper") // 让Spring扫描和加载到mapper
public class MyBatisPlusDemoApplication {
public static void main(String[] args) {
SpringApplication.run(MyBatisPlusDemoApplication.class, args);
}
}
创建service
UserService.java
接口
public interface UserService {
List<User> queryUserList(); // 查询所有用户
}
UserServiceImpl.java
实现类
@Service //将业务对象实例化 加入到SpringIOC容器中
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
// 查询所有用户
@Override
public List<User> queryUserList() {
return userMapper.selectList(null); // mapper内置方法
}
}
创建controller
Spring中controller注解区别
使用注解@RestController
所有方法返回的数据都是json格式的字符串(基于REST的web服务控制器)
使用注解@Controller
是向前端响应html静态页面(传统Spring MVC视图控制器)
两者关键区别是HTTP响应体的创建方式
UserController.java
@RestController //将该对象加入到SpringIOC容器中
public class UserController {
@Autowired
private UserService userService;
/**
* 查询用户表所有用户列表
* @return
*/
@GetMapping("/userList")
public List<User> queryUserList(){
return userService.queryUserList();
}
}
打印SQL日志
方法一
logging:
level:
com.tom.mapper: debug
方法二
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志