Spring Boot 使用JPA进行数据持久化

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进行项目启动。

然后去数据库中查看是否已经自动创建了相应的表,如果已经创建表示配置成功。

133144_vrF0_2273688.png

 

测试数据插入

创建数据持久接口

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类把一些常用的方法都已经进行定义和实现了。

134234_PHLR_2273688.png

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,页面输入以下信息表示插入成功。

140849_qXPr_2273688.png

再次访问数据库查看jpa_demo数据是否已经增加

140946_EpNK_2273688.png

完成以上信息表示数据插入成功

转载于:https://my.oschina.net/sdlvzg/blog/1153946

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值