1. JdbcTemplate将我们使用的JDBC的流程封装起来,包括了异常的捕捉、SQL的执行、查询结果的转换等等。spring大量使用Template Method模式来封装固定流程的动作,XXXTemplate等类别都是基于这种方式的实现。   
  2.  
  3. JdbcTemplate 用来 抽象我们常用的一些方法。   
  4.  
  5.  
  6.  
  7.  
  8. 配合JDK1.5中的可变参数列表,用起来很爽!   
  9.  
  10.     <beans> 
  11.         <bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource"> 
  12.             <property name="URL"> 
  13.                 <value>jdbc:oracle:thin:root/123@localhost:1521/XE</value> 
  14.             </property> 
  15.         </bean> 
  16.         <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> 
  17.             <property name="dataSource"> 
  18.                 <ref bean="dataSource" /> 
  19.             </property> 
  20.         </bean> 
  21.         <bean id="userDAO" class="DAO.Imp.UserDAOImp"> 
  22.             <property name="jdbcTemplate"> 
  23.                 <ref bean="jdbcTemplate" /> 
  24.             </property> 
  25.         </bean> 
  26.         <bean id="user" class="Model.User"> 
  27.             <property name="dao"> 
  28.                 <ref bean="userDAO" /> 
  29.             </property> 
  30.         </bean> 
  31.         </beans>?   
  32. ?  
  33.  
  34.     public void execute(String sql, Object... args) {  
  35.         this.simpleJdbcTemplate.update(sql, args);  
  36.     }  
  37.     jdbcTemplate.queryForInt("SELECT last_insert_id() as id");  
  38.  
  39.     public List queryForList(String sql, Object... args) {  
  40.         return this.jdbcTemplate.queryForList(sql, args);  
  41.     }?   
  42. ?  
  43.  
  44.         public String buildPageSql(String _sql, int page, int pageSize) {  
  45.  
  46.         String sql_str = null;  
  47.  
  48.         String db_type = EopSetting.DBTYPE;  
  49.         if (db_type.equals("1")) {  
  50.             db_type = "mysql";  
  51.         } else {  
  52.             db_type = "oracle";  
  53.         }  
  54.  
  55.         if (db_type.equals("mysql")) {  
  56.             sql_str = _sql + " LIMIT " + (page - 1) * pageSize + "," + pageSize;  
  57.         } else {  
  58.             StringBuffer sql = new StringBuffer(  
  59.                     "SELECT * FROM (SELECT t1.*,rownum sn1 FROM (");  
  60.             sql.append(_sql);  
  61.             sql.append(") t1) t2 WHERE t2.sn1 BETWEEN ");  
  62.             sql.append((page - 1) * pageSize + 1);  
  63.             sql.append(" AND ");  
  64.             sql.append(page * pageSize);  
  65.             sqlsql_str = sql.toString();  
  66.         }  
  67.  
  68.         return sql_str.toString();  
  69.     } 

 

本文摘自:http://uule.javaeye.com/blog/841105