在 Spring Boot 中使用 JPA 和 MySQL
在Spring Boot中使用JPA和MySQL
最近專案中需要使用到MySQL
資料庫,在此記錄一下Spring Boot
中使用JPA
進行資料訪問的基本過程。
本文的基本開發環境如下:spring-boot-1.4.2
& jdk-1.8
& spring-data-jpa-1.10.5
& mysql-connector-java-5.1.40
1. pom.xml
中加入JPA
及MySQL
依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2.配置MySQL
連線及JPA
引數
我的配置項是通過application.yml
檔案進行設定的,如下:
# yml裡面支援的配置項引數還有很多,可以在yml檔案中輸入關鍵詞後檢視相關用法,這裡就不解釋了
spring:
datasource:
url: jdbc:mysql://localhost:3306/demo
username: root
password: 123456
dbcp:
validation-query: SELECT 1
test-while-idle: true
jpa:
hibernate:
ddl-auto: create-drop
naming:
strategy: org.hibernate.cfg.ImprovedNamingStrategy
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL5Dialect
show-sql: true
Spring Boot
應用在啟動時會自動去解析此配置檔案裡面的內容,不需要我們再手動顯式的在Java或者XML中進行配置了。
3. 建立實體類
建立一個簡單的實體類用於演示:
@Entity
@Table(name = "label")
public class Label {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
/**
* 標籤的內容
*/
private String label;
public String getLabel() {
return label;
}
public void setLabel(String id, String label) {
this.labelId = id;
this.label = label;
}
}
4.建立實體類的CrudRepository
@Transactional
public interface LabelRepository extends MongoRepository<Label, String>{
/**
* 根據標籤文字查詢標籤是否已存在
* @param label 標籤文字
* @return
*/
Label findByLabel(String label);
}
5.使用Repository進行基本的CRUD
@RestController
public class LabelController {
@Autowired
private LabelRepository labelRepository;
/**
* 根據id獲取指定標籤
* @param id 標籤id
* @return Label
*/
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public RestResponse<Label> getById(@PathVariable("id") String id){
Label label = labelRepository.findOne(id);
if(label == null){
return RestResponse.bad(-10001, "label is not exsist ");
}
return RestResponse.good(label);
}
/**
* 根據標籤內容label獲取指定標籤
* @param label 標籤內容label
* @return Label
*/
@RequestMapping(method = RequestMethod.GET, params = {"label"})
public RestResponse<Label> getByLabel(@RequestPrama("label") String label){
Label label = labelRepository.findByLabel(label);
if(label == null){
return RestResponse.bad(-10001, "label is not exsist ");
}
return RestResponse.good(label);
}
}
基本使用流程就是這樣的!當然,這裡面還有很多很多細節,隨便拿一個出來都可以研究半天的,比如說Repository介面裡面使用@Query
支援自定義查詢語句,使用@AttributeOverride
註解關聯內部類屬性等等。
相關文章
- Spring Boot (五)Spring Data JPA 操作 MySQL 8Spring BootMySql
- Spring Boot 2和JPA入門Spring Boot
- spring boot 配置 JPASpring Boot
- Spring Boot:整合Spring Data JPASpring Boot
- Spring Boot + JPA實現MySQL批量更新原始碼 - githubSpring BootMySql原始碼Github
- Testing JPA Queries with Spring Boot and @DataJpaTestSpring Boot
- Spring Boot + JPA DataTable原始碼Spring Boot原始碼
- Spring Boot中使用JPA構建動態查詢Spring Boot
- Spring Data JPA系列2:SpringBoot整合JPA詳細教程,快速在專案中熟練使用JPASpring Boot
- Spring Boot + JPA學習總結Spring Boot
- 在spring boot3中使用native imageSpring Boot
- 在 Spring Boot 中使用 RedisSpring BootRedis
- spring boot中zookeeper使用Spring Boot
- spring boot中redis使用Spring BootRedis
- Spring Data JPA 在 @Query 中使用投影的方法Spring
- Spring Boot中如何使用JDBC讀取和寫入資料,JDBC和JPA的對比,JdbcTemplate和SimpleJdbcInsert的用法對比Spring BootJDBC
- 在Spring Boot框架中使用AOPSpring Boot框架
- Spring boot入門(二):Spring boot整合MySql,Mybatis和PageHelper外掛Spring BootMySqlMyBatis
- Spring Boot 2.X 如何快速整合jpa?Spring Boot
- 使用Spring Boot和Elasticsearch教程Spring BootElasticsearch
- 在spring boot專案(maven)中引入其他 spring boot專案Spring BootMaven
- Spring Boot入門系列(二十六)超級簡單!Spring Data JPA 的使用!Spring Boot
- Spring Boot(三):Spring Boot中的事件的使用 與Spring Boot啟動流程(Event 事件 和 Listeners監聽器)Spring Boot事件
- Spring Boot中使用JPA呼叫自定義的資料庫函式Spring Boot資料庫函式
- Spring Boot整合Spring Data JPA進行資料庫操作Spring Boot資料庫
- Spring Data JPA 的使用Spring
- 在 Kubernetes 上使用Spring Boot+ActiveMQSpring BootMQ
- Spring Data JPA中TransactionInterceptorSpring
- Spring Data JPA中ConfigurableTransactionManagerSpring
- 使用Spring Boot和GraalVM在Knative上構建微服務 - piotrSpring BootLVM微服務
- Spring Data JPA中事務使用異常TransactionUsageExceptionSpringException
- Spring Boot2+JPA之悲觀鎖和樂觀鎖實戰Spring Boot
- Spring JPA資料庫連線MySQLSpring資料庫MySql
- Spring Boot 中的 ApplicationRunner 和 CommandLineRunnerSpring BootAPP
- 列舉型別在JPA中的使用型別
- Spring Data JPA簡單使用Spring
- Hibernate/JPA中@OneToOne和@MapsId的使用
- 在 Spring Boot 中使用搜尋引擎 ElasticsearchSpring BootElasticsearch
- 在 Spring Boot 中使用 HikariCP 連線池Spring Boot