(一) 简介
JdbcTemplate是 为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架。JDBC Template作为Spring JDBC的框架核心,JDBC模板的设计是为不同类型的JDBC提供模板方法,,每一个模板都能控制整个过程,并覆盖过程中的特定任务,通过这种方式在竟可能保留灵活性的情况下,将数据库存取工作量讲到最低。
(二)连接
我这次使用的是Spring 与C3p0数据池 的连接。
1. 创建Java项目,并创建Lib文件夹,在Lib文件夹中导入需要的Jar包。
(特别注意!! 每台机器上的MYSQL 版本不同,需要导入的Jar包不同,选择合适的Jar包。 另外导入C3P0数据池时应把 必须的三个包都导入进去) 导入jar 包后 构建路径。
我的Mysql 版本是 8.0.12 ( 如果和我的版本一样 还需要注意的是 连接之前,一定要修改时区,不修改时区连接错误)
set global time_zone='+8:00';
我导入的包为如下图:
2. 编写属性文件: db.properties
(用于jdbc连接方便,便于修改)
其中 Mysql 版本是8.0 的注意 jdbc.driverClass=com.mysql.cj.jdbc.Driver
版本低的不需要加 cj
jdbc.user=root
jdbc.password=1230
jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/spring
jdbc.initPoolSize=5
jdbc.maxPoolSize=10
3. 配置xml配置文件
<!-- 导入资源文件 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置 C3P0 数据源 -->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="initialPoolSize" value="${jdbc.initPoolSize}"></property>
<property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>
</bean>
4.测试连接
创建主函数(或者测试函数) 进行连接。
(需要注意的是连接前,创建DataSource 时一定看好上方自动导入的包是否正确,正确的包是
import javax.sql.DataSource; )
package jdbc;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) throws SQLException {
// TODO 自动生成的方法存根
ApplicationContext ctx=new ClassPathXmlApplicationContext("bean.xml");
DataSource dataSource=(DataSource) ctx.getBean("dataSource");
System.out.println(dataSource.getConnection());
}
}
5.测试之前