只有光頭才能變強。java
文本已收錄至個人GitHub倉庫,歡迎Star:https://github.com/ZhongFuCheng3y/3ymysql
不知道你們對SpringBoot和Spring Data JPA瞭解多少,若是你已經學過Spring和Hibernate的話,那麼SpringBoot和SpringData JPA能夠分分鐘上手的。SpringBoot和SpringData JPA的好處我就不說了,當時我學習的時候也粗略作過筆記,有興趣的同窗能夠去看看git
其實我在學完SpringBoot和SpringData JPA了以後,寫過一個小Demo,但一直沒發出來而已(懶)。而最近要寫畢業設計的一個管理模塊(CRUD),而且我又沒寫過相關SpringBoot和SpringData JPA的搭建教程,因此就誕生了這篇文章了。github
本次我使用的是IDEA編輯器來搭建SpringBoot和Spring Data JPA環境web
首先,咱們在IDEA新建項目的時候,選擇Spring Initializr,而後next就好了。spring
而後填寫一些項目的資料(其實這些資料也可有可無,本身看着填就行了),隨後點擊nextsql
隨後在勾選的時候,我就隨手勾選了個LomBok(其餘的沒勾選,反正後面咱們能夠在pom文件下配置嘛)。能夠看出,本次SpringBoot的版本爲2.1.3。數據庫
而後IDEA就會幫咱們建立出Maven管理下SpringBoot的項目啦,此時通常咱們會指定本身的下載好的Maven,重寫它的settings.xml文件json
而後Maven就一直在下載相關的依賴啊,必要的插件啊(我等了差很少10分鐘吧,這個時間能夠去倒杯Java喝喝.haha),等Maven下載完以後,咱們的項目就成了下面那個樣子了(注:原生的是application.properties文件的,我改了一下後綴,我比較喜歡yml格式的):瀏覽器
如今pom文件只有SpringBoot和LomBok的依賴,想要完成CURD的功能,咱們須要用到Spring Web模塊、Spring Data JPA以及MySQL驅動依賴,因此咱們得在pom文件下加入這些依賴:
<!--Web必要的--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--spring data jpa--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- MySQL的java驅動 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
pom文件的完整依賴圖以下:
既然咱們用到了SpringData JPA和MySQL,咱們得爲其進行配置最基礎的信息。好比說數據庫的用戶名和密碼,相對應的庫,以及SpringData JAP的策略。
#服務端容器的配置 server: port: 8887 #數據庫配置 spring: datasource: username: 填寫本身的 password: 填寫本身的 driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://填寫本身的機器:3306/填寫本身的庫?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC # JPA配置 jpa: hibernate: ddl-auto: update show-sql: true # formatSQL得這樣寫 properties: hibernate: format_sql: true
yml文件完整圖以下:
數據庫的信息填寫成本身的就好了。
我畢業設計其中就有對用戶的管理,咱們用戶實體設計以下(你們的固然能夠跟個人不同了,我這只是樣例):
package com.zhongfucheng.example.demo.domain; import lombok.Data; import org.hibernate.annotations.GenericGenerator; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import java.io.Serializable; import java.util.Date; /** * 存儲用戶的信息 * * @author ozc * @version 1.0 */ @Entity // jpa的註解,須要加 @Table(name = "table_user") // 指定數據庫的表名 @Data // lombok public class User implements Serializable { @Id @GeneratedValue(generator = "system-uuid") @GenericGenerator(name = "system-uuid", strategy = "uuid") private String userId; private String userNickname; private String userPassword; private String userEmail; private Integer actiState; //激活成功與激活失敗常量 public static final int ACTIVATION_SUCCESSFUL = 1; public static final int ACTIVATION_UNSUCCESSFUL = 0; private String actiCode; private Date tokenExptime; }
再補充一句:由於咱們有了LomBok的Data註解,而且在IDEA已經下好的LomBok的插件,因此咱們能夠不用寫set、get方法。
User實體圖以下:
UserRepository是dao層的東西了,至關於UserDao/UserMapper
,只是叫法不同而已。好比在Struts2喜歡將名字取成xxxAction
,而在SpringMVC喜歡將名字取成xxxxController
。
通常地,咱們將UserRepository繼承JpaRepository就能夠有對應的增刪改查方法:
import com.zhongfucheng.example.demo.domain.User; import org.springframework.data.jpa.repository.JpaRepository; /** * UserDao 操做數據庫 * @author ozc * @version 1.0 */ public interface UserRepository extends JpaRepository<User, String> { }
UserRepository圖以下:
ok,咱們的UserRepository已經寫好了,至於爲啥咱們傳入<User, String>
,點進去看一下就明白了:
咱們就查user表全部的記錄出來就行了,代碼以下:
// 接口 public interface UserService { List<User> getAllUser(); } // 實現 @Service public class UserServiceImpl implements UserService { @Autowired private UserRepository userRepository; @Override public List<User> getAllUser() { return userRepository.findAll(); } }
UserService圖以下:
爲啥會有findAll()
方法?由於咱們的UserRepository 繼承了JpaRepository
UserController調用一下service的方法,看是否能返回成功,若是能返回成功,那說明咱們的環境已是ok的了。
UserController代碼以下:
@RestController public class UserController { @Autowired private UserService userService; /** * 獲得全部用戶 */ @GetMapping(value = "/user", produces = {"application/json;charset=UTF-8"}) public void getAllUser () { List<User> allUser = userService.getAllUser(); for (User user : allUser) { System.out.println(user); } } }
Controller代碼圖以下:
進入DemoApplication,右鍵,啓動咱們的SpringBoot項目:
在瀏覽器輸入咱們的url:http://localhost:8887/user
。而後咱們從後臺查看,打印出查詢的SQL語句,已經後臺已經打印表已有的記錄。
咱們能夠發現使用SpringBoot+SpringData JPA的方式,不須要不少的配置,不須要不少的代碼就能夠從數據庫中查找出數據了。很是適合咱們作一些簡答的測試和小功能。若是對例子有疑問的同窗應該是對SpringData JPA不太熟悉,建議去找找相關的教程看一下,相信你能夠很快就入門了。
樂於輸出乾貨的Java技術公衆號:Java3y。公衆號內有200多篇原創技術文章、海量視頻資源、精美腦圖,不妨來關注一下!
以爲個人文章寫得不錯,不妨點一下贊!