JdbcTemplate简介
JdbcTemplate类似DBUtils,用于操作jdbc的工具类,它需要依赖于连接池DataSource(数据源)。
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API ODBC(Open Database Connectivity)开放数据库连接,是微软公司提供的一组对数据库访问的标准API。
DBCP(DataBase Connection pool)数据库连接池,是java数据库连接池的一种,由Aspect开发。
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展,目前使用它的开源项目由Hibernate、Spring等。
C3P0于DBCP的区别
C3P0有自动回收空闲连接功能
DBCP没有自动回收空闲连接功能
常规操作,因为之前有篇关于JdbcTemplate的文章,如果读者对JdbcTemplate不是很了解,可以先看那篇文章。JDBC进阶-数据库连接池技术以及jdbcTemplate
配置DBCD
数据源不由自己创建,由Spring创建
配置C3P0
使用JdbcDaoSupport
public class UserDao1Impl extends JdbcDaoSupport implements IUserDao {
@Override
public void save(User user) {
String sql = "insert into t_user(username,password,age,sex) values (?,?,?,?)";
Object[] args = new Object[]{user.getUsername(),user.getPassword(),user.getAge(),user.getSex()};
this.getJdbcTemplate().update(sql,args);
}
@Override
public void update(User user) {
String sql = "insert into t_user(username,password,age,sex) values (?,?,?,?)";
Object[] args = new Object[]{user.getUsername(),user.getPassword(),user.getAge(),user.getSex()};
this.getJdbcTemplate().update(sql,args);
}
@Override
public void delete(String username) {
String sql = "delete t_user where username=?";
this.getJdbcTemplate().execute(sql);
}
}
数据库连接Properties的配置
src目录下创建db.properties文件
driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/hibernate_day03?characterEncoding=UTF-8
user=root
password=123456
beans.xml文件配置 关键是下面第一行代码,找到路径并把数据赋值给dataSource