JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体、对象持久化到数据库中。
通过观看https://my.oschina.net/sdlvzg/blog/1154281创建项目,再执行以下操作
在pom.xml中引入依赖库
引入jpa依赖库
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
另数据库使用MYSQL,需要引入相应的驱动程序
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
修改application.properties配置文件,增加配置
增加数据库联接配置信息
########################################################
###datasource
########################################################
spring.datasource.url = jdbc:mysql://192.168.1.121:3306/lvgangdb
spring.datasource.username = aorakidb
spring.datasource.password = Yes@126.com
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
增加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
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
验证是否配置成功
编写一个实体类
package org.lvgang.bean;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity // 加入这个注解,Demo就会进行持久化了,在这里没有对@Table进行配置,请自行配置。
public class JpaDemo {
@Id
@GeneratedValue
private long id;// 主键.
private String name;// 测试名称.
private int age;// 测试年龄
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
通过项目名称上右击选择==>Run As==>Java Application进行项目启动。
然后去数据库中查看是否已经自动创建了相应的表,如果已经创建表示配置成功。
测试数据插入
创建数据持久接口
package org.lvgang.repository;
import org.lvgang.bean.JpaDemo;
import org.springframework.data.repository.CrudRepository;
/**
* 在CrudRepository自带常用的crud方法.里面有一些基本的数据查询、更新、删除 等等方法
* @author Administrator
*
*/
public interface JpaRepository extends CrudRepository<JpaDemo, Long> {
}
CrudRepository类把一些常用的方法都已经进行定义和实现了。
Spring Data的核心接口里面Repository是最基本的接口了, 另Spring Data还提供了很多实现了该接口的类,如:CrudRepository,PagingAndSortingRepository,SimpleJpaRepository,QueryDslJpaRepository等。
创建业务服务层Service
package org.lvgang.service;
import javax.annotation.Resource;
import org.lvgang.bean.JpaDemo;
import org.lvgang.repository.JpaRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* JPA业务服务层
* @author Administrator
*/
@Service
public class JpsService {
@Resource
private JpaRepository jpaRepository; //数据待久层
/**
* 数据保存
* @param jpaDemo
*/
@Transactional
public void save(JpaDemo jpaDemo) {
jpaRepository.save(jpaDemo);
}
}
创建控制层Controller
package org.lvgang.controller;
import javax.annotation.Resource;
import org.lvgang.bean.JpaDemo;
import org.lvgang.service.JpsService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* JPA测试控制层
*
* @author Administrator
*
*/
@RestController
@RequestMapping("/jpademo")
public class JpaController {
@Resource
private JpsService jpsService;
/**
* 测试保存数据方法.
*
* @return
*/
@RequestMapping("/save")
public String save() {
JpaDemo d = new JpaDemo();
d.setAge(20);
d.setName("Angel");
jpsService.save(d);// 保存数据.
return "ok.JpaController.save";
}
}
完成以上代码编写,通过Main方法进行启动。
然后通过访问URL:http://127.0.0.1/jpademo/save,页面输入以下信息表示插入成功。
再次访问数据库查看jpa_demo数据是否已经增加
完成以上信息表示数据插入成功