美文网首页
Spring框架之JdbcTemplate的引入和应用(四)

Spring框架之JdbcTemplate的引入和应用(四)

作者: 程序猿峰岑 | 来源:发表于2022-07-17 09:00 被阅读0次
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创建

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/hibernate_day03?characterEncoding=UTF-8"/>
        <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>
    
<bean id="userDao" class="com.zzx.dao.impl.UserDaoImpl">
        <property name="jdbcTemplate" ref="jdbcTemplate"/>
</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://localhost:3306/hibernate_day03?characterEncoding=UTF-8"/>
        <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>

<bean id="userDao" class="com.zzx.dao.impl.UserDaoImpl">
     <property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
使用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

<context:property-placeholder location="classpath:db.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="${driverClasss}"/>
    <property name="jdbcUrl" value="${jdbcUrl}"/>
    <property name="user" value="${user}"/>
    <property name="password" value="${password}"/>
</bean>

相关文章

网友评论

      本文标题:Spring框架之JdbcTemplate的引入和应用(四)

      本文链接:https://www.haomeiwen.com/subject/gojhirtx.html