spring boot: spring-data-jpa (Repository/CrudRepository) 数据库操作, @Entity实体类持久化

摘要:
SpringBoot实现的JPA封装了JPA的特性,而Repository封装了JPA的特性(正如我所理解的那样)。1.pom中引入了MySQL。xml和spring数据jpa依赖于它。2.创建应用程序。src/main/resource/下的属性配置文件,并配置数据库连接。3.在application.properties中配置jpa配置信息。4.编写实例热部署pom。xml配置

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

免责声明:文章转载自《spring boot: spring-data-jpa (Repository/CrudRepository) 数据库操作, @Entity实体类持久化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇php中流行的rpc框架详解C语言中查看类型的大小(占几个byte)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

将 Spring boot 项目打成可执行Jar包,及相关注意事项(main-class、缺少 xsd、重复打包依赖)

最近在看 spring boot 的东西,觉得很方便,很好用。对于一个简单的REST服务,都不要自己部署Tomcat了,直接在 IDE 里 run 一个包含 main 函数的主类就可以了。 但是,转念一想,到了真正需要部署应用的时候,不可能通过 IDE 去部署啊。那有没有办法将 spring boot 的项目打包成一个可执行的 jar 包,然后通过 ja...

如何在win7下通过easyBCD引导安装Ubuntu14.04

不需要U盘 在Win7下装Ubuntu双系统 本文测试安装的是32位的ubuntu-14.10-desktop-i386.iso 系统。 准备: Ubuntu系统ISO文件。EasyBCD 软件。  Step 1. 在windows里面把空余空间腾出来 计算机右键,管理,磁盘管理,通过压缩卷等方法得到要分给 Ubuntu系统的分区。或者原来你就有某个盘用于...

Spring Boot 2.2.x Junit4 升级为Junit5 后的变化、对比 找不到 org.junit.jupiter.api.Test

遇到的问题:使用 maven 创建了一个 parent 项目 A,其 pom.xml 继承 parent 为 spring-boot-starter-parent 2.1.10。 然后创建 module 项目 B,使用 spring initializr 构建项目,用的是 IDEA,当时没有选 Spring Boot 版本,结果默认使用的是 2.2.1。...

spring事务配置步骤

spring事务配置流程 第一步:配置事务管理器 第二步:配置通知--》传播行为 第三步:配置切入点--》切面 AOP <!-- 事务管理器 --> <bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager">...

如何让springboot打包的项目部署在阿里云上使用https和http方式访问

前言 问题描述:怎么让springboot部署在服务器上使用https协议方式访问我们的接口或者域名,目的是某些平台请求的是https协议,而不是https 部署环境:阿里云 centos7服务器,springboot项目打包的jar,nginx反向代理 注:部署前需要解决几个问题 1)需要配置springboot项目支持https协议, 2)需要配置阿里...

【hibernate/JPA】注解方式实现 复合主键【spring boot】

1》hibernate/JPA实现复合主键的思路:是将所有的主键属性封装在一个主键类中,提供给需要复合主键的实体类使用。 2》主键类的几点要求: 1. 使用复合主键的实体类必须实现Serializable接口。 必须实现Serializable接口的原因很简单,我们查找数据的时候是根据主键查找的。打开Hibernate的帮助文档我们可以找到get与loa...