1、在使用Spring整合ORM組件的過程中,為了達到簡化的目的,往往會進行大量的配置。利用SpringBoot可以進一步實現配置的簡化。SpringBoot整合MyBatis開發框架,MyBatis是一款常用並且配置極為簡單的ORM開發框架。其與Spring結合后,可以利用Spring的特征實現DAO接口的自動配置。在SpringBoot中,又對MyBatis框架的整合進行了進一步簡化。
修改pom.xml配置文件,在項目中引入mybatis-spring-boot- starter依賴支持庫,切記也需要數據庫鏈接池的支持的哦。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 5 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 6 7 <modelVersion>4.0.0</modelVersion> 8 <parent> 9 <!-- spring-boot-starter-parent就是官方給出的快速構建SpringBoot項目的公共父pom.xml配置文件支持。 --> 10 <groupId>org.springframework.boot</groupId> 11 <artifactId>spring-boot-starter-parent</artifactId> 12 <version>2.3.4.RELEASE</version> 13 <relativePath /> <!-- lookup parent from repository --> 14 </parent> 15 16 <groupId>com.bie</groupId> 17 <artifactId>springboot-01</artifactId> 18 <version>0.0.1-SNAPSHOT</version> 19 <name>springboot-01</name> 20 <description>Demo project for Spring Boot</description> 21 22 <properties> 23 <java.version>1.8</java.version> 24 <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> 25 </properties> 26 27 <dependencies> 28 <dependency> 29 <groupId>org.springframework.boot</groupId> 30 <artifactId>spring-boot-starter-web</artifactId> 31 </dependency> 32 33 <dependency> 34 <groupId>org.springframework.boot</groupId> 35 <artifactId>spring-boot-starter-test</artifactId> 36 <scope>test</scope> 37 <exclusions> 38 <exclusion> 39 <groupId>org.junit.vintage</groupId> 40 <artifactId>junit-vintage-engine</artifactId> 41 </exclusion> 42 </exclusions> 43 </dependency> 44 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> 45 <dependency> 46 <groupId>mysql</groupId> 47 <artifactId>mysql-connector-java</artifactId> 48 <!-- <version>5.1.12</version> --> 49 </dependency> 50 <dependency> 51 <groupId>org.springframework.boot</groupId> 52 <artifactId>spring-boot-configuration-processor</artifactId> 53 <optional>true</optional> 54 </dependency> 55 56 <!-- 引入 Druid 數據源依賴:https://mvnrepository.com/artifact/com.alibaba/druid --> 57 <dependency> 58 <groupId>com.alibaba</groupId> 59 <artifactId>druid</artifactId> 60 <version>1.1.9</version> 61 </dependency> 62 <!-- 導入MyBatis的ORM開發包。 --> 63 <dependency> 64 <groupId>org.mybatis.spring.boot</groupId> 65 <artifactId>mybatis-spring-boot-starter</artifactId> 66 <version>1.3.1</version> 67 </dependency> 68 <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> 69 <dependency> 70 <groupId>org.mybatis</groupId> 71 <artifactId>mybatis</artifactId> 72 <version>3.4.6</version> 73 </dependency> 74 <!-- mybatis的啟動器 --> 75 <dependency> 76 <groupId>org.mybatis.spring.boot</groupId> 77 <artifactId>mybatis-spring-boot-starter</artifactId> 78 <version>2.1.1</version> 79 </dependency> 80 <dependency> 81 <groupId>org.springframework.boot</groupId> 82 <artifactId>spring-boot-starter-jdbc</artifactId> 83 </dependency> 84 </dependencies> 85 86 <build> 87 <plugins> 88 <plugin> 89 <groupId>org.springframework.boot</groupId> 90 <artifactId>spring-boot-maven-plugin</artifactId> 91 </plugin> 92 </plugins> 93 </build> 94 95 </project>
數據表結構,如下所示:
注意:如果數據表字段兩個英文單詞之間是下划線連接的,但是你的實體類是駝峰命名法,此時就需要進行配置,數據庫字段是你下划線分隔,但是bean中的字段是駝峰命名的,如user_name和userName,導致無法匹配。如果是通過xml文件來配置的話,只需要開啟駝峰命名轉換,setting name="mapUnderscoreToCamelCase" value="true"/>,在/src/main/resources/mybatis/mybatis.cfg.xml里面配置即可。
1 /* 2 Navicat Premium Data Transfer 3 4 Source Server : localhost 5 Source Server Type : MySQL 6 Source Server Version : 50724 7 Source Host : localhost:3306 8 Source Schema : biehl 9 10 Target Server Type : MySQL 11 Target Server Version : 50724 12 File Encoding : 65001 13 14 Date: 15/11/2020 13:34:52 15 */ 16 17 SET NAMES utf8mb4; 18 SET FOREIGN_KEY_CHECKS = 0; 19 20 -- ---------------------------- 21 -- Table structure for user_info 22 -- ---------------------------- 23 DROP TABLE IF EXISTS `user_info`; 24 CREATE TABLE `user_info` ( 25 `user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用戶編號', 26 `user_account` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用戶賬號', 27 `user_pw` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用戶密碼', 28 `user_number` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用戶手機號', 29 `user_name` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用戶姓名', 30 `user_age` int(11) DEFAULT NULL COMMENT '用戶年齡', 31 `user_sex` varchar(5) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用戶性別', 32 `user_mark` varchar(5) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用戶標志', 33 `create_time` datetime(0) DEFAULT CURRENT_TIMESTAMP COMMENT '用戶創建時間', 34 `is_sync` int(3) DEFAULT 0 COMMENT '用戶標識', 35 `is_money` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否繳納押金', 36 PRIMARY KEY (`user_id`) USING BTREE, 37 INDEX `user_id`(`user_id`) USING BTREE 38 ) ENGINE = InnoDB AUTO_INCREMENT = 42 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用戶信息表' ROW_FORMAT = Dynamic; 39 40 SET FOREIGN_KEY_CHECKS = 1;
創建一個po實體類,方便數據傳輸,如下所示:
1 package com.bie.po; 2 3 public class UserInfo { 4 5 private Integer userId;// 用戶編號 6 private String userAccount;// 用戶賬號 7 private String userPw;// 用戶密碼 8 private String userNumber;// 用戶學號 9 private String userName;// 用戶姓名 10 private Integer userAge;// 用戶年齡 11 private String userSex;// 用戶性別 12 private String userMark;// 用戶標識,可以使用一張表,完成管理員和用戶 13 14 private String isMoney; 15 16 public Integer getUserId() { 17 return userId; 18 } 19 20 public void setUserId(Integer userId) { 21 this.userId = userId; 22 } 23 24 public String getUserAccount() { 25 return userAccount; 26 } 27 28 public void setUserAccount(String userAccount) { 29 this.userAccount = userAccount; 30 } 31 32 public String getUserPw() { 33 return userPw; 34 } 35 36 public void setUserPw(String userPw) { 37 this.userPw = userPw; 38 } 39 40 public String getUserNumber() { 41 return userNumber; 42 } 43 44 public void setUserNumber(String userNumber) { 45 this.userNumber = userNumber; 46 } 47 48 public String getUserName() { 49 return userName; 50 } 51 52 public void setUserName(String userName) { 53 this.userName = userName; 54 } 55 56 public Integer getUserAge() { 57 return userAge; 58 } 59 60 public void setUserAge(Integer userAge) { 61 this.userAge = userAge; 62 } 63 64 public String getUserSex() { 65 return userSex; 66 } 67 68 public void setUserSex(String userSex) { 69 this.userSex = userSex; 70 } 71 72 public String getUserMark() { 73 return userMark; 74 } 75 76 public void setUserMark(String userMark) { 77 this.userMark = userMark; 78 } 79 80 public String getIsMoney() { 81 return isMoney; 82 } 83 84 public void setIsMoney(String isMoney) { 85 this.isMoney = isMoney; 86 } 87 88 @Override 89 public String toString() { 90 return "UserInfo [userId=" + userId + ", userAccount=" + userAccount + ", userPw=" + userPw + ", userNumber=" 91 + userNumber + ", userName=" + userName + ", userAge=" + userAge + ", userSex=" + userSex 92 + ", userMark=" + userMark + ", isMoney=" + isMoney + "]"; 93 } 94 95 }
在src/main/resources目錄中創建mybatis/mybatis.cfg.xml配置文件。如果要開啟駝峰命名轉換,在這里開啟即可,如下所示:
如果在application.properties中開啟轉換的話,使用mybatis.configuration.map-underscore-to-camel-case=true配置即可。
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 4 <!-- 進行Mybatis的相應環境的屬性定義 --> 5 <configuration> 6 7 <settings> 8 <!-- 通過xml文件來配置的話,只需要開啟駝峰命名轉換 --> 9 <setting name="mapUnderscoreToCamelCase" value="true" /> 10 </settings> 11 12 </configuration>
或者搞個配置類,如果數據庫表字段Column無法自動映射到相對應的實體類屬性上,我們可以在config包下新建一個自動配置類MybatisConfig,開始駝峰命名規則。
MyBatis配置文件開啟駝峰命名映射,可參考:https://blog.csdn.net/liu_sisi/article/details/88360155
1 package com.bie.config;
2
3 import org.apache.ibatis.session.Configuration;
4 import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
5 import org.springframework.context.annotation.Bean;
6
7
8 @Configuration
9 public class MybatisConfig {
10
11 //注冊到容器中
12 @Bean
13 public ConfigurationCustomizer configurationCustomizer(){
14 return new ConfigurationCustomizer(){
15 @Override
16 public void customize(Configuration configuration) {
17 //開啟駝峰命名規則,是否啟用下划線與駝峰式命名規則的映射
18 configuration.setMapUnderscoreToCamelCase(true);
19
20 }
21 };
22 }
23 }
修改application.yml配置文件,追加MyBatis配置,如下所示:
1 # 配置當前要使用的數據源的操作類型 2 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource 3 # 配置Mysql的驅動程序類 4 spring.datasource.driver-class-name=com.mysql.jdbc.Driver 5 # 數據庫連接地址 6 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/biehl?characterEncoding=UTF-8&serverTimezone=UTC 7 # 數據庫用戶名稱 8 spring.datasource.username=root 9 # 數據庫密碼 10 spring.datasource.password=123456 11 # 進行數據庫鏈接池的配置,數據庫最小維持連接數 12 spring.datasource.dbcp2.min-idle=1 13 # 數據庫初始化提供的連接數 14 spring.datasource.dbcp2.initial-size=1 15 # 數據庫最大維持連接數 16 spring.datasource.dbcp2.max-total=100 17 # 等待連接獲取的最大超時時間 18 spring.datasource.dbcp2.max-wait-millis=3000 19 20 21 # 后台打印sql語句 22 # mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 23 # 指定sql映射文件位置,mapper下的所有.xml文件都是映射文件 24 # mybatis.mapper-locations=classpath:mapper/*Mapper.xml 25 # Mybatis配置文件所在的路徑 26 mybatis.config-location=classpath:mybatis/mybatis.cfg.xml 27 # 定義所有操作類的別名所在包 28 mybatis.type-aliases-package=com.bie.po
搞幾個Dao層、Service層、Controller層的接口或者類,如下所示:
注意:如果不想每次都在mapper接口上添加@Mapper注解,可以在主啟動類上通過添加@MapperScan注解來批量掃描指定包下的所有mapper接口。
1 package com.bie.dao; 2 3 import java.util.List; 4 5 import org.apache.ibatis.annotations.Mapper; 6 import org.apache.ibatis.annotations.Select; 7 8 import com.bie.po.UserInfo; 9 10 @Mapper // 需要引入Mybatis的依賴包 11 public interface UserInfoDao { 12 13 /** 14 * 查詢全部用戶信息 15 * 16 * @return 17 */ 18 @Select(value = " select * from user_info ") 19 public List<UserInfo> findAll(); // 查詢全部用戶信息 20 21 }
Service層的接口和實現類代碼,如下所示:
1 package com.bie.service; 2 3 import java.util.List; 4 5 import com.bie.po.UserInfo; 6 7 public interface UserInfoService { 8 9 public List<UserInfo> findAll(); 10 }
1 package com.bie.service.impl; 2 3 import java.util.List; 4 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.stereotype.Service; 7 8 import com.bie.dao.UserInfoDao; 9 import com.bie.po.UserInfo; 10 import com.bie.service.UserInfoService; 11 12 @Service 13 public class UserInfoServiceImpl implements UserInfoService { 14 15 @Autowired 16 private UserInfoDao userInfoDao; 17 18 @Override 19 public List<UserInfo> findAll() { 20 return this.userInfoDao.findAll(); 21 } 22 23 }
控制層的代碼,如下所示:
1 package com.bie.controller; 2 3 import java.util.List; 4 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.stereotype.Controller; 7 import org.springframework.web.bind.annotation.RequestMapping; 8 import org.springframework.web.bind.annotation.ResponseBody; 9 10 import com.bie.po.UserInfo; 11 import com.bie.service.UserInfoService; 12 13 @Controller 14 public class UserInfoController { 15 16 @Autowired 17 private UserInfoService userInfoService; 18 19 @RequestMapping(value = "findAll") 20 @ResponseBody 21 public List<UserInfo> findAll() { 22 List<UserInfo> findAll = this.userInfoService.findAll(); 23 return findAll; 24 } 25 26 }
項目啟動類,如下所示:
1 package com.bie; 2 3 import org.mybatis.spring.annotation.MapperScan; 4 import org.springframework.boot.SpringApplication; 5 import org.springframework.boot.autoconfigure.SpringBootApplication; 6 7 @SpringBootApplication 8 @MapperScan(value = "com.bie.dao") 9 public class Springboot01Application { 10 11 public static void main(String[] args) { 12 SpringApplication.run(Springboot01Application.class, args); 13 } 14 15 }
通過Postman測試一下,自己寫的接口,看看好使不,如下所示:

項目結構,如下所示:

2、JPA是官方推出的Java持久層操作標准(現主要使用Hibernate實現),使用SpringData技術和JpaRepository接口技術,也可以達到簡化數據層的目的。要在SpringBoot中使用SpringDataJPA,需要spring-boot-starter-data-jpa依賴庫的支持。
修改pom.xml配置文件,引入相關依賴包,如下所示:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 5 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 6 <modelVersion>4.0.0</modelVersion> 7 <parent> 8 <groupId>org.springframework.boot</groupId> 9 <artifactId>spring-boot-starter-parent</artifactId> 10 <version>2.3.5.RELEASE</version> 11 <relativePath /> <!-- lookup parent from repository --> 12 </parent> 13 <groupId>com.example</groupId> 14 <artifactId>demo</artifactId> 15 <version>0.0.1-SNAPSHOT</version> 16 <name>demo</name> 17 <description>Demo project for Spring Boot</description> 18 19 <properties> 20 <java.version>1.8</java.version> 21 <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> 22 </properties> 23 24 <dependencies> 25 <dependency> 26 <groupId>org.springframework.boot</groupId> 27 <artifactId>spring-boot-starter-web</artifactId> 28 </dependency> 29 30 <dependency> 31 <groupId>org.springframework.boot</groupId> 32 <artifactId>spring-boot-starter-test</artifactId> 33 <scope>test</scope> 34 <exclusions> 35 <exclusion> 36 <groupId>org.junit.vintage</groupId> 37 <artifactId>junit-vintage-engine</artifactId> 38 </exclusion> 39 </exclusions> 40 </dependency> 41 42 <!-- mysql驅動包 --> 43 <dependency> 44 <groupId>mysql</groupId> 45 <artifactId>mysql-connector-java</artifactId> 46 </dependency> 47 48 <!-- druid連接池 --> 49 <dependency> 50 <groupId>com.alibaba</groupId> 51 <artifactId>druid</artifactId> 52 <version>1.1.10</version> 53 </dependency> 54 55 <dependency> 56 <groupId>org.springframework.boot</groupId> 57 <artifactId>spring-boot-starter-data-jpa</artifactId> 58 </dependency> 59 <dependency> 60 <groupId>org.springframework.boot</groupId> 61 <artifactId>spring-boot-starter-cache</artifactId> 62 </dependency> 63 <dependency> 64 <groupId>org.hibernate</groupId> 65 <artifactId>hibernate-ehcache</artifactId> 66 </dependency> 67 </dependencies> 68 69 <build> 70 <plugins> 71 <plugin> 72 <groupId>org.springframework.boot</groupId> 73 <artifactId>spring-boot-maven-plugin</artifactId> 74 </plugin> 75 </plugins> 76 <resources> 77 <resource> 78 <directory>src/main/resources</directory> 79 <includes> 80 <include>**/*.properties</include> 81 <include>**/*.yml</include> 82 <include>**/*.xml</include> 83 <include>**/*.p12</include> 84 <include>**/*.html</include> 85 <include>**/*.jpg</include> 86 <include>**/*.png</include> 87 </includes> 88 </resource> 89 </resources> 90 </build> 91 92 </project>
創建UserInfo實體類,如下所示:
1 package com.demo.po; 2 3 import javax.persistence.Cacheable; 4 import javax.persistence.Column; 5 import javax.persistence.Entity; 6 import javax.persistence.GeneratedValue; 7 import javax.persistence.GenerationType; 8 import javax.persistence.Id; 9 10 @Cacheable() 11 @Entity(name = "user_info") 12 public class UserInfo { 13 14 @Id() 15 @Column(name = "user_id") 16 @GeneratedValue(strategy = GenerationType.IDENTITY) // 根據名稱引用配置的主鍵生成器 17 private Integer userId;// 用戶編號 18 19 @Column(name = "user_account") 20 private String userAccount;// 用戶賬號 21 22 @Column(name = "user_pw") 23 private String userPw;// 用戶密碼 24 25 @Column(name = "user_number") 26 private String userNumber;// 用戶學號 27 28 @Column(name = "user_name") 29 private String userName;// 用戶姓名 30 31 @Column(name = "user_age") 32 private Integer userAge;// 用戶年齡 33 34 @Column(name = "user_sex") 35 private String userSex;// 用戶性別 36 37 @Column(name = "user_mark") 38 private String userMark;// 用戶標識,可以使用一張表,完成管理員和用戶 39 40 @Column(name = "is_money") 41 private String isMoney; 42 43 public Integer getUserId() { 44 return userId; 45 } 46 47 public void setUserId(Integer userId) { 48 this.userId = userId; 49 } 50 51 public String getUserAccount() { 52 return userAccount; 53 } 54 55 public void setUserAccount(String userAccount) { 56 this.userAccount = userAccount; 57 } 58 59 public String getUserPw() { 60 return userPw; 61 } 62 63 public void setUserPw(String userPw) { 64 this.userPw = userPw; 65 } 66 67 public String getUserNumber() { 68 return userNumber; 69 } 70 71 public void setUserNumber(String userNumber) { 72 this.userNumber = userNumber; 73 } 74 75 public String getUserName() { 76 return userName; 77 } 78 79 public void setUserName(String userName) { 80 this.userName = userName; 81 } 82 83 public Integer getUserAge() { 84 return userAge; 85 } 86 87 public void setUserAge(Integer userAge) { 88 this.userAge = userAge; 89 } 90 91 public String getUserSex() { 92 return userSex; 93 } 94 95 public void setUserSex(String userSex) { 96 this.userSex = userSex; 97 } 98 99 public String getUserMark() { 100 return userMark; 101 } 102 103 public void setUserMark(String userMark) { 104 this.userMark = userMark; 105 } 106 107 public String getIsMoney() { 108 return isMoney; 109 } 110 111 public void setIsMoney(String isMoney) { 112 this.isMoney = isMoney; 113 } 114 115 @Override 116 public String toString() { 117 return "UserInfo [userId=" + userId + ", userAccount=" + userAccount + ", userPw=" + userPw + ", userNumber=" 118 + userNumber + ", userName=" + userName + ", userAge=" + userAge + ", userSex=" + userSex 119 + ", userMark=" + userMark + ", isMoney=" + isMoney + "]"; 120 } 121 122 }
創建UserDao,然后繼承JpaRepository<UserInfo, Integer>,此時就可以使用寫好的方法了,不用自己再額外寫接口和實現,如下所示:
1 package com.demo.dao; 2 3 import org.springframework.data.jpa.repository.JpaRepository; 4 5 import com.demo.po.UserInfo; 6 7 /** 8 * 9 * @author 繼承JpaRepository包含全部的基礎CURD操作 10 * 11 */ 12 public interface UserDao extends JpaRepository<UserInfo, Integer> { 13 14 }
然后定義Service接口和Service接口實現,如下所示:
1 package com.demo.service; 2 3 import java.util.List; 4 5 import com.demo.po.UserInfo; 6 7 public interface UserService { 8 9 public List<UserInfo> findAll(); 10 }
1 package com.demo.service.impl; 2 3 import java.util.List; 4 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.stereotype.Service; 7 8 import com.demo.dao.UserDao; 9 import com.demo.po.UserInfo; 10 import com.demo.service.UserService; 11 12 @Service 13 public class UserServiceImpl implements UserService { 14 15 @Autowired 16 private UserDao userDao; 17 18 @Override 19 public List<UserInfo> findAll() { 20 21 return userDao.findAll(); 22 } 23 24 }
然后搞一個Controller,作為接口訪問的入口,如下所示:
1 package com.demo.controller; 2 3 import java.util.List; 4 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.stereotype.Controller; 7 import org.springframework.web.bind.annotation.RequestMapping; 8 import org.springframework.web.bind.annotation.ResponseBody; 9 10 import com.demo.po.UserInfo; 11 import com.demo.service.UserService; 12 13 @Controller 14 public class SpringBootController { 15 16 @Autowired 17 private UserService userService; 18 19 @RequestMapping(value = "/findAll") 20 @ResponseBody 21 public List<UserInfo> findAll() { 22 List<UserInfo> findAll = userService.findAll(); 23 return findAll; 24 } 25 26 }
修改程序啟動主類,追加Repository掃描配置。如果使用JpaRepository實現了DAO接口的自動實現。需要注意的是,如果想啟用Repository配置,則需要在程序啟動主類時使用@EnableJpaRepositories注解配置掃描包,而后才可以正常使用。
1 package com.demo; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 6 7 @SpringBootApplication // 啟動Springboot程序,而后自帶子包掃描 8 @EnableJpaRepositories(basePackages = "com.demo.dao") 9 public class DemoApplication { 10 11 public static void main(String[] args) { 12 // 啟動Springboot程序 13 SpringApplication.run(DemoApplication.class, args); 14 } 15 16 }
修改application.properties,使用Druid作為數據源連接池,如下所示:
1 # mysql的數據庫驅動 2 spring.datasource.driver-class-name=com.mysql.jdbc.Driver 3 # mysql的鏈接 4 spring.datasource.url=jdbc:mysql://localhost:3306/biehl 5 # mysql的賬號 6 spring.datasource.username=root 7 # mysql的密碼 8 spring.datasource.password=123456 9 10 # druid連接池的配置 11 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource 12 13 # Spring Data JPA,此配置可以在實體類中使用注解來創建數據表,開啟正向工程 14 spring.jpa.hibernate.ddl-auto=update 15 # 在控制台打印sql語句 16 spring.jpa.show-sql=true
使用postman進行接口調用,如下所示:

