本文展示如何通过JPA访问MySQL数据库。

JPA全称Java Persistence API,即Java持久化API,它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据,结合其他ORM的使用,能达到简化开发流程的目的,使开发者能够专注于实现自己的业务逻辑上。

Spring boot结合Jpa 能够简化创建 JPA 数据访问层和跨存储的持久层功能,用户的持久层Dao接口只需要继承定义好的接口,无需再写实现类,就可以实现对象的CRUD操作以及分页排序等功能。

环境要求

  • Mysql数据库5.6以上
  • JDK1.8以上
  • 开发工具使用STS/eclipse

创建项目

选择web和JPA依赖

添加MySQL数据库驱动依赖

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>
</dependency>

application.properties中配置数据库连接信息

spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword

以上数据库连接信息根据实际情况进行调整。

注意pring.jpa.hibernate.ddl-auto的值可以是none、create、update、create-drop。具体参考hibernate的文档。

创建实体模型

com.yuny.jpademo.pojo.User

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;@Entity // This tells Hibernate to make a table out of this class
public class User {@Id@GeneratedValue(strategy=GenerationType.AUTO)private Integer id;private String name;
private String email;
//此处省略get和set
}

增加数据访问接口

com.yuny.jpademo.repository.UserRepository

public interface UserRepository extends PagingAndSortingRepository<User, Long> {
}

此接口会自动由spring实现,并且产生对应的实例放在容器中,该实例的名称为类名首字母小写userRepository。

创建Controller测试

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import com.yuny.jpademo.pojo.User;
import com.yuny.jpademo.repository.UserRepository;
@RestController
public class UserController {@Autowiredprivate UserRepository userRepository;//测试插入新的数据@GetMapping(path="/add")public @ResponseBody String addNewUser (@RequestParam String name, @RequestParam String email) {User n = new User();n.setName(name);n.setEmail(email);userRepository.save(n);return "保存成功";}//测试获取全部的数据@GetMapping(path="/all")public Iterable<User> getAllUsers() {return userRepository.findAll();}
}

测试

运行SpringBootJpademoApplication后,访问增加数据的时候要传参数:
http://localhost:8080/add?name=ffff&email=dddddd测试。结果如下:

数据库显示插入数据成功

访问http://localhost:8080/all 测试

总结

在没用使用jpa支持的时候,我们的代码要定义IUserDao(持久层接口)、IUserDaoImpl(持久层实现类)、IUserService(业务层接口)等,这样每写一个实体类,都要衍生出多个类来进行操作。

而在Spring boot 中使用JPA,只需要声明一个接口就可以了。

有一个很重要的问题,重新把Appliaction跑起来之后,你之前存的数据就没了,数据库被清空了,解决办法是在数据库配置文件加一句配置:
spring.jpa.hibernate.ddl-auto=update

Springboot学习1——通过JPA访问MySQL数据库相关推荐

  1. SpringBoot 实战 (八) | 使用 Spring Data JPA 访问 Mysql 数据库

    微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 如题,今天介绍 Spring Data JPA 的使用. 什么是 Spring Data JPA 在介绍 Spri ...

  2. jpa mysql_Spring boot通过JPA访问MySQL数据库

    本文展示如何通过JPA访问MySQL数据库. JPA全称Java Persistence API,即Java持久化API,它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据 ...

  3. springdata和mysql_Spring Boot使用Spring Data JPA访问MySQL数据库

    它使用Spring Data JPA来访问数据库,但这只是众多可能选择中的一种(例如,您可以使用普通的Spring JDBC). mysql建立数据库,添加用户,并且授权 mysql> crea ...

  4. 使用php从网络访问mysql数据库,使用PHP从web访问mysql数据库

    一. web数据库构架的工作原理 1. 用户由浏览器发出HTTP请求,请求特定的web页面. 2. web服务器接受接收到对特定页面的请求,检索相应文件,并将其传递给php引擎处理. 3. php引擎 ...

  5. Spring Boot 2.x基础教程:使用Spring Data JPA访问MySQL

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 翟永超 来源 | http://blog.di ...

  6. Spring使用JDBC访问MySQL数据库

    在Java应用程序开发中,使用JDBC访问MySQL数据库是Java开发者常用的技术.在Spring框架中,Spring对JDBC又进行了封装,简化了程序访问数据库的复杂度.本课主要讨论在Spring ...

  7. Springboot03整合SpringDataJPA访问MySQL数据库

    使用SpringBoot访问MySQL数据库,并且结合SpringDataJPA完成CRUD(Create,Read,Update,Delete 结合 Springboot01 中的demo案例 Sp ...

  8. sql2008能否打开mysql数据库_SQL Server 2008通过LinkServer访问MySQL数据库

    (中国软件网讯)怎样让SQL Server 2008数据库可以访问MySQL数据库的数据呢?其实这一实现的过程并不难,可以通过调用MySQL的ODBC驱动,在SQL Server中添加LinkServ ...

  9. 如何在jsp页面中连接mysql数据库_如何使用JSP访问MySQL数据库

    如何使用JSP访问MySQL数据库 更新时间:2006年10月13日 00:00:00   作者: import ="java.util.*" import ="java ...

最新文章

  1. 科学界最牛的合影在这,能认全的都是大神!
  2. android闹钟详细设计,基于LabVIEW的闹钟设计 详细文档+程序
  3. ajax设置自定义请求头信息
  4. 最强!超越卷积、自注意力机制:强大的神经网络新算子involution
  5. VMware Workstation 11序列号
  6. mysql 修改表的编码_Mysql表编码查看修改
  7. 虚拟机ubuntu与真实机实现实现复制粘贴、传输文件
  8. 常见电容器图片_电容分类图片-各种电容器图片
  9. 天线设计相关性能参数
  10. hibernate使用Query进行查询
  11. 视频在线发布网站HTML模板分享
  12. 项目管理/互联网/软件全套文档、产品文档、技术文档、测试文档、运维文档、项目文档
  13. NRC 0x78 在CAPL中如何打开和关闭
  14. 『IDEA』IDEA快捷键使用教程
  15. Internet协议---UDP(一)
  16. 2月VR大数据:硬件份额变化不大,PS VR2首发游戏超50款
  17. 接打电话的蓝牙耳机哪个牌子好?接听电话蓝牙耳机推荐
  18. Ubuntu下Android 4.0源码及内核下载编译注意点
  19. 已知三角形三个顶点坐标求面积(简单办法)
  20. 巅峰不止,继续奋斗!城链科技数字峰会于重庆隆重举行

热门文章

  1. android studio视频路径,Android studio相关设置及实现存在于工程目录中的视频播放...
  2. Software knowledge Encyclopedia:extjs是一种软件,自动生成行号,支持checkbox全选
  3. 代发核心期刊骗局_“代发论文”骗局:近2000人被骗 多数不愿报案
  4. html百度天气查询api,百度提供天气预报查询接口API
  5. iOS 火星坐标系 与 地球坐标系
  6. Prometheus(二)基础概念
  7. 小天才z6官方禁用怎么关闭_我告诉你小天才z6隐藏功能
  8. 解决微信小程序录制视频存在的问题
  9. 微软自带输入法输入时英文的间距突然变大
  10. python 类函数 实例函数,python_30期【实例函数 类里面的函数】