spring boot: spring-data-jpa (Repository/CrudRepository) 數據庫操作, @Entity實體類持久化


SpringBoot實現的JPA封裝了JPA的特性, Repository是封裝了jpa的特性(我是這么理解的)

 

1在pom.xml引入mysql, spring-data-jpa依賴

2.在src/main/resource/下新建applicatoin.properties配置文件,並配置數據庫連接

3.在application.properties配置jpa配置信息

4.編寫實例

熱部署pom.xml配置

<!-- spring boot devtools 熱部署 -->
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-devtools</artifactId>
    	<optional>true</optional>
    	<scope>true</scope>
    </dependency>

  

<!-- spring boot devtools的plugin -->
  	<plugin>
  		<groupId>org.springframework.boot</groupId>
  		<artifactId>spring-boot-maven-plugin</artifactId>
  		<configuration>
  			<!--fork :  如果沒有該項配置,呢個devtools不會起作用,即應用不會restart -->
  			<fork>true</fork>
  		</configuration>
  	</plugin>  

  

1.加入依賴

 <!-- mysql數據庫驅動依賴 -->
    <dependency>
    	<groupId>mysql</groupId>
    	<artifactId>mysql-connector-java</artifactId>
    </dependency>
    
    
    <!-- 添加spring-boot-data-jpa依賴 -->
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

  

2.applicaton.properties配置mysql

########################################################
###datasource mysql
########################################################
spring.datasource.url = jdbc:mysql://localhost:3306/spring?useUnicode=true&characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10

  

 

3.配置jpa

########################################################
### Java Persistence Api
########################################################
# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
#[org.hibernate.cfg.ImprovedNamingStrategy  #org.hibernate.cfg.DefaultNamingStrategy]
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

  

 

4.測試實例:

Spring Boot JPA 總結
---------------------
1、需要添加相應的依賴包;
2、需要在application.properties文件添加配置信息;
3、需要創建一個實體類,比如Cat;
4、需要創建一個接口繼承CrudRepository;
5、需要創建一個Service;
6、需要創建一個Controller;
7、代碼測試;

 

cat.java

package com.muyang.boot1.demo.bean;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

/**
 * 創建一個實體類
 * 如何持久化
 * 1.使用@Entity進行實體類的持久化操作,當JPA檢測到我們的實體類中有@Entity的 注解的時候
 * 會在數據庫中生成對應的表結構
 * 2.如何制定主鍵及生成策略
 * 使用@id來生成主鍵
 * @author Administrator
 *
 */
@Entity
public class Cat {

	/**
	 * 使用@Id生成主鍵
	 * 受用@GeneratedValue(strategy=GenerationType.AUTO)指定主鍵測策略,即mysql的自增Id
	 */
	@Id @GeneratedValue(strategy=GenerationType.AUTO)
	private int id;
	
	private String catName;
	
	private String catAge;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getCatName() {
		return catName;
	}

	public void setCatName(String catName) {
		this.catName = catName;
	}

	public String getCatAge() {
		return catAge;
	}

	public void setCatAge(String catAge) {
		this.catAge = catAge;
	}
	
	
	
}

  

 

catRepository.java

package com.muyang.boot1.demo.repository;

import org.springframework.data.repository.CrudRepository;

import com.muyang.boot1.demo.bean.Cat;

public interface CatRepository extends CrudRepository<Cat, Integer> {

}

  

 

catService.java增刪改查

package com.muyang.boot1.demo.service;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.muyang.boot1.demo.bean.Cat;
import com.muyang.boot1.demo.repository.CatRepository;

@Service
public class CatService {

	@Resource
	private CatRepository catRepository;
	
	
	
	/**
	 * 
	 * update, save, delete操作
	 */
	
	//保存數據
	public void save(Cat cat)
	{
		catRepository.save(cat);
	}
	
	//刪除數據
	public void delete(int id)
	{
		catRepository.delete(id);
	}
	
	//查詢
	public Iterable<Cat> getAll() {
		return catRepository.findAll();
	}
	
	
}

  

 

catController.java控制器

package com.muyang.boot1.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.muyang.boot1.demo.bean.Cat;
import com.muyang.boot1.demo.service.CatService;

@RestController
@RequestMapping("/cat")
public class CatController {

	@Autowired
	private CatService catService;
	
	//增加
	@RequestMapping(value="/add")
	public String save()
	{
		Cat cat = new Cat();
		cat.setCatName("大五");
		cat.setCatAge("22");
		catService.save(cat);
		return "save ok.";
	}
	
	@RequestMapping("/del")
	public String delete(int id)
	{
		catService.delete(id);
		return "delete ok.";
	}
	
	@RequestMapping(value="/getAll", produces="application/json; charset=utf-8")
	public Iterable<Cat> getAll()
	{		
		return catService.getAll();
	}
	
}

  

 

http://localhost:8080/cat/add

http://localhost:8080/cat/getAll

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM