使用开源连接池
jdbc
dbcp
c3p0
druid
加载驱动 Class.forName("com.mysql.jdbc.Driver");或Class.forName("com.mysql.cj.jdbc.Driver");
在spring中可直接在选定的连接池中配置驱动属性,无需手动加载
新的驱动类是' com.mysql.cj.jdbc.Driver', mysql8.0以上版本都是用新驱动,需要在url中加上时区参数 serverTimezone=GMT%2B8 东八区,才不会报错time zone
【注】c3p0连接池中的驱动属性名跟其他连接池不同,属性名是driverClass,配置时要注意
String url="jdbc:mysql://localhost:3306/spring?useSSL=false&serverTimezone=UTC";
MySQL:jdbc:mysql://ip地址:数据库服务器端口号/数据库名?参数=参数值
jdbc:mysql://ip_address:database_port/databaseName?param=paramVal
【注】如果是本地地址且端口号是默认3306(mysql),则可忽略不写
【注】多个url参数配置在xml中:要用 & 来分隔开来
e.g jdbc:mysql:///spring?characterEncoding=utf-8&serverTimezone=GMT%2B8
选好连接池后,还要配置jdbc模板
通过源码知道JdbcTemplate中是通过 结构化参数public JdbcTemplate(DataSource dataSource) 或 其父类的 setDataSource(dataSource) 方法 插入数据源的,所以在spring配置中就可以通过 构造方法属性注入
合并
log4j 测试
spring单元测试
import javax.annotation.Resource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class SpringJdbcTest {
@Resource(name="jdbcTemplate")
private JdbcTemplate jdbcTemplate;
@Test
public void test() {
this.jdbcTemplate.update("insert into account values(null,?,?)", "druid1",2000d);
}
}
【注】上面的测试用例用到了spring-test-x.x.x.jar,如不用这个jar包,可通过下面测试用例
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
public class SpringJdbcTest {
@Test
public void test1() {
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
JdbcTemplate jdbcTemplete = (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
jdbcTemplete.update("insert into account values(null,?,?)", "it",100d);
}
}
使用属性文件配置数据库连接信息
【方法一】通过
在项目src源文件夹下配置jdbc.properties文件
driverClassName=com.mysql.cj.jdbc.Driver url=jdbc:mysql:///spring?characterEncoding=utf-8&serverTimezone=GMT%2B8 username=root password=root
再在applicationContext.xml中配置
【方法二】通过context标签
要先在applicationContext.xml的beans标签中添加context约束,就可使用context标签
xsi:schemaLocation=" http://www.springframework.org/schema/context 在项目src源文件夹下配置jdbc2.properties文件 【注】 用context标签读取properties文件,取出的数据key值 不能和 属性注入的name值一样,所以在jdbc2.properties中添加了前缀
http://www.springframework.org/schema/context/spring-context.xsd">
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql:///spring?characterEncoding=utf-8&serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=root



