Spring Boot入門(2)使用MySQL資料庫

來源:互聯網
上載者:User

標籤:使用   成功   target   web應用   touch   oid   j2ee   gradle   org   

介紹

??本文將介紹如何在Spring項目中串連、處理MySQL資料庫。
??該項目使用Spring Data JPA和Hibernate來串連、處理MySQL資料庫,當然,這僅僅是其中一種方式,你也可以使用Spring JDBC或者MyBatis.
??Spring Data JPA是Spring Data的一個子項目,主要用於簡化資料訪問層的實現,使用Spring Data JPA可以輕鬆實現增刪改查、分頁、排序等。Spring Data擁有很多子項目,除了Spring Data Jpa外,還有如下子項目。

  • Spring Data Commons
  • Spring Data MongoDB
  • Spring Data Redis
  • Spring Data Solr
  • Spring Data Gemfire
  • Spring Data REST
  • Spring Data Neo4j

??Hibernate是一個開放原始碼的對象關係映射架構,它對JDBC進行了非常輕量級的對象封裝,它將POJO與資料庫表建立映射關係,是一個全自動的ORM架構,Hibernate可以自動產生SQL語句,自動執行,使得Java程式員可以隨心所欲的使用對象編程思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的用戶端程式使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成資料持久化的重任。
??本文將介紹如何使用Spring Data JPA和Hibernate來串連、處理MySQL資料庫。

準備

??首先我們需要對MySQL做一些準備處理。我們將要在MySQL中建立db_example資料庫,並建立springuser使用者,擁有對db_example資料庫的所有操作許可權。開啟MySQL , 輸入以下命令:

mysql> create database db_example; -- 建立新資料庫db_examplemysql> create user ‘springuser‘@‘localhost‘ identified by ‘pwd123‘; -- 建立新使用者springuser,密碼為pwd123mysql> grant all on db_example.* to ‘springuser‘@‘localhost‘; -- 給予springuser使用者對db_example資料庫的所有操作許可權
Spring Boot程式Step1. 建立項目spring_mysql, 以及項目布局:
mkdir spring_mysqlcd ./spring_mysqltouch build.gradlemkdir -p src/main/javamkdir -p src/main/resourcesmkdir -p src/test/javamkdir -p src/test/resources
Step2 編寫build.gradle

??build.gradle代碼如下:

buildscript {    repositories {        mavenCentral()    }    dependencies {        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.0.RELEASE")    }}apply plugin: ‘java‘apply plugin: ‘eclipse‘apply plugin: ‘idea‘apply plugin: ‘org.springframework.boot‘apply plugin: ‘io.spring.dependency-management‘bootJar {    baseName = ‘gs-accessing-data-mysql‘    version =  ‘0.1.0‘}repositories {    mavenCentral()}sourceCompatibility = 1.8targetCompatibility = 1.8dependencies {    compile("org.springframework.boot:spring-boot-starter-web")    // JPA Data (We are going to use Repositories, Entities, Hibernate, etc...)    compile ‘org.springframework.boot:spring-boot-starter-data-jpa‘    // Use MySQL Connector-J    compile ‘mysql:mysql-connector-java‘    testCompile(‘org.springframework.boot:spring-boot-starter-test‘)}

在上述Spring Boot項目中,主要使用spring-boot-starter-web ,spring-boot-starter-data-jpa和mysql:mysql-connector-java來實現在Web端操作MySQL .

Step3 配置屬性檔案

??建立src/main/resources/application.properties檔案,配置相關屬性,代碼如下:

spring.jpa.hibernate.ddl-auto=createspring.datasource.url=jdbc:mysql://localhost:3306/db_examplespring.datasource.username=springuserspring.datasource.password=pwd123

在上述代碼中,主要的資料庫操作為建立(create),因為資料庫中實現不存在相應的表格。使用MySQL的localhost伺服器的3306連接埠的db_example資料庫,並設定使用者名稱和密碼。

Step4 編寫Java檔案

??建立src/main/java/hello檔案夾(package),在該檔案夾下建立User.java,Hibernate會將該entity類自動轉化成資料庫中的表格。User.java的完整代碼如下:

package hello;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;@Entity // This tells Hibernate to make a table out of this classpublic class User {    @Id    @GeneratedValue(strategy=GenerationType.AUTO)    private Integer id;    private String name;    private String email;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }}

??在上述檔案夾中建立UserRepository.java,其代碼如下:

package hello;import org.springframework.data.repository.CrudRepository;import hello.User;// This will be AUTO IMPLEMENTED by Spring into a Bean called userRepository// CRUD refers Create, Read, Update, Deletepublic interface UserRepository extends CrudRepository<User, Long> {}

這是repository介面, 它將會被Spring中的bean中自動執行。
??在上述檔案夾中建立MainController.java,代碼如下:

package hello;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import hello.User;import hello.UserRepository;@Controller    // This means that this class is a Controller@RequestMapping(path="/demo") // This means URL‘s start with /demo (after Application path)public class MainController {    @Autowired // This means to get the bean called userRepository               // Which is auto-generated by Spring, we will use it to handle the data    private UserRepository userRepository;    @GetMapping(path="/add") // Map ONLY GET Requests    public @ResponseBody String addNewUser (@RequestParam String name            , @RequestParam String email) {        // @ResponseBody means the returned String is the response, not a view name        // @RequestParam means it is a parameter from the GET or POST request        User n = new User();        n.setName(name);        n.setEmail(email);        userRepository.save(n);        return "Saved";    }    @GetMapping(path="/all")    public @ResponseBody Iterable<User> getAllUsers() {        // This returns a JSON or XML with the users        return userRepository.findAll();    }}

這是Spring應用的新控制器(Controller)。
??在上述檔案夾中建立Application.java,代碼如下:

package hello;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}

這是該Spring Boot項目的主要程式入口。

Step5 建立可執行jar包
cd spring_mysqlgradle build

執行完畢後,會在build/libs檔案夾下產生gs-accessing-data-mysql-0.1.0.jar .

運行及測試

??使用以下命令啟動該Spring Boot項目

java -jar build/libs/gs-accessing-data-mysql-0.1.0.jar

??在瀏覽器端測試,輸入以下網址:

localhost:8080/demo/add?name=Alex&[email protected]localhost:8080/demo/add?name=Jclian&[email protected]localhost:8080/demo/add?name=Bob&[email protected]localhost:8080/demo/add?name=Cook&[email protected]localhost:8080/demo/add?name=Mark&[email protected]

上述程式將會name和email參數的值解析成資料庫中user表中的記錄並儲存,瀏覽器介面如:




在瀏覽器中輸入網址localhost:8080/demo/all,即可剛看我們我們插入到MySQL中的記錄(JSON格式):



最後我們去MySQL中查看資料是否插入成功,結果如所示:


結束語

??本文將介紹如何使用Spring Data JPA和Hibernate來串連、處理MySQL資料庫。
??本次分享到此結束,接下來還會繼續更新Spring Boot方面的內容,歡迎大家交流~~

Spring Boot入門(2)使用MySQL資料庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.