首页 > 开发 > Java > 正文

详解SpringBoot 快速整合MyBatis(去XML化)

2024-07-13 10:12:36
字体:
来源:转载
供稿:网友

序言:

此前,我们主要通过XML来书写SQL和填补对象映射关系。在SpringBoot中我们可以通过注解来快速编写SQL并实现数据访问。(仅需配置:mybatis.configuration.map-underscore-to-camel-case=true)。为了方便大家,本案例提供较完整的层次逻辑SpringBoot+MyBatis+Annotation。

具体步骤

1. 引入依赖

在pom.xml 引入ORM框架(Mybaits-Starter)和数据库驱动(MySQL-Conn)的依赖。

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <!--继承信息 -->  <parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>2.0.0.M4</version>    <relativePath/>  </parent>  <!--依赖管理 -->  <dependencies>    <dependency> <!--添加Web依赖 -->      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <dependency> <!--添加Mybatis依赖 -->      <groupId>org.mybatis.spring.boot</groupId>      <artifactId>mybatis-spring-boot-starter</artifactId>      <version>1.3.1</version>    </dependency>    <dependency><!--添加MySQL驱动依赖 -->      <groupId>mysql</groupId>      <artifactId>mysql-connector-java</artifactId>      <scope>runtime</scope>    </dependency>    <dependency><!--添加Test依赖 -->      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-test</artifactId>      <scope>test</scope>    </dependency>  </dependencies></project>

2. 添加数据源

在application.yml 添加数据源,以及开启Mybaits的驼峰映射功能。

spring: datasource:  url: jdbc:mysql://localhost:3306/socks?useSSL=false  username: root  password: root  driver-class-name: com.mysql.jdbc.Drivermybatis: configuration:  map-underscore-to-camel-case: true #开启驼峰映射

3. 编写数据层代码

// POJO类如下:public class User {  private String userId;  private String username;  private String password;  // Getters & Setters ..}// 数据层代码如下:public interface UserMapper {  @Select("select * from t_user where 1=1")  List<User> list();  @Select("select * from t_user where username like #{username}")  List<User> findByUsername(String username);  @Select("select * from t_user where user_id like #{userId}")  User getOne(String userId);  @Delete("delete from t_user where user_id like #{userId}")  int delete(String userId);}

4. 添加数据库记录

在Navicat 连接本地数据库,随便打开查询窗口,复制下面这段脚本,点击执行即可。

DROP DATABASE IF EXISTS `socks`;CREATE DATABASE `socks`;USE `SOCKS`;DROP TABLE IF EXISTS `t_user`;CREATE TABLE `t_user` ( `USER_ID` varchar(50) , `USERNAME` varchar(50) , `PASSWORD` varchar(50) ) ;INSERT INTO `t_user` VALUES ('1', 'admin', 'admin');INSERT INTO `t_user` VALUES ('2', 'yizhiwazi', '123456');

5. 启动项目

@SpringBootApplication@MapperScan("com.hehe.mapper") //扫描Mapper接口public class MybatisApplication {  public static void main(String[] args) {    SpringApplication.run(MybatisApplication.class, args);  }}

6. 单元测试

import static org.assertj.core.api.Assertions.assertThat;@RunWith(SpringRunner.class)@SpringBootTestpublic class MybatisApplicationTest {  @SuppressWarnings("all")  @Autowired  UserMapper userMapper;  @Test  public void test_db() {    //开始进行测试    assertThat(userMapper.list().size()).isGreaterThan(1);    assertThat(userMapper.getOne("1")).isNotEqualTo(null);    assertThat(userMapper.getOne("xxx")).isEqualTo(null);  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表