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

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

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

环境要求

Mysql数据库5.6以上

JDK1.8以上

开发工具使用STS

创建项目

使用STS创建项目

选择web和JPA依赖

添加MySQL数据库驱动依赖

mysql

mysql-connector-java

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

importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;

@Entity//This tells Hibernate to make a table out of this class

public classUser {

@Id

@GeneratedValue(strategy=GenerationType.AUTO)privateInteger id;privateString name;privateString email;//此处省略get和set

}

增加数据访问接口

com.yuny.jpademo.repository.UserRepository

public interface UserRepository extends PagingAndSortingRepository{

}

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

创建Controller测试

importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.ResponseBody;importorg.springframework.web.bind.annotation.RestController;importcom.yuny.jpademo.pojo.User;importcom.yuny.jpademo.repository.UserRepository;

@RestControllerpublic classUserController {

@AutowiredprivateUserRepository userRepository;//测试插入新的数据

@GetMapping(path="/add")public@ResponseBody String addNewUser (@RequestParam String name

, @RequestParam String email) {

User n= newUser();

n.setName(name);

n.setEmail(email);

userRepository.save(n);return "保存成功";

}//测试获取全部的数据

@GetMapping(path="/all")public IterablegetAllUsers() {returnuserRepository.findAll();

}

}

测试

运行SpringBootJpademoApplication后,访问

数据库显示插入数据成功

总结

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

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

案例代码

https://github.com/junyanghuang/spring-boot-samples/tree/master/spring-boot-jpademo

jpa mysql_Spring boot通过JPA访问MySQL数据库相关推荐

  1. 类型 jpa mysql_Spring Boot集成JPA

    前言 第一次使用 Spring JPA 的时候,感觉这东西简直就是神器,几乎不需要写什么关于数据库访问的代码一个基本的 CURD 的功能就出来了.下面我们就用一个例子来讲述以下 JPA 使用的基本操作 ...

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

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

  3. Springboot学习1——通过JPA访问MySQL数据库

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

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

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

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

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

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

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

  7. php访问mysql数据库实验报告,php访问mysql数据库

    //建一个连接,造一个连接对象 $db = new MySQLi("localhost","root","123","mydb&q ...

  8. 简单配置Mybatis,Druid访问MySQL数据库

    文章目录 前言 一.Mybatis是什么 二.Druid是什么 三.使用步骤 1. 导入Jar包 2. application.yml配置Druid数据源 3. application.yml配置My ...

  9. MySql数据库记录相差14小时排错,使用Java访问Mysql数据库时出现时区异常的解决方案

    最近遇到1个大坑,A系统迁移到B系统,2边系统 同1个字段 createTime 看到的不一致. 表象: A系统: 2019-6-10 17:34 B系统: 2019-6-11 .... 再次尝试: ...

最新文章

  1. Java学习总结:25
  2. 利用certutil.exe实现在批处理(bat)中嵌入可执行文件或者各种媒体、图片之类二进制文件的简单方法!...
  3. C#的简单不安全双向“混淆”
  4. 网络设备Web登录检测工具device-phamer
  5. ubuntu安装ffmpeg_安装 Jellyfin 开始肥宅生活
  6. 20145206 《信息安全系统设计基础》第十二周学习总结
  7. oracle的undo表空间不足,undo表空间不足,ORA-30036 unable to extend segment by ...
  8. Android 学习 笔记_05. 文件下载
  9. w ndows10玩游戏蓝屏,Win10系统玩游戏蓝屏提示代码0x0000007E的两种解决方法
  10. python3web库_基于 Python3 写的极简版 webserver
  11. 如何对国内股票的名称进行脱敏(待续)
  12. 最近点对问题C语言源代码
  13. 让老主板更新驱动程序不再拒绝新网卡(转)
  14. 特斯拉是如何训练自动驾驶的?
  15. css本文在背景之上,css实现文字在背景图片之上
  16. python print用法举例,Python2和Python3中print的用法示例总结
  17. 外挂三部曲(三) —— Android 图片相似度对比
  18. ADS1220 24位高精度ADC芯片驱动
  19. 五款轻量级的办公软件,界面简洁且无广告
  20. 动态和静态查看一个进程的内存使用

热门文章

  1. 图解电动汽车:电动汽车电控系统
  2. 【Pytorch】对比matual,mm和bmm函数
  3. bugku never give up
  4. 网易教育论坛:“状元”在美读大学:中国孩子都被教傻了
  5. 括号配对检测python123_括_括是什么意思_括字怎么读_括的含义_括字组词-新东方在线字典...
  6. 手机发出的邮件可以撤回吗?已发出的邮件撤回后对方能看到吗?
  7. java访问excel表格_Java读取excel表格(示例代码)
  8. 互联网大厂技术岗实习/求职经验分享(实习内推+简历+面试+offer)
  9. 点击商品进入详情页面
  10. Linux 4.x MTD源码分析-cfi-flash设备probe过程分析