本文向你展示如何在Spring Boot的Web應用中使用Mysq數據庫,也充分展示Spring Boot的優勢(盡可能少的代碼和配置)。數據訪問層我們將使用Spring Data JPA和Hibernate(JPA的實現之一)。
1.Maven pom.xml文件
在你的項目中增加如下依賴文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
< 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配置。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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表相對應。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
@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方法的命名還可以實現新的方法)
1
2
3
4
|
@Transactional public interface UserDao extends CrudRepository<User, Long> { public User findByEmail(String email); } |
5.測試的控制器UserController
新建一個查詢控制器UserController
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
@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數據庫中新增一條記錄)。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:http://www.tuicool.com/articles/zEz2QrY