Spring配置JDBCTemplate

Posted 波涛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring配置JDBCTemplate相关的知识,希望对你有一定的参考价值。

案例:单测查询全部学生

项目结构:

 

1.导入部署jar包:spring-jdbc

<!--spring-jdbc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.2.0.RELEASE</version>
        </dependency>

 2.创建实体类:Student

public class Student {
    private Integer id;  //编号
    private String name;  //姓名
    private Integer age;  //年龄
    private Date birthday;  //出生日期
}

3.创建dao层的接口和实现类:

IStudentDAO:

public interface IStudentDAO {
    //查询全部
    public List<Student> findAll();
}

StudentDAOImpl:继承JdbcDaoSupport  实现IStudentDAO

public class StudentDAOImpl extends JdbcDaoSupport implements IStudentDAO{

    public List<Student> findAll() {
        String sql="select * from student";
        List<Student> list=this.getJdbcTemplate().query(sql, new RowMapper<Student>() {
            /**
             *
             * @param rs
             * @param i
             * @return
             * @throws SQLException
             */
            public Student mapRow(ResultSet rs, int i) throws SQLException {
                Student student=new Student();
                student.setId(rs.getInt("id"));
                student.setName(rs.getString("name"));
                student.setAge(rs.getInt("age"));
                student.setBirthday(rs.getDate("birthday"));
                return student;
            }
        });
        return list;
    }
}

4.创建service层的接口和实现类:

IStudentService:

public interface IStudentService {
    //查询全部
    public List<Student> findAll();
}

StudentServiceImpl:

public class StudentServiceImpl implements IStudentService {
    private IStudentDAO dao;
    public List<Student> findAll() {
        return dao.findAll();
    }

    public IStudentDAO getDao() {
        return dao;
    }

    public void setDao(IStudentDAO dao) {
        this.dao = dao;
    }
}

在applicationContextSpring15jdbctemplate.xml中配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       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/aop http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
">
   <!--00.识别jdbc.properties-->
    <!--方式一-->
   <!-- <context:property-placeholder location="jdbc.properties"></context:property-placeholder>-->
    <!--方式二-->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="jdbc.properties"></property>
    </bean>
    <!--01.建立数据源-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driver}"></property>
        <property name="url" value="${jdbc.url}"></property>
        <property name="username" value="${jdbc.uname}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>
    <!--03.dao的配置-->
    <bean id="studentDao" class="cn.happy.spring22jdbctemplate.dao.impl.StudentDAOImpl">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <!--04.service的配置-->
    <bean id="studentService" class="cn.happy.spring22jdbctemplate.service.impl.StudentServiceImpl">
        <property name="dao" ref="studentDao"></property>
    </bean>
</beans>

其他三种数据源的方案:

 1 <!--02建立数据源 dbcp-->
 2     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
 3         <property name="driverClassName" value="${jdbc.driver}"></property>
 4         <property name="url" value="${jdbc.url}"></property>
 5         <property name="username" value="${jdbc.uname}"></property>
 6         <property name="password" value="${jdbc.password}"></property>
 7     </bean>
 8     <!--03建立数据源 c3p0-->
 9     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
10         <property name="driverClass" value="${jdbc.driver}"></property>
11         <property name="jdbcUrl" value="${jdbc.url}"></property>
12         <property name="user" value="${jdbc.uname}"></property>
13         <property name="password" value="${jdbc.password}"></property>
14     </bean>
15     <!--03建立数据源 alibaba-->
16     <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
17         <property name="driverClassName" value="${jdbc.driver}"></property>
18         <property name="url" value="${jdbc.url}"></property>
19         <property name="username" value="${jdbc.uname}"></property>
20         <property name="password" value="${jdbc.password}"></property>
21     </bean>

 

单元测试:

  //jdbcTemplate
    @Test
    public void test01(){
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContextSpring15jdbctemplate.xml");
        IStudentService dao=(IStudentService) context.getBean("studentService");
        List<Student> list = dao.findAll();
        for (Student item:list){
            System.out.println(item.getName());
        }
    }

执行结果:

 

以上是关于Spring配置JDBCTemplate的主要内容,如果未能解决你的问题,请参考以下文章

Spring二刷笔记-JdbcTemplate

jdbcTemplate 基本配置

Spring 从入门到精通系列 11—— Spring 中的 JdbcTemplate

Spring配置JDBCTemplate

spring jdbcTemplate

Spring Boot之JdbcTemplate多数据源配置与使用