jpa mysql_Spring boot通过JPA访问MySQL数据库
本文展示如何通过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数据库相关推荐
- 类型 jpa mysql_Spring Boot集成JPA
前言 第一次使用 Spring JPA 的时候,感觉这东西简直就是神器,几乎不需要写什么关于数据库访问的代码一个基本的 CURD 的功能就出来了.下面我们就用一个例子来讲述以下 JPA 使用的基本操作 ...
- SpringBoot 实战 (八) | 使用 Spring Data JPA 访问 Mysql 数据库
微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 如题,今天介绍 Spring Data JPA 的使用. 什么是 Spring Data JPA 在介绍 Spri ...
- Springboot学习1——通过JPA访问MySQL数据库
本文展示如何通过JPA访问MySQL数据库. JPA全称Java Persistence API,即Java持久化API,它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据 ...
- Springboot03整合SpringDataJPA访问MySQL数据库
使用SpringBoot访问MySQL数据库,并且结合SpringDataJPA完成CRUD(Create,Read,Update,Delete 结合 Springboot01 中的demo案例 Sp ...
- 使用php从网络访问mysql数据库,使用PHP从web访问mysql数据库
一. web数据库构架的工作原理 1. 用户由浏览器发出HTTP请求,请求特定的web页面. 2. web服务器接受接收到对特定页面的请求,检索相应文件,并将其传递给php引擎处理. 3. php引擎 ...
- Spring使用JDBC访问MySQL数据库
在Java应用程序开发中,使用JDBC访问MySQL数据库是Java开发者常用的技术.在Spring框架中,Spring对JDBC又进行了封装,简化了程序访问数据库的复杂度.本课主要讨论在Spring ...
- php访问mysql数据库实验报告,php访问mysql数据库
//建一个连接,造一个连接对象 $db = new MySQLi("localhost","root","123","mydb&q ...
- 简单配置Mybatis,Druid访问MySQL数据库
文章目录 前言 一.Mybatis是什么 二.Druid是什么 三.使用步骤 1. 导入Jar包 2. application.yml配置Druid数据源 3. application.yml配置My ...
- MySql数据库记录相差14小时排错,使用Java访问Mysql数据库时出现时区异常的解决方案
最近遇到1个大坑,A系统迁移到B系统,2边系统 同1个字段 createTime 看到的不一致. 表象: A系统: 2019-6-10 17:34 B系统: 2019-6-11 .... 再次尝试: ...
最新文章
- Java学习总结:25
- 利用certutil.exe实现在批处理(bat)中嵌入可执行文件或者各种媒体、图片之类二进制文件的简单方法!...
- C#的简单不安全双向“混淆”
- 网络设备Web登录检测工具device-phamer
- ubuntu安装ffmpeg_安装 Jellyfin 开始肥宅生活
- 20145206 《信息安全系统设计基础》第十二周学习总结
- oracle的undo表空间不足,undo表空间不足,ORA-30036 unable to extend segment by ...
- Android 学习 笔记_05. 文件下载
- w ndows10玩游戏蓝屏,Win10系统玩游戏蓝屏提示代码0x0000007E的两种解决方法
- python3web库_基于 Python3 写的极简版 webserver
- 如何对国内股票的名称进行脱敏(待续)
- 最近点对问题C语言源代码
- 让老主板更新驱动程序不再拒绝新网卡(转)
- 特斯拉是如何训练自动驾驶的?
- css本文在背景之上,css实现文字在背景图片之上
- python print用法举例,Python2和Python3中print的用法示例总结
- 外挂三部曲(三) —— Android 图片相似度对比
- ADS1220 24位高精度ADC芯片驱动
- 五款轻量级的办公软件,界面简洁且无广告
- 动态和静态查看一个进程的内存使用
热门文章
- 图解电动汽车:电动汽车电控系统
- 【Pytorch】对比matual,mm和bmm函数
- bugku never give up
- 网易教育论坛:“状元”在美读大学:中国孩子都被教傻了
- 括号配对检测python123_括_括是什么意思_括字怎么读_括的含义_括字组词-新东方在线字典...
- 手机发出的邮件可以撤回吗?已发出的邮件撤回后对方能看到吗?
- java访问excel表格_Java读取excel表格(示例代码)
- 互联网大厂技术岗实习/求职经验分享(实习内推+简历+面试+offer)
- 点击商品进入详情页面
- Linux 4.x MTD源码分析-cfi-flash设备probe过程分析