layout:
title: 11-SpringBoot-JDBC
date: 2017-02-11
updated: 2017-02-11
tags:
categories: SpringBoot实战与原理分析
permalink:
thumbnail:
toc: true
comment: true
notag: false
top: false
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot
spring.datasource.username=root
spring.datasource.password=xiaojie1996
package com.clsaa.edu.springboot;
import org.apache.tomcat.jdbc.pool.DataSource;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import java.sql.Connection;
import java.sql.SQLException;
@SpringBootApplication
public class App {
public static void main(String[] args) throws SQLException {
ConfigurableApplicationContext context = SpringApplication.run(App.class,args);
DataSource dataSource = context.getBean(DataSource.class);
Connection connection = dataSource.getConnection();
System.out.println(connection.getCatalog());
connection.close();
}
}
public void addProduct(String name){
String sql = "insert into product (pname)values('"+name+"')";
jdbcTemplate.execute(sql);
}
@Configuration
@Conditional(PooledDataSourceCondition.class)
@ConditionalOnMissingBean({ DataSource.class, XADataSource.class })
@Import({ DataSourceConfiguration.Tomcat.class, DataSourceConfiguration.Hikari.class,
DataSourceConfiguration.Dbcp.class, DataSourceConfiguration.Dbcp2.class,
DataSourceConfiguration.Generic.class })
protected static class PooledDataSourceConfiguration {
}
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
package com.clsaa.edu.springboot;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.core.env.Environment;
import javax.sql.DataSource;
/**
* Created by Egg on 2017/2/26.
*/
@SpringBootConfiguration
public class DBConfiguration {
@Autowired
private Environment environment;
public DataSource createDataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setUrl(environment.getProperty("spring.datasource.url"));
druidDataSource.setUsername(environment.getProperty("spring.datasource.username"));
druidDataSource.setPassword(environment.getProperty("spring.datasource.password"));
druidDataSource.setDriverClassName(environment.getProperty("spring.datasource.driverClassName"));
return druidDataSource;
}
}
package com.clsaa.edu.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
@SpringBootApplication
@EnableTransactionManagement
public class App {
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext context = SpringApplication.run(App.class,args);
context.getBean(ProductDao.class).addProductBatch("TV","MP4");
System.out.println(context.getBean(DataSource.class));
}
}
@Transactional
public void addProductBatch(String ... names) throws Exception {
for (String name : names){
String sql = "insert into product (pname)values('"+name+"')";
jdbcTemplate.execute(sql);
throw new RuntimeException();
}
}