详解在Spring Boot中使用Mysql和JPA

网友投稿 227 2023-05-23


详解在Spring Boot中使用Mysql和JPA

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

1.Maven pom.xml文件

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

&lhttp://t;groupId>org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-data-jpa

mysql

mysql-connector-java

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;

// ===IVJbg===========

// 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 {

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数据库中新增一条记录)。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:老生常谈java中的数组初始化
下一篇:详解利用Spring加载Properties配置文件
相关文章

 发表评论

暂时没有评论,来抢沙发吧~