Springboot学习1——通过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/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数据库相关推荐
- SpringBoot 实战 (八) | 使用 Spring Data JPA 访问 Mysql 数据库
微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 如题,今天介绍 Spring Data JPA 的使用. 什么是 Spring Data JPA 在介绍 Spri ...
- jpa mysql_Spring boot通过JPA访问MySQL数据库
本文展示如何通过JPA访问MySQL数据库. JPA全称Java Persistence API,即Java持久化API,它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据 ...
- springdata和mysql_Spring Boot使用Spring Data JPA访问MySQL数据库
它使用Spring Data JPA来访问数据库,但这只是众多可能选择中的一种(例如,您可以使用普通的Spring JDBC). mysql建立数据库,添加用户,并且授权 mysql> crea ...
- 使用php从网络访问mysql数据库,使用PHP从web访问mysql数据库
一. web数据库构架的工作原理 1. 用户由浏览器发出HTTP请求,请求特定的web页面. 2. web服务器接受接收到对特定页面的请求,检索相应文件,并将其传递给php引擎处理. 3. php引擎 ...
- Spring Boot 2.x基础教程:使用Spring Data JPA访问MySQL
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 翟永超 来源 | http://blog.di ...
- Spring使用JDBC访问MySQL数据库
在Java应用程序开发中,使用JDBC访问MySQL数据库是Java开发者常用的技术.在Spring框架中,Spring对JDBC又进行了封装,简化了程序访问数据库的复杂度.本课主要讨论在Spring ...
- Springboot03整合SpringDataJPA访问MySQL数据库
使用SpringBoot访问MySQL数据库,并且结合SpringDataJPA完成CRUD(Create,Read,Update,Delete 结合 Springboot01 中的demo案例 Sp ...
- sql2008能否打开mysql数据库_SQL Server 2008通过LinkServer访问MySQL数据库
(中国软件网讯)怎样让SQL Server 2008数据库可以访问MySQL数据库的数据呢?其实这一实现的过程并不难,可以通过调用MySQL的ODBC驱动,在SQL Server中添加LinkServ ...
- 如何在jsp页面中连接mysql数据库_如何使用JSP访问MySQL数据库
如何使用JSP访问MySQL数据库 更新时间:2006年10月13日 00:00:00 作者: import ="java.util.*" import ="java ...
最新文章
- 科学界最牛的合影在这,能认全的都是大神!
- android闹钟详细设计,基于LabVIEW的闹钟设计 详细文档+程序
- ajax设置自定义请求头信息
- 最强!超越卷积、自注意力机制:强大的神经网络新算子involution
- VMware Workstation 11序列号
- mysql 修改表的编码_Mysql表编码查看修改
- 虚拟机ubuntu与真实机实现实现复制粘贴、传输文件
- 常见电容器图片_电容分类图片-各种电容器图片
- 天线设计相关性能参数
- hibernate使用Query进行查询
- 视频在线发布网站HTML模板分享
- 项目管理/互联网/软件全套文档、产品文档、技术文档、测试文档、运维文档、项目文档
- NRC 0x78 在CAPL中如何打开和关闭
- 『IDEA』IDEA快捷键使用教程
- Internet协议---UDP(一)
- 2月VR大数据:硬件份额变化不大,PS VR2首发游戏超50款
- 接打电话的蓝牙耳机哪个牌子好?接听电话蓝牙耳机推荐
- Ubuntu下Android 4.0源码及内核下载编译注意点
- 已知三角形三个顶点坐标求面积(简单办法)
- 巅峰不止,继续奋斗!城链科技数字峰会于重庆隆重举行
热门文章
- android studio视频路径,Android studio相关设置及实现存在于工程目录中的视频播放...
- Software knowledge Encyclopedia:extjs是一种软件,自动生成行号,支持checkbox全选
- 代发核心期刊骗局_“代发论文”骗局:近2000人被骗 多数不愿报案
- html百度天气查询api,百度提供天气预报查询接口API
- iOS 火星坐标系 与 地球坐标系
- Prometheus(二)基础概念
- 小天才z6官方禁用怎么关闭_我告诉你小天才z6隐藏功能
- 解决微信小程序录制视频存在的问题
- 微软自带输入法输入时英文的间距突然变大
- python 类函数 实例函数,python_30期【实例函数 类里面的函数】