详解在Spring Boot中使用Mysql和JPA

发布时间 - 2026-01-11 00:42:40    点击率:

本文向你展示如何在Spring Boot的Web应用中使用Mysq数据库,也充分展示Spring Boot的优势(尽可能少的代码和配置)。数据访问层我们将使用Spring Data JPA和Hibernate(JPA的实现之一)。

1.Maven pom.xml文件

在你的项目中增加如下依赖文件

<dependencies>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
 </dependency>
 <dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
 </dependency>
</dependencies>

2.属性配置文件application.properties

在src/main/resources/application.properties中设置数据源和jpa配置。

spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy

# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

全部的配置都在如上的文件中了,不需要另外的XML配置和Java配置。

上文中的数据库配置,你需要换成你的数据库的地址和用户名密码。

hibernate的ddl-auto=update配置表名,数据库的表和列会自动创建(根据Java实体的熟悉), 这里 可以看到更多得hibernate配置。

3.User实体

创建一个User实体,User包含三个属性id,email和name。User实体和Mysql数据库的users表相对应。

@Entity
@Table(name = "users")
public class User {
 // ==============
 // PRIVATE FIELDS
 // ==============
 // An autogenerated id (unique for each user in the db)
 @Id
 @GeneratedValue(strategy = GenerationType.AUTO)
 private long id;
 // The user email
 @NotNull
 private String email;
 // The user name
 @NotNull
 private String name;
 // ==============
 // PUBLIC METHODS
 // ==============
 public User() { }
 public User(long id) {
  this.id = id;
 }
 // Getter and setter methods
 // ...
} // class User

4.User实体的数据访问层UserDao

本例中UserDao非常简单,只需要继承CrudRespositroy即可,CrudRespositroy已经实现了save,delete,deleteAll,findOne和findAll.(比较神奇的时这些方法其实CrudRespositroy中其实并没有实现,并且通过对dao方法的命名还可以实现新的方法)

@Transactional
public interface UserDao extends CrudRepository<User, Long> {
 public User findByEmail(String email);
} 

5.测试的控制器UserController

新建一个查询控制器UserController

@Controller
public class UserController {
  @RequestMapping("/get-by-email")
  @ResponseBody
  public String getByEmail(String email) {
   String userId;
   User user = userDao.findByEmail(email);
   if (user != null) {
    userId = String.valueOf(user.getId());
    return "The user id is: " + userId;
   }
   return "user " + email + " is not exist.";
  }
 }

你可以使用浏览器访问url http://127.0.0.1:8080/get-by-email?email=qiyadeng@gmail.com,可以获得用户的Id(你可以先在Mysql数据库中新增一条记录)。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# springboot  # mysql  # jpa  # spring  # boot  # 使用jpa  # boot使用mysql  # Spring Boot Mysql 数据库操作示例  # Spring Boot如何解决Mysql断连问题  # Spring Boot 添加MySQL数据库及JPA实例  # Spring Boot中使用jdbctemplate 操作MYSQL数据库实例  # SpringBoot连接MYSQL数据库并使用JPA进行操作  # Spring Boot JPA访问Mysql示例  # SpringBoot用JdbcTemplates访问Mysql实例代码  # SpringBoot入门系列之JPA mysql  # Spring boot 使用mysql实例详解  # Spring Boot高级教程之Spring Boot连接MySql数据库  # 你可以  # 还可以  # 都在  # 不需要  # 可以看到  # 中了  # 只需要  # 向你  # 可以获得  # 先在  # 数据库中  # 创建一个  # 配置文件  # 相对应  # 多得  # 大家多多  # 新建一个  # 本例  # 实现了  # 如何在 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站制作免费,什么网站能看正片电影?  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  Laravel如何为API生成Swagger或OpenAPI文档  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  Python数据仓库与ETL构建实战_Airflow调度流程详解  网页设计与网站制作内容,怎样注册网站?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  JavaScript如何实现继承_有哪些常用方法  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  高防服务器:AI智能防御DDoS攻击与数据安全保障  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  如何快速搭建高效香港服务器网站?  详解jQuery中基本的动画方法  Android滚轮选择时间控件使用详解  jquery插件bootstrapValidator表单验证详解  如何在万网自助建站中设置域名及备案?  bootstrap日历插件datetimepicker使用方法  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  Laravel如何实现API资源集合?(Resource Collection教程)  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何快速生成凡客建站的专业级图册?  Laravel怎么调用外部API_Laravel Http Client客户端使用  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  如何挑选高效建站主机与优质域名?  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  制作公司内部网站有哪些,内网如何建网站?  Laravel如何使用Gate和Policy进行授权?(权限控制)  油猴 教程,油猴搜脚本为什么会网页无法显示?  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  简单实现Android验证码  如何在万网利用已有域名快速建站?  如何在景安服务器上快速搭建个人网站?  Linux后台任务运行方法_nohup与&使用技巧【技巧】  如何快速搭建自助建站会员专属系统?  如何用景安虚拟主机手机版绑定域名建站?  php json中文编码为null的解决办法  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Laravel Session怎么存储_Laravel Session驱动配置详解  如何快速搭建高效WAP手机网站吸引移动用户?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  Linux系统运维自动化项目教程_Ansible批量管理实战  EditPlus中的正则表达式 实战(4)