springboot整合系列----springboot整合mybatis

今天药忘吃喽~ 2021-09-23 06:02 800阅读 0赞

今天我们介绍springboot整合mybatis教程。本文采取全注解的方式来实现springboot与mybatis的整合,不再使用xml配置的方式。因为注解的方式更加简洁高效,这也是spring大力推荐的方式,之后技术的发展也是使用注解的趋势,所以建议你在不影响业务本身的情况下,能使用注解就使用注解。

如何创建一个springboot项目这里就不在过多介绍,操作步骤非常简单,不会的同学搜索查阅一下即可。

springboot整合的步骤一般可分为三部分:引入依赖,修改配置文件,修改功能代码。

在创建一个空的springboot项目以后,我们首先引入maven依赖:

pom文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <artifactId>spring-boot-demo-orm-mybatis</artifactId>
  6. <version>1.0.0-SNAPSHOT</version>
  7. <packaging>jar</packaging>
  8. <name>spring-boot-demo-orm-mybatis</name>
  9. <description>Demo project for Spring Boot</description>
  10. <parent>
  11. <groupId>com.xkcoding</groupId>
  12. <artifactId>spring-boot-demo</artifactId>
  13. <version>1.0.0-SNAPSHOT</version>
  14. </parent>
  15. <properties>
  16. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  17. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  18. <java.version>1.8</java.version>
  19. <mybatis.version>1.3.2</mybatis.version>
  20. </properties>
  21. <dependencies>
  22. <dependency>
  23. <groupId>org.mybatis.spring.boot</groupId>
  24. <artifactId>mybatis-spring-boot-starter</artifactId>
  25. <version>${mybatis.version}</version>
  26. </dependency>
  27. <dependency>
  28. <groupId>mysql</groupId>
  29. <artifactId>mysql-connector-java</artifactId>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.projectlombok</groupId>
  33. <artifactId>lombok</artifactId>
  34. <optional>true</optional>
  35. </dependency>
  36. <dependency>
  37. <groupId>cn.hutool</groupId>
  38. <artifactId>hutool-all</artifactId>
  39. </dependency>
  40. <dependency>
  41. <groupId>com.google.guava</groupId>
  42. <artifactId>guava</artifactId>
  43. </dependency>
  44. <dependency>
  45. <groupId>org.springframework.boot</groupId>
  46. <artifactId>spring-boot-starter-test</artifactId>
  47. <scope>test</scope>
  48. </dependency>
  49. </dependencies>
  50. <build>
  51. <finalName>spring-boot-demo-orm-mybatis</finalName>
  52. <plugins>
  53. <plugin>
  54. <groupId>org.springframework.boot</groupId>
  55. <artifactId>spring-boot-maven-plugin</artifactId>
  56. </plugin>
  57. </plugins>
  58. </build>
  59. </project>

其中最重要的部分就是引入了mybatis的starter,以及mysql的驱动包。

然后我们进行第二步,修改配置文件:

application.yml

  1. spring:
  2. datasource:
  3. url: jdbc:mysql://127.0.0.1:3306/spring-boot-demo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
  4. username: root
  5. password: root
  6. driver-class-name: com.mysql.cj.jdbc.Driver
  7. type: com.zaxxer.hikari.HikariDataSource
  8. initialization-mode: always
  9. continue-on-error: true
  10. schema:
  11. - "classpath:db/schema.sql"
  12. data:
  13. - "classpath:db/data.sql"
  14. hikari:
  15. minimum-idle: 5
  16. connection-test-query: SELECT 1 FROM DUAL
  17. maximum-pool-size: 20
  18. auto-commit: true
  19. idle-timeout: 30000
  20. pool-name: SpringBootDemoHikariCP
  21. max-lifetime: 60000
  22. connection-timeout: 30000
  23. logging:
  24. level:
  25. com.xkcoding: debug
  26. com.xkcoding.orm.mybatis.mapper: trace
  27. mybatis:
  28. configuration:
  29. # 下划线转驼峰
  30. map-underscore-to-camel-case: true
  31. mapper-locations: classpath:mappers/*.xml
  32. type-aliases-package: com.xkcoding.orm.mybatis.entity

然后开始写功能代码:

先创建一个实体类,供我们测试

  1. @Data
  2. @NoArgsConstructor
  3. @AllArgsConstructor
  4. @Builder
  5. public class User implements Serializable {
  6. private static final long serialVersionUID = -1840831686851699943L;
  7. /**
  8. * 主键
  9. */
  10. private Long id;
  11. /**
  12. * 用户名
  13. */
  14. private String name;
  15. /**
  16. * 加密后的密码
  17. */
  18. private String password;
  19. /**
  20. * 加密使用的盐
  21. */
  22. private String salt;
  23. /**
  24. * 邮箱
  25. */
  26. private String email;
  27. /**
  28. * 手机号码
  29. */
  30. private String phoneNumber;
  31. }

然后写mapper文件来操作数据库

  1. @Mapper
  2. @Component
  3. public interface UserMapper {
  4. /**
  5. * 查询所有用户
  6. *
  7. * @return 用户列表
  8. */
  9. @Select("SELECT * FROM orm_user")
  10. List<User> selectAllUser();
  11. /**
  12. * 根据id查询用户
  13. *
  14. * @param id 主键id
  15. * @return 当前id的用户,不存在则是 {@code null}
  16. */
  17. @Select("SELECT * FROM orm_user WHERE id = #{id}")
  18. User selectUserById(@Param("id") Long id);
  19. /**
  20. * 保存用户
  21. *
  22. * @param user 用户
  23. * @return 成功 - {@code 1} 失败 - {@code 0}
  24. */
  25. int saveUser(@Param("user") User user);
  26. /**
  27. * 删除用户
  28. *
  29. * @param id 主键id
  30. * @return 成功 - {@code 1} 失败 - {@code 0}
  31. */
  32. int deleteById(@Param("id") Long id);
  33. }

测试的sql语句:

  1. CREATE TABLE `test`.`<table_name>` (
  2. `id` bigint NOT NULL,
  3. `name` varchar(32),
  4. `password` varchar(50),
  5. `salt` varchar(50),
  6. `phone` varchar(20),
  7. `email` varchar(20),
  8. PRIMARY KEY (`id`)
  9. ) COMMENT='';
  10. INSERT INTO `user`(`id`,`name`,`password`,`salt`,`email`,`phone`) VALUES (1, 'user_1', 'ff342e862e7c3285cdc07e56d6b8973b', '412365a109674b2dbb1981ed561a4c70', 'user1@xkcoding.com', '17300000001');
  11. INSERT INTO `user`(`id`,`name`,`password`,`salt`,`email`,`phone`) VALUES (2, 'user_2', '6c6bf02c8d5d3d128f34b1700cb1e32c', 'fcbdd0e8a9404a5585ea4e01d0e4d7a0', 'user2@xkcoding.com', '17300000002');

然后启动项目,进行测试,发现功能正常。

于是最基本的springboot集成mybatis完成。

发表评论

表情:
评论列表 (有 0 条评论,800人围观)

还没有评论,来说两句吧...

相关阅读