spring使用JdbcDaoSupport中封装的JdbcTemplate进行query

1.Dept

package cn.hxex.springcore.jdbc;

public class Dept {

    private Integer deptNo;
    private String dName;
    private String loc;
    
    public Integer getDeptNo() {
        return deptNo;
    }
    public void setDeptNo(Integer deptNo) {
        this.deptNo = deptNo;
    }
    public String getDName() {
        return dName;
    }
    public void setDName(String name) {
        dName = name;
    }
    public String getLoc() {
        return loc;
    }
    public void setLoc(String loc) {
        this.loc = loc;
    }
    
    public String toString() {
        StringBuffer buf = new StringBuffer();
        
        buf.append( "deptNo:	" ).append( getDeptNo() ).append( "	" );
        buf.append( "dName:	" ).append( getDName() ).append( "	" );
        buf.append( "loc:	" ).append( getLoc() ).append( "	" );
        
        return buf.toString();
    }
}

2.IDeptDao

package cn.hxex.springcore.jdbc;

import java.util.List;

public interface IDeptDao {

    public List getDepts();
    
    public List getDeptsByNo(int deptno);
}

3.DeptDao

package cn.hxex.springcore.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.jdbc.core.PreparedStatementCreator;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;

public class DeptDao extends JdbcDaoSupport implements IDeptDao {

    public List getDepts() {
        String sql = "SELECT deptno, dname, loc FROM dept";
        
        return super.getJdbcTemplate().query( sql, new DeptRowMapper() );
    }
    
    public List getDeptsByNo(final int deptno){
        final String sql = "SELECT deptno, dname, loc FROM dept where deptno=?";
        
        return super.getJdbcTemplate().query(new PreparedStatementCreator(){

            @Override
            public PreparedStatement createPreparedStatement(Connection connection)
                    throws SQLException {
                PreparedStatement ps = connection.prepareStatement(sql);
                ps.setInt(1, deptno);
                return ps;
            }
            
            
        }, new RowMapper(){

            @Override
            public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
                
                Dept dept = new Dept();
                dept.setDeptNo( new Integer( rs.getString(1) ) );
                dept.setDName( rs.getString( 2 ) );
                dept.setLoc( rs.getString( 3 ) );
                return dept;
            }
            
        });
        
        
        
    }
    
    class DeptRowMapper implements RowMapper {

        public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
            Dept dept = new Dept();
            dept.setDeptNo( new Integer( rs.getString(1) ) );
            dept.setDName( rs.getString( 2 ) );
            dept.setLoc( rs.getString( 3 ) );
            return dept;
        }
        
    }
    
    
}

4.JdbcDaoSupportMain

package cn.hxex.springcore.jdbc;

import java.util.List;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

public class JdbcDaoSupportMain {

    public static void main(String[] args) {
        
        ClassPathResource resource = new ClassPathResource("cn/hxex/springcore/jdbc/JdbcDaoSupportBeans.xml");
        BeanFactory factory = new XmlBeanFactory(resource);

        IDeptDao dao = (IDeptDao)factory.getBean( "deptDao" );
        //List depts = dao.getDepts();
        List depts = dao.getDeptsByNo(10);
        
        for( int i=0; i<depts.size(); i++ ) {
            System.out.println( depts.get( i ) );
        }
    }
}

5.JdbcDaoSupportBeans.xml部分

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 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-2.0.xsd">

    <!--  初始化数据源 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      <property name="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value></property>
      <property name="url">
        <value>jdbc:oracle:thin:@localhost:1521:XE</value>
      </property>
      <property name="username"><value>jeffrey</value></property>
      <property name="password"><value>jeffrey</value></property>
    </bean>
    
    <bean id="deptDao" class="cn.hxex.springcore.jdbc.DeptDao">
        <property name="dataSource" ref="dataSource" />    
    </bean>
</beans>

备注:以上部分代码来自陈天河编著的某书


你要坚强,坚强的足以认识自己的弱点;你要勇敢,勇敢的足以面对自己的恐惧;你要堂堂正正。在遇到挫折时能够昂首而不背躬屈膝;你要能够面对掌声,在胜利时能够谦逊而不趾高气扬。真正的伟大直率真诚,真正的贤人虚怀若谷,真正的强者温文尔雅。——萨利·布什(林肯的继母教育林肯)
原文地址:https://www.cnblogs.com/jinhuazhe2013/p/4314471.html