springboot 整合springDataJPA


springboot 整合springDataJPA

〇、搭建springboot環境

一、添加依賴

  • mysql

      <!-- mysql驅動 -->
      <dependency>
      	<groupId>mysql</groupId>
      	<artifactId>mysql-connector-java</artifactId>
      </dependency>
    
  • springdatajpa

      <!-- springdata jpa依賴 -->
      <dependency>
      	<groupId>org.springframework.boot</groupId>
      	<artifactId>spring-boot-starter-data-jpa</artifactId>
      </dependency>
    

配置文件(src/main/resources/application.properties)

########################################################
###datasource
########################################################
spring.datasource.url = jdbc:mysql://localhost:3306/springboot
spring.datasource.username = root
spring.datasource.password = root
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
########################################################
### 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

持久層

import org.springframework.data.repository.CrudRepository;
import com.xujie.pojo.Target;

public interface TargetRepository extends CrudRepository<Target,Integer>{
	 
}

Entity

使用jpa的時候,一般先開發entity.因為如果配置文件配置了spring.jpa.hibernate.ddl-auto = update的話,jpa可以直接根據entity創建表;

示例:

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

@Entity(name="target")  
public class Target {
	@Id 
	@GeneratedValue  
	private int tid;
	@Column(name="tname",length=20)  
	private String tname;
	
	public int getTid() {
		return tid;
	}
	public void setTid(int tid) {
		this.tid = tid;
	}
	public String getTname() {
		return tname;
	}
	public void setTname(String tname) {
		this.tname = tname;
	}
	@Override
	public String toString() {
		return "Target [tid=" + tid + ", tname=" + tname + "]";
	}
}

service

import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.xujie.pojo.Target;
import com.xujie.repository.TargetRepository;
import com.xujie.service.TargetService;

@Service
public class TargetServiceimpl implements TargetService {

	// @Resource是根據名稱注入 @Autowired是根據類型注入
	@Resource
	private TargetRepository targetRepository;
	
	//添加
	@Override
	public void save(Target target) {
		this.targetRepository.save(target);
	}

	//刪除
	@Override
	public void delete(Integer id) {
		this.targetRepository.delete(id);
	}

	//查詢
	@Override
	public List<Target> findAll(){
		return (List<Target>) this.targetRepository.findAll();
	}
}

controller

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import com.xujie.pojo.Target;
import com.xujie.service.TargetService;

@RestController
public class TargetController {
	
	@Autowired
	private TargetService targetService;
	
	//添加
	@GetMapping("/save")
	public void save() {
		Target target = new Target();
		target.setTname("減肥");
		this.targetService.save(target);
	}

	//刪除
	@GetMapping("/delete/{id}")
	public void delete(@PathVariable Integer id) {
		this.targetService.delete(id);
	}

	//查詢所有
	@GetMapping("/findAll")
	public List<Target> findAll() {
		return this.targetService.findAll();

	}
}


免責聲明!

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



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