IDEA 中創(chuàng)建Spring Data Jpa 項(xiàng)目的示例代碼
一、IDEA 創(chuàng)建工程
使用IDEA 創(chuàng)建工程的過(guò)程,使用文字做簡(jiǎn)單描述。
- 選擇工程類(lèi)別【Spring Initializr】。
- 設(shè)置工程的元數(shù)據(jù)【Metadata】,根據(jù)自己的情況填寫(xiě)即可。
- 設(shè)置工程的依賴(lài);在【W(wǎng)eb】中選擇“Spring Web”;在【SQL】中選中“Spring Data JPA”、“Spring Data JDBC”、“MySQL Driver”、“JDBC API”。選中的可能有些多,如果多了自己刪除掉。
做完最后一步,工程就創(chuàng)建完成了。
PS:在配置 IEAD 中的 Maven 功能時(shí),將“Always update snapshots” 選中,這樣就會(huì)及時(shí)更新測(cè)試包,并且不緩存Maven 的錯(cuò)誤信息。
1.1、Pom 文件中的依賴(lài)信息
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
二、編輯配置文件
在 resources 目錄中創(chuàng)建配置文件:application.yml;添加數(shù)據(jù)源等信息。
spring: datasource: url: jdbc:mysql://dbserver.com:3306/user?useUnicode=true&characterEncoding=utf-8 username: username password: password driver-class-name: com.mysql.cj.jdbc.Driver server: port: 8080 compression: enabled: true servlet: context-path: /
三、編寫(xiě)實(shí)體類(lèi)
創(chuàng)建User的實(shí)體類(lèi) Entity/User.java(省略了getter&setter方法;如果不寫(xiě)的話(huà),會(huì)對(duì)數(shù)據(jù)操作失?。?。
/**
* 使用JPA注解配置映射關(guān)系
*/
@Entity //告訴JPA這是一個(gè)實(shí)體類(lèi)(和數(shù)據(jù)表映射的類(lèi))
@Table(name = "tbl_user") //@Table來(lái)指定和哪個(gè)數(shù)據(jù)表對(duì)應(yīng);如果省略,默認(rèn)表名就是該類(lèi)名的小寫(xiě):user
public class User {
@Id //表示這個(gè)屬性是數(shù)據(jù)表中的主鍵
@GeneratedValue(strategy = GenerationType.IDENTITY) //還是一個(gè)自增的主鍵
private Integer id;
@Column(name = "last_name",length = 50) //這是和數(shù)據(jù)表對(duì)應(yīng)的一個(gè)列,可以定義其在數(shù)據(jù)表中的名字及長(zhǎng)度
private String lastName;
@Column //省略的情況,默認(rèn)列名就是屬性名
private String email;
}
使用JPA的一個(gè)好處就是,它能夠根據(jù)實(shí)體類(lèi)自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)表,只需簡(jiǎn)單配置幾步即可:
在application.yml文件中增加(jpa 也是spring下的一個(gè)屬性,所以它也是在spring這個(gè)層級(jí)下的):
jpa: hibernate: ddl-auto: update #定義數(shù)據(jù)表的生成策略。update:更新或者創(chuàng)建數(shù)據(jù)表結(jié)構(gòu) show-sql: true #控制臺(tái)顯示sql語(yǔ)句
運(yùn)行主程序,控制臺(tái)會(huì)報(bào)錯(cuò)找不到對(duì)應(yīng)的表,但是這實(shí)際上是正常的,去數(shù)據(jù)庫(kù)看就可以發(fā)現(xiàn)名為tbl_user的表已經(jīng)創(chuàng)建成功了,而且是根據(jù)實(shí)體類(lèi)中的設(shè)置創(chuàng)建的。
四、持久層接口
JPA中有許多封裝好的對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的方法,不需要我們?cè)賹?xiě)sql語(yǔ)句,而是直接調(diào)用其中的方法,就可以完成對(duì)數(shù)據(jù)的操作了。而這時(shí),持久層只需繼承JpaRepository類(lèi)就可以了。
/**
* Dao/UserRepository.java
* 繼承JpaRepository來(lái)完成對(duì)數(shù)據(jù)庫(kù)的操作
* JpaRepository<T,id>,T表示要進(jìn)行操作的實(shí)體類(lèi),id表示類(lèi)的主鍵的類(lèi)型
*/
public interface UserRepository extends JpaRepository<User,Integer> {
}
五、控制層
編寫(xiě)控制層代碼來(lái)測(cè)試一下是否成功。因?yàn)闆](méi)有界面,所以這邊直接用@RestController注解來(lái)返回json串就好了,把持久層接口自動(dòng)注入進(jìn)來(lái),直接調(diào)用其中對(duì)應(yīng)的方法。
@RestController
@EnableAutoConfiguration
public class UserController {
@Autowired
UserRepository userRepository;
@GetMapping("/user/{id}")
public User getUser(@PathVariable("id") Integer id) {
Optional<User> optional = userRepository.findById(id);
if (optional.isPresent()) {
User user = optional.get();
return user;
} else {
return new User();
}
}
@GetMapping("/user")
public User insertUser(User user) {
User save = userRepository.save(user);
return save;
}
}
六、測(cè)試
1.首先插入一條數(shù)據(jù):
地址欄輸入 :http://localhost:8080/user?lastName=zhangsan&email=aa
2、查詢(xún):
地址欄輸入 :http://localhost:8080/user/1
到此這篇關(guān)于IDEA 中創(chuàng)建Spring Data Jpa 項(xiàng)目的示例代碼的文章就介紹到這了,更多相關(guān)IDEA 創(chuàng)建Spring Data Jpa 項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Spring data jpa的使用與詳解(復(fù)雜動(dòng)態(tài)查詢(xún)及分頁(yè),排序)
- Spring Security+Spring Data Jpa如何進(jìn)行安全管理
- SpringBoot如何整合SpringDataJPA
- Spring Data Jpa的四種查詢(xún)方式詳解
- Spring Data JPA分頁(yè)復(fù)合查詢(xún)?cè)斫馕?/a>
- Spring Data JPA進(jìn)行數(shù)據(jù)分頁(yè)與排序的方法
- Spring Data Jpa 自動(dòng)生成表結(jié)構(gòu)的方法示例
- Spring Data JPA 建立表的聯(lián)合主鍵
- Spring Boot中使用Spring-data-jpa的配置方法詳解
- 詳解Spring Data Jpa當(dāng)屬性為Null也更新的完美解決方案
- 使用Spring Data Jpa的CriteriaQuery一個(gè)陷阱
相關(guān)文章
Springmvc請(qǐng)求參數(shù)類(lèi)型轉(zhuǎn)換器及原生api代碼實(shí)例
這篇文章主要介紹了Springmvc請(qǐng)求參數(shù)類(lèi)型轉(zhuǎn)換器及原生api代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
使用Spring CROS解決項(xiàng)目中的跨域問(wèn)題詳解
這篇文章主要介紹了使用Spring CROS解決項(xiàng)目中的跨域問(wèn)題詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
Java并發(fā)編程之Condition源碼分析(推薦)
這篇文章主要介紹了Java并發(fā)編程之Condition源碼分析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
java 漢諾塔Hanoi遞歸、非遞歸(仿系統(tǒng)遞歸)和非遞歸規(guī)律 實(shí)現(xiàn)代碼
漢諾塔(Hanoi) 算法Java實(shí)現(xiàn)。通過(guò)三個(gè)函數(shù),分別對(duì)Hanoi進(jìn)行遞歸、非遞歸和非遞歸規(guī)律實(shí)現(xiàn)。2013-05-05
JavaWeb實(shí)現(xiàn)簡(jiǎn)單的自動(dòng)登錄功能
這篇文章主要為大家詳細(xì)介紹了JavaWeb實(shí)現(xiàn)簡(jiǎn)單的自動(dòng)登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
Java中volatile關(guān)鍵字的作用是什么舉例詳解
這篇文章主要介紹了Java中volatile關(guān)鍵字的作用是什么的相關(guān)資料,volatile關(guān)鍵字在Java中用于修飾變量,提供可見(jiàn)性和禁止指令重排的特性,但不保證原子性,它通過(guò)內(nèi)存屏障實(shí)現(xiàn)這些特性,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04
Spring cloud踩坑記錄之使用feignclient遠(yuǎn)程調(diào)用服務(wù)404的方法
這篇文章主要給大家介紹了關(guān)于Spring cloud踩坑記錄之使用feignclient遠(yuǎn)程調(diào)用服務(wù)404的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11
mybatis plus 的動(dòng)態(tài)表名的配置詳解
這篇文章主要介紹了mybatis plus 的動(dòng)態(tài)表名的配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
mybatisplus 多表關(guān)聯(lián)條件分頁(yè)查詢(xún)的實(shí)現(xiàn)
本文主要介紹了mybatisplus 多表關(guān)聯(lián)條件分頁(yè)查詢(xún)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01

