SpringBoot + JPA 連接MySQL完整實例(一)


開發工具

1、Eclipse

2、Maven

3、Spring Boot

首先,Eclipse中配置好maven,具體請百度

 

工程結構:

 

實現步驟:

1、Eclipse中新建一個maven project

 

(1)src/main/java文件夾是默認的源代碼文件,寫業務邏輯代碼

(2)src/main/resources是默認約定的靜態資源目錄

手動添加src/main/resources文件夾(注意文件是source folder類型),它里面是連接數據庫的配置文件

 

2、就像第一步那樣,新建一個maven project,這次基於webapp的,如下圖,一直下一步

復制他的src/main/webapp文件夾和所有內容,拷貝到第一個工程下的src/main/下(非source folder文件類型)

 

3、pom.xml全部內容:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.zit</groupId>
  <artifactId>SpringBoot</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>


  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.BUILD-SNAPSHOT</version>
</parent>
<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>
</dependencies><repositories>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/libs-snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
</project>

可以看到,若要使用Spring Data JPA,直接dependency它即可,它會自動下載依賴jar包,非常方便

 

4、不要忘了,連接MySQL需要MySQL的連接jar包

mysql-connector-java-*-bin.jar

在工程下新建一個文件夾lib,存放該jar包,並add to build path

 

5、數據表

 

 

 

6、完整代碼

(1)model類,對應數據庫的表和字段

package com.zit.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
@Entity
@Table(name="logintable")
public class UserLogin {    
    @Id
    @NotNull
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @NotNull
    @Column(name="login_name")
    private  String loginName;

    @NotNull
    @Column(name="login_password")
    private  String loginPassword;
    
    @Column(name="address")
    private  String address;

    public UserLogin(){}

    public UserLogin(String a, String b){
        this.loginName = a;
        this.loginPassword = b;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getLoginName() {
        return loginName;
    }

    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }

    public String getLoginPassword() {
        return loginPassword;
    }

    public void setLoginPassword(String loginPassword) {
        this.loginPassword = loginPassword;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
    
    
    
}

 

(2)Dao層類

package com.zit.dao;
import javax.transaction.Transactional;
import org.springframework.data.repository.CrudRepository;

import com.zit.model.UserLogin;


@Transactional
public interface UserLoginDao extends CrudRepository<UserLogin, Long>{
     UserLogin findByloginName(String loginName);
}

JPA的簡便之處:簡單的sql語句,直接通過約定的函數名稱即可,不需要寫sql語句

 

(3)Controller

package com.zit;

import javax.annotation.Resource;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.zit.dao.UserLoginDao;
import com.zit.model.UserLogin;

@Controller
@SpringBootApplication
@EnableAutoConfiguration
public class UserLoginController {

    @Resource
    UserLoginDao userLoginDAO;

    @RequestMapping("/userLogin")
    @ResponseBody
    public String login(String userName, String password){
        UserLogin ul = userLoginDAO.findByloginName(userName);
        
        if(ul==null)
        {
            return "Login Error";
        }

        else
        {
            return ul.getLoginName()+"----"+ul.getLoginPassword() + "----" +ul.getAddress();
        }

    }
    
    public static void main(String[] args) {
        SpringApplication.run(UserLoginController.class, args);
    }
}

 

(4)application.properties

#DB Configuration:
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/test?characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = 

#JPA Configuration:  
spring.jpa.database=MySQL
spring.jpa.show-sql=true  
spring.jpa.generate-ddl=true  
spring.jpa.hibernate.ddl-auto=update  
#spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect  
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy  
#spring.jpa.database=org.hibernate.dialect.MySQL5InnoDBDialect 
#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MYSQL5Dialect

 

 

最后,在Controller類上右鍵,run as ———Java Application

 

瀏覽器輸入地址:http://localhost:8080/userLogin?userName=li&password=1234567

頁面顯示內容

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM