本文已参与「新人创作礼」活动,一起开启掘金创作之路
Spring 是JavaEE开发的一站式框架,有EE开发的每层的解决方案,JDBC模板则是Spring对持久层(DAO层)的解决方案
JDBC:org.springframework.jdbc.core.jdbc.jdbcTemplate
JDBC模板使用入门
1. 引入jar包
包括Spring开发的基本包、数据库驱动包、Spring的JDBC模板的jar包如下
2. 创建数据库和表
create table user(
id int PRIMARY KEY auto_increment,
name VARCHAR(20),
age int)
设置id为自动递增
3. 测试使用JDBC模板
public class testJDBC {
@Test
public void test(){
// 创建连接池
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/Spring");
dataSource.setUsername("root");
dataSource.setPassword("123456");
//创建jdbc模板
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
jdbcTemplate.update("insert into user values(null,?,?)","张三",18);
System.out.println("更新数据库成功");
}
}
运行结果
将连接池和模板交给Spring管理
1. 配置applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--开启IOC注解-->
<context:annotation-config/>
<!--开启AOP注解-->
<aop:aspectj-autoproxy/>
<!--配置文件配置Bean-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!--注入属性-->
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///Spring"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>
2. 使用jdbcTemplate注解插入数据
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class testJDBC {
@Resource
private JdbcTemplate jdbcTemplate;
@Test
public void test(){
//创建jdbc模板
jdbcTemplate.update("insert into user values(null,?,?)","李四",18);
System.out.println("更新数据库成功");
}
运行结果
使用开源连接池
1. DBCP连接池
导入jar包
在application Context.xml中配置DBCP连接池
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--开启IOC注解-->
<context:annotation-config/>
<!--开启AOP注解-->
<aop:aspectj-autoproxy/>
<!--配置文件配置Bean-->
<!--使用DBCP连接池class="org.apache.commons.dbcp.BasicDataSource"-->
<!--使用Druid连接池class="com.alibaba.druid.pool.DruidDataSource"-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<!--注入属性-->
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///Spring"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>
2. Druid连接池
导入jar包
在application Context.xml中配置Druid连接池
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--开启IOC注解-->
<context:annotation-config/>
<!--开启AOP注解-->
<aop:aspectj-autoproxy/>
<!--配置文件配置Bean-->
<!--使用DBCP连接池class="org.apache.commons.dbcp.BasicDataSource"-->
<!--使用Druid连接池class="com.alibaba.druid.pool.DruidDataSource"-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<!--注入属性-->
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///Spring"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>
3. C3P0连接池
导入jar包
在application Context.xml中配置C3P0连接池
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--开启IOC注解-->
<context:annotation-config/>
<!--开启AOP注解-->
<aop:aspectj-autoproxy/>
<!--配置文件配置Bean-->
<!--使用jdbc连接池 class="org.springframework.jdbc.datasource.DriverManagerDataSource"-->
<!--使用DBCP连接池class="org.apache.commons.dbcp.BasicDataSource"-->
<!--使用Druid连接池class="com.alibaba.druid.pool.DruidDataSource"-->
<!--<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">-->
<!--<!–注入属性–>-->
<!--<property name="driverClassName" value="com.mysql.jdbc.Driver"/>-->
<!--<property name="url" value="jdbc:mysql:///Spring"/>-->
<!--<property name="username" value="root"/>-->
<!--<property name="password" value="123456"/>-->
<!--</bean>-->
<!--使用C3P0连接池-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!--注入属性-->
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql:///Spring"/>
<property name="user" value="root"/>
<property name="password" value="123456"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>
使用属性文件配置数据库连接信息
创建属性文件property,文件类型为property
driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql:///Spring
user=root
password=123456
配置文件中引入属性文件
1. bean方式引入
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--开启IOC注解-->
<context:annotation-config/>
<!--开启AOP注解-->
<aop:aspectj-autoproxy/>
<!--使用属性文件配置数据库连接信息-->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="property"/>
</bean>
<!--配置文件配置Bean-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!--注入属性-->
<property name="driverClass" value="${driverClass}"/>
<property name="jdbcUrl" value="${jdbcUrl}"/>
<property name="user" value="${user}"/>
<property name="password" value="${password}"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>
2. context方式引入
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--开启IOC注解-->
<context:annotation-config/>
<!--开启AOP注解-->
<aop:aspectj-autoproxy/>
<!--配置文件配置Bean-->
<!--使用C3P0连接池-->
<!--使用属性文件配置数据库连接信息-->
<!--bean方式引入属性文件-->
<!--<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">-->
<!--<property name="location" value="property"/>-->
<!--</bean>-->
<!--context方式引入属性文件 location中的classpath可以省略-->
<!--<context:property-placeholder location="property"/>-->
<context:property-placeholder location="classpath:property"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!--注入属性,引用属性名称的key值-->
<property name="driverClass" value="${driverClass}"/>
<property name="jdbcUrl" value="${jdbcUrl}"/>
<property name="user" value="${user}"/>
<property name="password" value="${password}"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>