通过Spring Boot使用MySQL JDBC驱动程序
在本文中,我將向您展示如何將MySQL數據庫與Spring Boot應用程序連接。
本文使用的工具包括:
- Spring Boot 1.5.6版本
- MySQL 5.7.X
- 馬文
- Java 8
- Spring Data JPA
1 –項目結構
項目結構是典型的Maven結構。
2 –項目依賴性
請注意,父母需要申報。 如果您使用的是Spring Tool Suite,則可以單擊新的“ Spring Starter Project”,它將為您填充。
pom.xml
<?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><groupId>com.michaelcgood</groupId><artifactId>mysql-jdbc</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>mysql-jdbc-driver</name><description>mysql jdbc driver example</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>3 –模型
對于此示例應用程序,我們的應用程序將“跟蹤”網絡中系統的最新安全審核。 由于此示例應用程序旨在簡化,因此模型的字段將最少。
請注意,Java庫中有一個內置的System類。 因此,我將避免使用System.java作為實際應用程序的類名。
System.java
package com.michaelcgood.model;import java.util.Date;import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id;@Entity public class System {private String name;private Date lastaudit;public Date getLastaudit() {return lastaudit;}public void setLastaudit(Date lastaudit) {this.lastaudit = lastaudit;}@Id@GeneratedValue(strategy = GenerationType.AUTO)@Column(name="id")private long id;public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String toString(){return id+" | " + name+ " | "+ lastaudit;}}4 –儲存庫
這是一個簡單的CrudRepository,它是允許我們執行CRUD(創建,讀取,更新,刪除)操作的接口。
SystemRepository.java
package com.michaelcgood.dao;import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; import com.michaelcgood.model.System;@Repository public interface SystemRepository extends CrudRepository<System,Long> {}5 –數據庫初始化
Spring Boot默認情況下啟用dataSource初始化程序,并從類路徑的根目錄加載SQL腳本(schema.sql和data.sql)。
5.1
在這里,我們創建應用程序將用于表架構的SQL文件。
模式.sql
DROP TABLE IF EXISTS system; CREATE TABLE system (id INT NOT NULL AUTO_INCREMENT,name VARCHAR(100) NOT NULL,lastaudit DATE NOT NULL,PRIMARY KEY (id));5.2
我們將示例值插入數據庫。
資料庫
INSERT INTO system(name,lastaudit)VALUES('Windows Server 2012 R2 ','2017-08-11'); INSERT INTO system(name,lastaudit)VALUES('RHEL 7','2017-07-21'); INSERT INTO system(name,lastaudit)VALUES('Solaris 11','2017-08-13');5.3
此XML文件用于配置我們的日志記錄。
logback.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration><statusListener class="ch.qos.logback.core.status.NopStatusListener" /><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><layout class="ch.qos.logback.classic.PatternLayout"><Pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</Pattern></layout></appender><logger name="org.springframework.jdbc" level="error" additivity="false"><appender-ref ref="STDOUT"/></logger><logger name="com.michaelcgood" level="error" additivity="false"><appender-ref ref="STDOUT"/></logger><root level="error"><appender-ref ref="STDOUT"/></root></configuration>6 –配置
我們配置數據源和JPA設置。
application.properties
#==== connect to mysql ======# spring.jpa.hibernate.ddl-auto=update spring.datasource.url=jdbc:mysql://localhost:3306/mysqltutorial?useSSL=false spring.datasource.username=root spring.datasource.password= spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect7 – @SpringBootApplication
實現CommandLineRunner是為了執行此示例的命令行參數。
package com.michaelcgood.app;import javax.sql.DataSource;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.data.jpa.repository.config.EnableJpaRepositories;import com.michaelcgood.dao.SystemRepository;@SpringBootApplication @EnableJpaRepositories("com.michaelcgood.dao") @EntityScan("com.michaelcgood.model") public class MysqlJdbcDriverApplication implements CommandLineRunner {@AutowiredDataSource dataSource;@AutowiredSystemRepository systemRepository;public static void main(String[] args) {SpringApplication.run(MysqlJdbcDriverApplication.class, args);}@Overridepublic void run(String... args) throws Exception {System.out.println("Our DataSource is = " + dataSource);Iterable<com.michaelcgood.model.System> systemlist = systemRepository.findAll();for(com.michaelcgood.model.System systemmodel:systemlist){System.out.println("Here is a system: " + systemmodel.toString());}}}8 –演示
. ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/ [32m :: Spring Boot :: [39m [2m (v1.5.6.RELEASE)[0;39mOur DataSource is = org.apache.tomcat.jdbc.pool.DataSource@40f70521{ConnectionPool[defaultAutoCommit=null; defaultReadOnly=null; defaultTransactionIsolation=-1; defaultCatalog=null; driverClassName=com.mysql.jdbc.Driver; maxActive=100; maxIdle=100; minIdle=10; initialSize=10; maxWait=30000; testOnBorrow=true; testOnReturn=false; timeBetweenEvictionRunsMillis=5000; numTestsPerEvictionRun=0; minEvictableIdleTimeMillis=60000; testWhileIdle=false; testOnConnect=false; password=********; url=jdbc:mysql://localhost:3306/mysqltutorial?useSSL=false; username=root; validationQuery=SELECT 1; validationQueryTimeout=-1; validatorClassName=null; validationInterval=3000; accessToUnderlyingConnectionAllowed=true; removeAbandoned=false; removeAbandonedTimeout=60; logAbandoned=false; connectionProperties=null; initSQL=null; jdbcInterceptors=null; jmxEnabled=true; fairQueue=true; useEquals=true; abandonWhenPercentageFull=0; maxAge=0; useLock=false; dataSource=null; dataSourceJNDI=null; suspectTimeout=0; alternateUsernameAllowed=false; commitOnReturn=false; rollbackOnReturn=false; useDisposableConnectionFacade=true; logValidationErrors=false; propagateInterruptState=false; ignoreExceptionOnPreLoad=false; useStatementFacade=true; } Here is a system: 1 | Windows Server 2012 R2 | 2017-08-11 00:00:00.0 Here is a system: 2 | RHEL 7 | 2017-07-21 00:00:00.0 Here is a system: 3 | Solaris 11 | 2017-08-13 00:00:00.0完整的代碼在 Github上
翻譯自: https://www.javacodegeeks.com/2017/10/using-mysql-jdbc-driver-spring-boot.html
總結
以上是生活随笔為你收集整理的通过Spring Boot使用MySQL JDBC驱动程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三星5830报价(三星s5660手机价格
- 下一篇: qq飞车电脑版虎牙直播间(qq飞车电脑版