SpringBoot整合Jpa实现数据的增删改查
SpringBoot是什么?
SpringBoot框架 Spring
Boot是由Pivotal团队提供的全新框架,属于spring旗下的一个项目,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,它使用“习惯优于配置”的理念,从而使开发人员不再需要定义样板化的配置。使用springboot很容易创建一个独立运行的spring项目,并且可以几乎不使用spring配置或者使用很少的配置。
Jpa框架是什么?
JPA的主要目标之一就是提供更加简单的编程模型:在JPA框架下创建实体和创建Java 类一样简单,没有任何的约束和限制,只需要使用
javax.persistence.Entity进行注释,JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易地掌握。JPA基于非侵入式原则设计,因此可以很容易地和其它框架或者容器集成。
Spring Data JPA相对于JAVA EE中的JPA,配置更简单,以轻量级的方式实现了部分在 EJB 容器环境下才具有的功能,将 EntityManager 的创建与销毁、事务管理等代码抽取出来,并由其统一管理,并且极大的简化了数据库访问层的代码。
SpringBoot整合jpa框架
接下来将会简洁明了的使用Springboot整合jpa框架,并实现相关的增删改查方法。
所需环境:mysql数据库,springboot sts3
新建一个springboot项目
1.pom文件
加入一下依赖到pom文件中
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2.mysql数据库创建表
mysql数据库已经准备好,创建以下表,也可以使用我提供的sql文件进行创建
/*
Navicat MySQL Data Transfer
Source Server : localhost_3306
Source Server Version : 50620
Source Host : localhost:3306
Source Database : secure
Target Server Type : MYSQL
Target Server Version : 50620
File Encoding : 65001
Date: 2018-12-24 16:20:33
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `t_user`
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`id` bigint(22) NOT NULL AUTO_INCREMENT,
`name` varchar(22) DEFAULT NULL,
`age` varchar(22) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of t_user
-- ----------------------------
3.配置applicaiton.properties
配置如下,其中username password url修改为自己的账号 密码 数据库地址
server.port=80
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost/secure?characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
4.编写实体类
这里以user类为例子,包含name ,id ,age等属性。代码如下:
/**
* @author Ray
*
*/
package com.secure.pojo;
import javax.persistence.*;
@Entity
@Table(name = "t_user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;// 用户编号
@Column(name = "name")
private String name;// 用户名称
@Column(name = "age")
private String 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 String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
5.编写Jpa接口层
package com.secure.jpa;
import java.io.Serializable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import com.secure.pojo.User;
public interface UserJPA extends JpaRepository<User, Long>, JpaSpecificationExecutor<User>, Serializable {
}
7.编写Controller控制层
package com.secure.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.secure.jpa.UserJPA;
import com.secure.pojo.User;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserJPA userJPA;
@RequestMapping(value = "/save", method = RequestMethod.GET)
public User save(User user) {
return userJPA.save(user);
}
}
8.使用springboot整合jpa执行数据的插入
访问http://localhost/user/save?name=xyf&age=22
测试成功
可以看到接口已经访问成功,数据已经保存至数据库。