<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    Eclipse中利用Spring的JDBC模板寫DAO

     

    DAO應該是現在比較流行的一種開發模式.不管是用什么更新的技術,hibernate或者其它的.DAO模式是應該遵循的.
    我寫DAO大概是這樣的:一個DAO接口,定義好要實現的方法名稱;一個Impl實現類,主要控制連接及關閉數據庫;
    接下來會有一個寫具體方法的數據庫實現類;還有一個工廠類,可以更靈活的取得不同的DAO.
    上面的寫法感覺上不錯,但是寫起來比較麻煩,而且如果使用數據庫連接池的活,利用JUnit做測試的時候會比較麻煩.
    下面我們利用Spring的JDBC模板寫一個DAO測試實例,你會發現它是如此的簡單且實用.
    使用的了DBCP的連接池.

    下面是要引入的JAR包
        <classpathentry kind="lib" path="D:/classes/spring.jar"/>
        <classpathentry kind="lib" path="D:/classes/junit-3.8.1.jar"/>
        <classpathentry kind="lib" path="D:/classes/spring-dao.jar"/>
        <classpathentry kind="lib" path="D:/classes/mysql-connector-java-3.0.9-stable-bin.jar"/>
        <classpathentry kind="lib" path="D:/classes/commons-dbcp-1.1.jar"/>
        <classpathentry kind="lib" path="D:/classes/commons-pool-1.1.jar"/>
        <classpathentry kind="lib" path="D:/classes/commons-collections.jar"/>
        <classpathentry kind="lib" path="D:/classes/commons-beanutils.jar"/>
        <classpathentry kind="lib" path="D:/classes/commons-lang-2.0.jar"/>
        <classpathentry kind="lib" path="D:/classes/commons-logging-1.0.3.jar"/>

    SpringDao.java文件

    package com.bcxy.spring.dao;

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

    import javax.sql.DataSource;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.jdbc.core.PreparedStatementSetter;
    import org.springframework.jdbc.core.RowCallbackHandler;

    import com.bcxy.spring.dao.model.TestModel;

    public class SpringDao {

     DataSource ds = null;
     
     JdbcTemplate jt = null;
     
     Log log = LogFactory.getLog(SpringDao.class);
     
     public List springQuery(){
      final List tests = new ArrayList();
      String sql = " select * from test ";
      jt = new JdbcTemplate(ds);
      jt.query(sql, new RowCallbackHandler(){

       public void processRow(ResultSet rs) throws SQLException {
        //
        TestModel tm = new TestModel();
        tm.setId(rs.getInt("id"));
        tm.setPw(rs.getString("pw"));
        tm.setUn(rs.getString("un"));
        //
        tests.add(tm);
       }
      });
      return tests;
     }
     
     public void springUpdate() {
      String sql = "update test set pw=? where id=?";
      jt = new JdbcTemplate(ds);
      jt.update(sql, new PreparedStatementSetter() {
       public void setValues(PreparedStatement ps) throws SQLException {
        //
        ps.setString(1, "maxcard");
        ps.setInt(2, 1);
       }
      });
      log.info("update test a record.");
     }

     /**
      * @return
      */
     public DataSource getDs() {
      return ds;
     }

     /**
      * @param source
      */
     public void setDs(DataSource source) {
      ds = source;
     }

    }

    Spring配置文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "<beans>
    <description>Spring Quick Start</description>
    <!-- datasource -->
    <bean id="datasource"
          class="org.apache.commons.dbcp.BasicDataSource"
          destroy-method="close">
        <property name="driverClassName">
            <value>com.mysql.jdbc.Driver</value>
        </property>
        <property name="url">
            <value>jdbc:mysql://localhost/test</value>
        </property>
        <property name="username">
            <value>root</value>
        </property>
        <property name="password">
            <value></value>
        </property>
    </bean>
    <!-- test dao -->
    <bean id="testdao"
          class="com.bcxy.spring.dao.SpringDao"
          >
        <property name="ds">
            <ref local="datasource"/>
        </property>
    </bean>

    </beans>

    下面我們用JUnit測試一下:
    ......

     public void testSpringUpdate() throws FileNotFoundException {
         //
      InputStream is = new FileInputStream("bean.xml");
      XmlBeanFactory bean = new XmlBeanFactory(is);
      SpringDao sd = (SpringDao)bean.getBean("testdao");
      sd.springUpdate();
     }

    posted on 2006-02-23 17:37 都市淘沙者 閱讀(758) 評論(0)  編輯  收藏 所屬分類: Spring+Struts+Hibernate

    主站蜘蛛池模板: 黄页免费在线观看| 永久免费av无码入口国语片| 国产免费久久精品99re丫y| 色婷婷六月亚洲婷婷丁香| 91精品全国免费观看青青| 亚洲人成色7777在线观看不卡| 亚洲精品9999久久久久无码| 欧美在线看片A免费观看| 亚洲伦理中文字幕| 成年性生交大片免费看| 亚洲国产成人精品无码区花野真一| 最近中文字幕mv免费高清电影 | 一区二区三区免费电影| 亚洲AV网站在线观看| 四虎影视久久久免费观看| 亚洲午夜精品久久久久久浪潮| 男人扒开添女人下部免费视频| 大胆亚洲人体视频| 岛国精品一区免费视频在线观看| 亚洲一区二区三区香蕉| 久久久久高潮毛片免费全部播放| 亚洲国产成人精品无码区在线网站| 免费精品国产日韩热久久| 亚洲av无码一区二区三区人妖| 一本色道久久88综合亚洲精品高清| 黄 色一级 成 人网站免费| 亚洲国产综合91精品麻豆| 日韩视频在线精品视频免费观看| 亚洲人成网站色7799| 亚洲高清免费视频| 久久免费精品一区二区| 亚洲国产视频久久| 亚洲一级片内射网站在线观看| 久久青草91免费观看| 亚洲人成网站免费播放| 亚洲午夜福利在线观看| 麻豆国产精品免费视频| 美景之屋4在线未删减免费| 亚洲AV日韩AV永久无码绿巨人| 性色av免费观看| 免费看一区二区三区四区|