SpringCloud(第 039 篇)連結Mysql資料庫,通過JpaRepository編寫資料庫訪問
SpringCloud(第 039 篇)連結Mysql資料庫,通過JpaRepository編寫資料庫訪問
一、大致介紹
1、本章節開始講解一下訪問資料庫的操作,不過其實這還不算是SpringCloud的範疇,應該說是SpringBoot的操作範疇,這些就先拋開了,我們就還是講解資料庫的操作;
2、JpaRepository運算元據庫訪問,其實有許多同事都建議最好不要採用,因為我們平常的業務處理中並沒有用到Jpa的額外的方法;
3、而且我也找了一篇文章提到了關於對JpaRepository的一些看法,連結地址為 http://jtuts.com/2014/08/26/difference-between-crudrepository-and-jparepository-in-spring-data-jpa;
4、而本章節我們僅僅只是講解了一下如何整合操作Mysql資料庫,採用JpaRepository來訪問而已,不涉及什麼深層次的業務;
5、另外配置檔案中的mysql資料庫配置,那麼就得大家自己用自己的了哈;
二、實現步驟
2.1 新增 maven 引用包
<?xml version="1.0" encoding="UTF-8"?>
<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>
<artifactId>springms-provider-user-mysql-jparepository</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>com.springms.cloud</groupId>
<artifactId>springms-spring-cloud</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<dependencies>
<!-- 訪問資料庫模組 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- web模組 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MYSQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
</project>
2.2 新增應用配置檔案(springms-provider-user-mysql-jparepository\src\main\resources\application.yml)
server:
port: 8310
spring:
application:
name: springms-provider-user-mysql-jparepository #全部小寫
#####################################################################################################
# mysql 屬性配置
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://ip:3306/hmilyylimh
username: username
password: password
jpa:
hibernate:
#ddl-auto: create #ddl-auto:設為create表示每次都重新建表
ddl-auto: update #ddl-auto:設為update表示每次都不會重新建表
show-sql: true
#####################################################################################################
#####################################################################################################
# 列印日誌
logging:
level:
root: INFO
org.hibernate: INFO
org.hibernate.type.descriptor.sql.BasicBinder: TRACE
org.hibernate.type.descriptor.sql.BasicExtractor: TRACE
com.springms: DEBUG
#####################################################################################################
2.3 新增訪問底層資料模型的DAO介面(springms-provider-user-mysql-jparepository/src/main/java/com/springms/cloud/repository/UserRepository.java)
package com.springms.cloud.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.springms.cloud.entity.User;
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
2.4 新增實體使用者類User(springms-provider-user-mysql-jparepository/src/main/java/com/springms/cloud/entity/User.java)
package com.springms.cloud.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column
private String username;
@Column
private String name;
@Column
private Integer age;
@Column
private String balance;
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return this.age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getBalance() {
return this.balance;
}
public void setBalance(String balance) {
this.balance = balance;
}
}
2.5 新增使用者Web訪問層Controller(springms-provider-user-mysql-jparepository/src/main/java/com/springms/cloud/controller/ProviderUserMysqlController.java)
package com.springms.cloud.controller;
import com.springms.cloud.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.springms.cloud.entity.User;
import java.util.List;
/**
* 使用者微服務Controller。
*
* @author hmilyylimh
*
* @version 0.0.1
*
* @date 17/10/18
*
*/
@RestController
public class ProviderUserMysqlController {
@Autowired
private UserRepository userRepository;
@GetMapping("/simple/{id}")
public User findUserById(@PathVariable Long id) {
return this.userRepository.findOne(id);
}
@GetMapping("/simple/list")
public List<User> findUserList() {
return this.userRepository.findAll();
}
/**
* 新增一個student,使用postMapping接收post請求
*
* http://localhost:8310/simple/addUser?username=user11&age=11&balance=11
*
* @return
*/
@PostMapping("/simple/addUser")
public User addUser(@RequestParam(value = "username", required=false) String username, @RequestParam(value = "age", required=false) Integer age, @RequestParam(value = "balance", required=false) String balance){
User user=new User();
user.setUsername(username);
user.setName(username);
user.setAge(age);
user.setBalance(balance);
return userRepository.save(user);
}
}
2.6 新增使用者微服務啟動類(springms-provider-user-mysql-jparepository/src/main/java/com/springms/cloud/MsProviderUserMysqlApplication.java)
package com.springms.cloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 連結Mysql資料庫,通過JpaRepository編寫資料庫訪問。
*
* @author hmilyylimh
*
* @version 0.0.1
*
* @date 17/10/18
*
*/
@SpringBootApplication
public class MsProviderUserMysqlApplication {
public static void main(String[] args) {
SpringApplication.run(MsProviderUserMysqlApplication.class, args);
System.out.println("【【【【【【 連結Mysql資料庫微服務 】】】】】】已啟動.");
}
}
三、測試
/****************************************************************************************
一、連結Mysql資料庫,通過JpaRepository編寫資料庫訪問:
1、啟動 springms-provider-user-mysql-jparepository 模組服務,啟動1個埠;
2、在瀏覽器輸入地址 http://localhost:8310/simple/10 可以看到使用者ID=10的資訊成功的被列印出來;
3、使用 IDEA 自帶工具 Test Restful WebService 傳送 HTTP POST 請求,並新增 username、age、balance三個引數,然後執行請求,並去 mysql 資料庫檢視資料是否存在,正常情況下 mysql 資料庫剛剛插入的資料成功了:
4、使用 REST Client 執行 "/simple/list" 介面,也正常將 mysql 資料庫中所有的使用者資訊列印出來了;
****************************************************************************************/
四、下載地址
https://gitee.com/ylimhhmily/SpringCloudTutorial.git
SpringCloudTutorial交流QQ群: 235322432
SpringCloudTutorial交流微信群: 微信溝通群二維碼圖片連結
歡迎關注,您的肯定是對我最大的支援!!!
相關文章
- java通過jdbc連結資料庫JavaJDBC資料庫
- 通過cmd命令列連線mysql資料庫命令列MySql資料庫
- ubuntu下python通過sqlalchemy庫訪問oracle資料庫UbuntuPythonSQLOracle資料庫
- jmeter連結mysql資料庫JMeterMySql資料庫
- mysql--通過cmd連線mysql,並建立資料庫MySql資料庫
- 外網訪問MySQL資料庫MySql資料庫
- C#訪問MySQL資料庫C#MySql資料庫
- Mysql資料庫是如何通過索引定位資料MySql資料庫索引
- Java的JDBC通過SSH Tunnel連線MySQL資料庫JavaJDBCMySql資料庫
- 用perl訪問mysql資料庫(轉)MySql資料庫
- MySql資料庫C++訪問(轉)MySql資料庫C++
- 透過socket訪問資料庫(轉)資料庫
- #第9篇分享:python資料儲存-MySQL資料庫PythonMySql資料庫
- 【磐維資料庫】透過python訪問磐維資料庫資料庫Python
- [資料庫]【MySQL】MySQL資料庫規範總結資料庫MySql
- SparkR連結mysql資料庫(踩坑)SparkMySql資料庫
- JDBC資料庫訪問JDBC資料庫
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- 通過資料庫檔案還原資料庫資料庫
- 《MySQL 入門教程》第 03 篇 管理資料庫MySql資料庫
- PHP資料寫入MySql資料庫PHPMySql資料庫
- mysql資料庫-資料結構MySql資料庫資料結構
- 連線mysql資料庫MySql資料庫
- 連線資料庫-mysql資料庫MySql
- 通過binlog恢復mysql資料庫MySql資料庫
- 本機資料庫資料庫鏈無法訪問遠端資料庫資料庫
- 如何在資料訪問層中引用資料庫連線池?資料庫
- Oracle資料庫連結(DBLink)中如何訪問包含BLOB欄位的資料Oracle資料庫
- spring mvc 的jpa JpaRepository資料層訪問SpringMVC
- php連結資料庫PHP資料庫
- python連結mysql資料庫詳解PythonMySql資料庫
- 1.3.3. 通過SQL*Plus 連線資料庫SQL資料庫
- Qt中通過ODBC連線MSSQL資料庫QTSQL資料庫
- Mysql資料庫的遠端訪問設定MySql資料庫
- Oracle透明閘道器訪問MySQL資料庫OracleMySql資料庫
- Python學習之旅:訪問MySQL資料庫PythonMySql資料庫
- Oracle資料庫訪問控制Oracle資料庫
- 異構資料庫訪問資料庫