在maven的pom文件中:
<?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">
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.0.RELEASE</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.jiaobuchong</groupId>
<artifactId>spring-boot-jdbc</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- 加上这个表示这个应用是一个console的应用 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>
配置mysql, application.yml:
spring:
datasource:
url: jdbc:mysql://localhost/guestbook
username: root
password: jiaobuchong
driverClassName: com.mysql.jdbc.Driver
启动应用,Application.java:
package com.jiaobuchong;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.jdbc.core.JdbcTemplate;
/**
* Created by jiaobuchong on 1/9/16.
*/
@SpringBootApplication
public class Application implements CommandLineRunner {
private static final Logger logger = LoggerFactory.getLogger(Application.class);
@Autowired //将JdbcTemplate注入进来
JdbcTemplate jdbcTemplate;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... strings) throws Exception{
logger.info("Creating tables");
jdbcTemplate.execute("DROP TABLE IF EXISTS customers");
jdbcTemplate.execute("CREATE TABLE customers(" +
"id INT unsigned auto_increment PRIMARY KEY , firstName CHAR(20), lastName CHAR(20))");
// split up the array of whole names into an array of first/last names
List<Object[]> splitUpNames = Arrays.asList("Jack Chou", "Chrs han", "jiaobuchong chou", "sssb you").stream()
.map(name -> name.split(" "))
.collect(Collectors.toList());
//Use a java8 stream to print out each tuple of the list
splitUpNames.forEach(name -> logger.info(String.format("Inserting customer record for %s %s", name[0], name[1])));
//Uses JdbcTemplate's batchUpdate operation to bulk load data
jdbcTemplate.batchUpdate("INSERT INTO customers(firstName, lastName) VALUES(?, ?)", splitUpNames);
logger.info("Querying for customer records where first_name = 'Jack':");
jdbcTemplate.query(
"SELECT id, firstName, lastName FROM customers WHERE firstName = ?", new Object[] {"Jack"},
(rs, rowNum) -> new Customer(rs.getLong("id"), rs.getString("firstName"), rs.getString("lastName"))
).forEach(customer -> logger.info(customer.toString()));
/*当执行Application.java的main方法时,执行run方法里的内容*/
}
}
next,运行main方法,everything goes well. 运行结果:
/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/bin/java -Didea.launcher.port=7533 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA 15.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/tools.jar:/Users/zhoujie/mycode/spring-demo/spring-boot/spring-boot-jdbc/target/classes:/Users/zhoujie/maven_library/library/org/springframework/boot/spring-boot-starter/1.3.0.RELEASE/spring-boot-starter-1.3.0.RELEASE.jar:/Users/zhoujie/maven_library/library/org/springframework/boot/spring-boot/1.3.0.RELEASE/spring-boot-1.3.0.RELEASE.jar:/Users/zhoujie/maven_library/library/org/springframework/spring-context/4.2.3.RELEASE/spring-context-4.2.3.RELEASE.jar:/Users/zhoujie/maven_library/library/org/springframework/spring-aop/4.2.3.RELEASE/spring-aop-4.2.3.RELEASE.jar:/Users/zhoujie/maven_library/library/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/zhoujie/maven_library/library/org/springframework/spring-expression/4.2.3.RELEASE/spring-expression-4.2.3.RELEASE.jar:/Users/zhoujie/maven_library/library/org/springframework/boot/spring-boot-autoconfigure/1.3.0.RELEASE/spring-boot-autoconfigure-1.3.0.RELEASE.jar:/Users/zhoujie/maven_library/library/org/springframework/boot/spring-boot-starter-logging/1.3.0.RELEASE/spring-boot-starter-logging-1.3.0.RELEASE.jar:/Users/zhoujie/maven_library/library/ch/qos/logback/logback-classic/1.1.3/logback-classic-1.1.3.jar:/Users/zhoujie/maven_library/library/ch/qos/logback/logback-core/1.1.3/logback-core-1.1.3.jar:/Users/zhoujie/maven_library/library/org/slf4j/slf4j-api/1.7.13/slf4j-api-1.7.13.jar:/Users/zhoujie/maven_library/library/org/slf4j/jcl-over-slf4j/1.7.13/jcl-over-slf4j-1.7.13.jar:/Users/zhoujie/maven_library/library/org/slf4j/jul-to-slf4j/1.7.13/jul-to-slf4j-1.7.13.jar:/Users/zhoujie/maven_library/library/org/slf4j/log4j-over-slf4j/1.7.13/log4j-over-slf4j-1.7.13.jar:/Users/zhoujie/maven_library/library/org/springframework/spring-core/4.2.3.RELEASE/spring-core-4.2.3.RELEASE.jar:/Users/zhoujie/maven_library/library/org/yaml/snakeyaml/1.16/snakeyaml-1.16.jar:/Users/zhoujie/maven_library/library/org/springframework/spring-jdbc/4.2.3.RELEASE/spring-jdbc-4.2.3.RELEASE.jar:/Users/zhoujie/maven_library/library/org/springframework/spring-beans/4.2.3.RELEASE/spring-beans-4.2.3.RELEASE.jar:/Users/zhoujie/maven_library/library/org/springframework/spring-tx/4.2.3.RELEASE/spring-tx-4.2.3.RELEASE.jar:/Users/zhoujie/maven_library/library/org/springframework/boot/spring-boot-starter-jdbc/1.3.0.RELEASE/spring-boot-starter-jdbc-1.3.0.RELEASE.jar:/Users/zhoujie/maven_library/library/org/apache/tomcat/tomcat-jdbc/8.0.28/tomcat-jdbc-8.0.28.jar:/Users/zhoujie/maven_library/library/org/apache/tomcat/tomcat-juli/8.0.28/tomcat-juli-8.0.28.jar:/Users/zhoujie/maven_library/library/mysql/mysql-connector-java/5.1.37/mysql-connector-java-5.1.37.jar:/Applications/IntelliJ IDEA 15.app/Contents/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain com.jiaobuchong.Application --spring.output.ansi.enabled=always
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.0.RELEASE)
2016-01-10 11:51:16.356 [main] INFO com.jiaobuchong.Application - Starting Application on zhoujies-MBP.lan with PID 15272 (/Users/zhoujie/mycode/spring-demo/spring-boot/spring-boot-jdbc/target/classes started by zhoujie in /Users/zhoujie/mycode/spring-demo/spring-boot)
2016-01-10 11:51:16.363 [main] INFO com.jiaobuchong.Application - No profiles are active
2016-01-10 11:51:16.470 [main] INFO o.s.c.a.AnnotationConfigApplicationContext - Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@35047d03: startup date [Sun Jan 10 11:51:16 CST 2016]; root of context hierarchy
2016-01-10 11:51:19.282 [main] INFO o.s.jmx.export.annotation.AnnotationMBeanExporter - Registering beans for JMX exposure on startup
2016-01-10 11:51:19.293 [main] INFO com.jiaobuchong.Application - Creating tables
2016-01-10 11:51:19.908 [main] INFO com.jiaobuchong.Application - Inserting customer record for Jack Chou
2016-01-10 11:51:19.908 [main] INFO com.jiaobuchong.Application - Inserting customer record for Chrs han
2016-01-10 11:51:19.908 [main] INFO com.jiaobuchong.Application - Inserting customer record for jiaobuchong chou
2016-01-10 11:51:19.908 [main] INFO com.jiaobuchong.Application - Inserting customer record for sssb you
2016-01-10 11:51:19.959 [main] INFO com.jiaobuchong.Application - Querying for customer records where first_name = 'Jack':
2016-01-10 11:51:19.967 [main] INFO com.jiaobuchong.Application - Customer{id=1, firstName='Jack', lastName='Chou'}
2016-01-10 11:51:19.969 [main] INFO com.jiaobuchong.Application - Started Application in 5.05 seconds (JVM running for 6.095)
2016-01-10 11:51:19.969 [Thread-1] INFO o.s.c.a.AnnotationConfigApplicationContext - Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@35047d03: startup date [Sun Jan 10 11:51:16 CST 2016]; root of context hierarchy
2016-01-10 11:51:19.971 [Thread-1] INFO o.s.jmx.export.annotation.AnnotationMBeanExporter - Unregistering JMX-exposed beans on shutdown
Process finished with exit code 0