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

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

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

    waterye

    使用Spring JDBC Framework簡化開發(fā)

    純JDBC操作, 對某些項目來說, 也許更好, Spring JDBC Framework讓你不用關心Connection, Statement, ResultSet.

    定義數(shù)據(jù)源
    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        
    <property name="jndiName">
            
    <value>java:/comp/env/jdbc/oracle</value>
        
    </property>
    </bean>

    定義事務管理器
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        
    <property name="dataSource" ref="dataSource" />
    </bean>

    定義dao
    <bean id="customerDAO" class="com.waterye.dao.impl.CustomerDAOImpl">
        
    <property name="dataSource" ref="dataSource" />
        
    <property name="transactionManager" ref="transactionManager" />
    </bean>

    demo
    public class CustomerDaoImpl extends JdbcDaoSupport implements CustomerDAO {
        
    private DataSource dataSource; 
        pirvate TransactionManager transactionManager;

        
    public void setDataSource(DataSource dataSource) {
            
    this.dataSource = dataSource;
        }

        
    public void setTransactionManager(DataSourceTransactionManager transactionManager) {
            
    this.transactionManager = transactionManager;
        } 

        
    public Map get(Integer id) throws Exception {
            String querySql 
    = "select * from customer where id = ?";

            
    return getJdbcTemplate().queryForMap(querySql, new Object[] { id }); 
        }

        
    public void insert(final Map customer) throws Exception {
            String seqSql 
    = "select customer_seql.nextval from dual"
            String insertSql 
    = "insert into customer (id, code, name, status) values (?, ?, ?, ?)";
            
            TransactionTemplate transactionTemplate 
    = new TransactionTemplate(transactionManager);
            transactionTemplate.execute(
    new TransactionCallbackWithoutResult() { 
                
    protected void doInTransactionWithoutResult(TransactionStatus status) { 
                    JdbcTemplate jdbcTemplate 
    = getJdbcTemplate();
                    
    int id = jdbcTemplate.queryForInt(seqSql);
                    Object[] params 
    = new Object[] { new Integer(id), customer.get("code"), customer.get("name"), map.get("status") };
                    jdbcTemplate.update(insertSql, params);
                }
            }
        }

        
    public void update(final Map customer) throws Exception {
            
    //  
        }

        
    public void delete(Integer id) throws Exception {
            String deleteSql 
    = "delete from customer where id = ?";

            TransactionTemplate transactionTemplate 
    = new TransactionTemplate(transactionManager);
            transactionTemplate.execute(
    new TransactionCallbackWithoutResult() { 
                
    protected void doInTransactionWithoutResult(TransactionStatus status) { 
                    getJdbcTemplate().update(deleteSql, 
    new Object[] { id });
                }
            }
        }

        
    public List findValidCustomers() throws Exception {
            String querySql 
    = "select * from customer where status = 'valid' order by code";

            
    return getJdbcTemplate().query(querySql, new OracleColumnMapRowMapper()); 
        }

    說明:
    1. 沒有使用聲明性事務, 使用編程式事務
    2. 沒有使用POJO模式,使用HashMap, (ActiveMapper還在sandbax狀態(tài))
    3. OracleColumnMapRowMapper implements RowMapper, 實現(xiàn)oracle風格到java bean風格mapping
        如: 字段customer_id 對應rowMap.get("customerId");

    posted on 2005-08-21 20:13 waterye 閱讀(2444) 評論(3)  編輯  收藏 所屬分類: spring

    Feedback

    # re: 使用Spring JDBC Framework簡化開發(fā) 2005-08-25 12:37 江南白衣@ITO

    透明同志說,代碼量控制在30%以內(nèi)的文章是好文章,按這個標準.......  回復  更多評論   

    # re: 使用Spring JDBC Framework簡化開發(fā) 2005-08-25 13:01 Water Ye@ITO

    本人語言表達能力較差  回復  更多評論   

    # re: 使用Spring JDBC Framework簡化開發(fā) 2005-08-25 21:38 江南白衣@ITO

    又據(jù)Joel on software同志說,"影響別人的能力很重要,所以要在blog里認真鍛煉寫作能力阿。", so,代碼掛帥的blog風格要改一下了哦。  回復  更多評論   

    主站蜘蛛池模板: 亚洲精品电影在线| 最近中文字幕2019高清免费| 亚洲一区二区三区91| 在线播放亚洲第一字幕| 日本免费人成视频播放| 国产a视频精品免费观看| a国产成人免费视频| 一级特级女人18毛片免费视频| 国产精品亚洲综合久久| 久久综合亚洲鲁鲁五月天| 亚洲中文字幕无码久久综合网| 国产免费久久精品| 好男人www免费高清视频在线| 一区二区三区四区免费视频| 国内精品免费久久影院| 日本一区二区三区在线视频观看免费| 亚洲三级高清免费| 亚洲区视频在线观看| 亚洲高清国产拍精品26U| 激情97综合亚洲色婷婷五| 免费人成在线观看视频播放 | 亚洲AⅤ无码一区二区三区在线 | 久久亚洲国产成人影院网站| 国产亚洲精品免费| 国内自产少妇自拍区免费| 好吊妞788免费视频播放| 中文字幕无码不卡免费视频| 五月婷婷综合免费| 99免费视频观看| 99热这里有免费国产精品| 亚欧免费一级毛片| 99re在线这里只有精品免费| 无码专区AAAAAA免费视频| sihu国产精品永久免费| 久久久久久国产a免费观看不卡| 特级毛片aaaa级毛片免费| 免费福利资源站在线视频| 成人a毛片免费视频观看| 免费激情网站国产高清第一页| 免费看又黄又爽又猛的视频软件 | 亚洲精品久久久www |