Spring Boot:在Spring Boot中使用Mysql和JPA

本文向你展示如何在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/testspring.datasource.username = rootspring.datasource.password = rootspring.datasource.driverClassName = com.mysql.jdbc.Driver# Specify the DBMSspring.jpa.database = MYSQL# Show or not log for each sql queryspring.jpa.show-sql = true# Hibernate ddl auto (create, create-drop, update)spring.jpa.hibernate.ddl-auto = update# Naming strategyspring.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方法的命名还可以实现新的方法)

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

5.测试的控制器UserController

新建一个查询控制器UserController

 1 @Controller
 2 public class UserController {
 3
 4
 5       @Autowired
 6       UserDao userDao2;
 7
 8
 9     @RequestMapping("/get-by-email")
10     @ResponseBody
11     public String getByEmail(String email) {
12       String userId;
13       User user = userDao2.findByEmail(email);
14       if (user != null) {
15         userId = String.valueOf(user.getId());
16         return "The user id is: " + userId;
17       }
18       return "user " + email + " is not exist.";
19     }
20   }

你可以使用浏览器访问url http://127.0.0.1:8080/[email protected]

,可以获得用户的Id(你可以先在Mysql数据库中新增一条记录)。

时间: 2024-10-08 15:53:12

Spring Boot:在Spring Boot中使用Mysql和JPA的相关文章

【Spring boot】第一个项目 Springboot + mysql + hibernate

今天公司要做一个小项目,好久没碰项目了(刷题好累...),听说spring boot很火,决定试一试.暂时就从mysql里面读数据好了,使用hiberante. 1.获取jar包. 从http://start.spring.io/获取,当然对于使用eclipse(离不开...)的同学,有STS插件支持,关于插件用法自行百度,很简单.关键的是选择要支持的特性.这里是读数据,我记得只选择了web,jpa和mysql三个标签. 2.导入工程. 新建实体类: [html] view plain copy

Spring Boot入门(2)使用MySQL数据库

介绍 ??本文将介绍如何在Spring项目中连接.处理MySQL数据库. ??该项目使用Spring Data JPA和Hibernate来连接.处理MySQL数据库,当然,这仅仅是其中一种方式,你也可以使用Spring JDBC或者MyBatis. ??Spring Data JPA是Spring Data的一个子项目,主要用于简化数据访问层的实现,使用Spring Data JPA可以轻松实现增删改查.分页.排序等.Spring Data拥有很多子项目,除了Spring Data Jpa外,

【spring Boot】Spring中@Controller和@RestController之间的区别

spring Boot入手的第一天,看到例子中的@RestController ............. 相同点:都是用来表示Spring某个类的是否可以接收HTTP请求 不同点:@Controller标识一个Spring类是Spring MVC controller处理器 @RestController:  a convenience annotation that does nothing more than adding the@Controller and @ResponseBody 

漫谈Spring Security 在Spring Boot 2.x endpoints中的应用(一)

Spring Boot 2.x极大简化了默认的安全配置,并不是说有很多安全相关的配置,现在你只需要提供一个WebSecurityConfigurerAdapter继承类这样一个简单的操作,Spring Boot就可以规避很多安全问题. Actuator 不再有各自单独的安全配置(management.security.*配置已被取消),每个endpoint的sensitive 标志也会被取消,这样使得安全配置更加明确了. 比如说:你有如下配置 endpoints: info: sensitive

spring boot 整合spring security中spring security版本升级的遇到的坑

在spring security3.x的版本中 hasAnyRole这个方法不会对我们需要认证的身份前面加个前缀ROLE_,在3.x版本hasRole的源码如下 public final boolean hasAnyRole(String... roles) { Set<String> roleSet = getAuthoritySet(); for (String role : roles) { if (roleSet.contains(role)) { return true; } } r

漫谈spring cloud 与 spring boot 基础架构

详情请交流  QQ  709639943 01.漫谈spring cloud 与 spring boot 基础架构 02.漫谈spring cloud分布式服务架构 03.Node.js入门到企业Web开发中的应用 04.精通高级RxJava 2响应式编程思想 05.Java秒杀系统方案优化 高性能高并发实战 06.Java深入微服务原理改造房产销售平台 07.快速上手Linux 玩转典型应用 08.快速上手Ionic3 多平台开发企业级问答社区 09.Java Spring Security开

Spring Boot整合Spring MVC、Spring、Spring Data JPA(Hibernate)

一句话总结:Spring Boot不是新的功能框架,而是为了简化如SSH.SSM等等多个框架的搭建.整合及配置.使用Spring Boot 10分钟搭建起Spring MVC.Spring.Spring Data JPA(Hibernate)基础后台架构.基本零配置,全注解. 步骤一: 使用Spring Boot提供的网站生成maven项目及基础依赖.打开https://start.spring.io/网站,右侧输入想要的特性依赖.输入Web提供整合Spring MVC,输入JPA提供整合Spr

java电子商务系统源码 Spring MVC+mybatis+spring cloud+spring boot+spring security

鸿鹄云商大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台. 分布式.微服务.云架构电子商务平台 java b2b2c o2o 技术解决方案 开发语言: java.j2ee 数据库:mysql JDK支持版本: JDK1.6.JDK1.7.JDK1.8版本 通用框架:maven+springmvc+mybatis+spring cloud+spring boot+redis 核心技术:分布式.云服务.微

Spring MVC+mybatis+spring cloud+spring boot+spring

分布式.微服务.云架构电子商务平台 java b2b2c o2o 技术解决方案 开发语言: java.j2ee 数据库:mysql JDK支持版本: JDK1.6.JDK1.7.JDK1.8版本 通用框架:maven+springmvc+mybatis+spring cloud+spring boot+redis 核心技术:分布式.云服务.微服务.服务编排 核心架构: 使用Spring Cloud分布式微服务云架构进行服务化开发,所有模块功能完全解耦,提供服务发现.注册.配置中心.消息总线.负载