天天看点

Spring JdbcTemplate

Spring也是支持JDBC操作,封装了它的模板类  JdbcTemplate,对原生JDBC操作进行了简化

使用它需要导入 spring-jdbc的jar以及spring-tx的jar包

我们导入以下jar包 以及数据库的驱动包

Spring JdbcTemplate
Spring JdbcTemplate
Spring JdbcTemplate

C3P0连接池

在项目下新建db.properties配置文件,用来配置数据库连接信息以及连接池配置

driverClass=com.mysql.jdbc.Driver
user=root
password=root
jdbcUrl=jdbc:mysql://localhost:3306/test
maxPoolSize=6
initialPoolSize=6
           

deptDao类

public class DeptDao {
    //注入 JdbcTemplate类
    private JdbcTemplate jdbcTemplate;
    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    public List<Dept> getALL(){
        String sql = "select * from dept" ;
        return this.jdbcTemplate.query(sql,new MyRowMapper());
    }

    public List<Map<String,Object>> getALLs(){
        String sql = "select * from dept" ;
        return this.jdbcTemplate.queryForList(sql);
    }

    public int update(int deptno){
        String sql = "delete from dept where deptno = ?";
         return  this.jdbcTemplate.update(sql,deptno);
    }
}
           

自定义转换类

public class MyRowMapper implements RowMapper<Dept> {
    @Override
    public Dept mapRow(ResultSet resultSet, int i) throws SQLException {
        Dept dept = new Dept();
        dept.setDeptNo( resultSet.getInt(1));
        dept.setDname( resultSet.getString(2));
        dept.setLoc( resultSet.getString(3));
        return dept;
    }
}
           

spring配置文件

<?xml version='1.0' encoding='UTF-8' ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       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">

    <!-- 读取 src下 db.properties-->
    <context:property-placeholder location="classpath:db.properties"></context:property-placeholder>

    <!-- 配置连接池 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <!--通过 ${key} 取 properties中的信息-->
        <property name="driverClass" value="${driverClass}"></property>
        <property name="jdbcUrl" value="${jdbcUrl}"></property>
        <property name="user" value="${user}"></property>
        <property name="password" value="${password}"></property>
        <property name="maxPoolSize" value="${maxPoolSize}"></property>
        <property name="initialPoolSize" value="${initialPoolSize}"></property>
    </bean>

    <!-- 配置模板类 -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <!-- 引入配置的连接池 -->
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <!-- dao类 配置-->
    <bean id="deptDao" class="com.xt.d_jdbc.DeptDao">
        <!-- 引入 jdbc模板类-->
        <property name="jdbcTemplate" ref="jdbcTemplate"></property>
    </bean>
</beans>