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

來源:互聯網
上載者:User

標籤:orm   data   strip   local   應用   建立   int   driver   com   

本文向你展示如何在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

 1 @Controller 2 public class UserController { 3      4      5       @Autowired 6       UserDao userDao2; 7        8        9     @RequestMapping("/get-by-email")10     @ResponseBody11     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資料庫中新增一條記錄)。

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.