国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

spring連接jdbc-事務(wù)

liaosilzu2007 / 1379人閱讀

摘要:新建項(xiàng)目,名為導(dǎo)入包導(dǎo)入了中的所有包和另外兩個(gè)包使用作為持久方案僅僅是得到連接定義的定義的配置事務(wù)管理器對這個(gè)方法實(shí)現(xiàn)事務(wù)事務(wù)控制位置方法中含有的三個(gè)方法。測試類用于測試的函數(shù)應(yīng)該引入的包

1、新建項(xiàng)目,名為transactionExample
2、導(dǎo)入jar包
導(dǎo)入了spring中的所有jar包和另外兩個(gè)jar包:

3、applicationContext.xml



     



      
      
      
     



        



    




    
        
    





    




    
        
    



  
      
      
 


4、JdbcTemplateService.java
service方法中含有save、update的delete三個(gè)方法。在save方法之后,程序出錯(cuò),所以事務(wù)會(huì)回滾,之前的save操作會(huì)失效,不會(huì)保存到數(shù)據(jù)庫中。

public class JdbcTemplateService {
    
    private JdbcTemplateDao jdbcTemplateDao; 
    
    public void domain(){
        jdbcTemplateDao.save();
        int i = 2/0;//這里出錯(cuò)了,事務(wù)會(huì)回滾,之前的save無效
        jdbcTemplateDao.update();
        jdbcTemplateDao.delete();
    }

    public JdbcTemplateDao getJdbcTemplateDao() {
        return jdbcTemplateDao;
    }

    public void setJdbcTemplateDao(JdbcTemplateDao jdbcTemplateDao) {
        this.jdbcTemplateDao = jdbcTemplateDao;
    }
}

5.JdbcTemplateDao.java
在這里需要注意的是,jdbc默認(rèn)是一個(gè)語句一個(gè)事務(wù),所以,當(dāng)要實(shí)現(xiàn)spring配置的事務(wù)的時(shí)候,需要加上conn.setAutoCommit(false);否則回滾操作會(huì)失效。

public class JdbcTemplateDao extends JdbcDaoSupport{
    
    private PreparedStatement pre = null;
    private Connection conn;
    
    //異常向上層拋出
    public void save() {
        String insertSql = "insert into user values(?,?)";
        try {
            conn = getDataSource().getConnection();
            conn.setAutoCommit(false);
            pre = conn.prepareStatement(insertSql);
            pre.setString(1, "hahaha");
            pre.setString(2, "happy");
            pre.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    public void delete(){
        ...
    }
    public void update(){
        ...
    }
}

6、JdbcDaoSupport.java
本來JdbcDaoSupport 這個(gè)類應(yīng)該是本來就存在的,但是當(dāng)我在JdbcTemplateDao.java中繼承了JdbcDaoSupport.java這個(gè)類之后,得到的DataSource總是為空,所以我另寫了一個(gè)JdbcDaoSupport.java,里面有set和get方法,這樣就能正確地得到DataSource的值。

public class JdbcDaoSupport {
    
    private DriverManagerDataSource driverManagerDataSource;

    public DriverManagerDataSource getDataSource() {
        return driverManagerDataSource;
    }

    public void setDataSource(DriverManagerDataSource driverManagerDataSource) {
        this.driverManagerDataSource = driverManagerDataSource;
    }
}

7、測試類

/**
 * 用于測試的main函數(shù)
 * @author Administrator
 *
 */
public class test {

    /**
     * @param args
     * @throws SQLException 
     * @throws SQLException 
     */
    public static void main(String[] args){
        String[] configLocations = new String[] {"applicationContext.xml"};
        //應(yīng)該引入spring的jar包
        ApplicationContext ctx = new ClassPathXmlApplicationContext(configLocations);
        JdbcTemplateService j = ctx.getBean(JdbcTemplateService.class);
        j.domain();
    }

}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/65894.html

相關(guān)文章

  • Spring筆記04_AOP注解開發(fā)_模板_事務(wù)

    摘要:后置增強(qiáng)周杰倫環(huán)繞通知在切面類中添加以下方法環(huán)繞通知環(huán)繞前增強(qiáng)環(huán)繞前增強(qiáng)測試前置增強(qiáng)保存訂單。。。不使用事務(wù)管理。 1. Spring基于AspectJ的注解的AOP開發(fā) 1. 1 SpringAOP的注解入門 創(chuàng)建項(xiàng)目,導(dǎo)入jar包 需要導(dǎo)入Spring基礎(chǔ)包4+2 需要導(dǎo)入AOP聯(lián)盟包、AspectJ包、Spring整合Aspect包Spring-aop包 Spring整合單...

    youkede 評(píng)論0 收藏0
  • Spring【DAO模塊】就是這么簡單

    摘要:連接對象執(zhí)行命令對象執(zhí)行關(guān)閉值得注意的是,對數(shù)據(jù)庫連接池是有很好的支持的。給我們提供了事務(wù)的管理器類,事務(wù)管理器類又分為兩種,因?yàn)榈氖聞?wù)和的事務(wù)是不一樣的。 前言 上一篇Spring博文主要講解了如何使用Spring來實(shí)現(xiàn)AOP編程,本博文主要講解Spring的DAO模塊對JDBC的支持,以及Spring對事務(wù)的控制... 對于JDBC而言,我們肯定不會(huì)陌生,我們在初學(xué)的時(shí)候肯定寫過非...

    NSFish 評(píng)論0 收藏0
  • 由for update引發(fā)的血案

    摘要:微信公眾號(hào)后端進(jìn)階,專注后端技術(shù)分享框架分布式中間件服務(wù)治理等等。 微信公眾號(hào)「后端進(jìn)階」,專注后端技術(shù)分享:Java、Golang、WEB框架、分布式中間件、服務(wù)治理等等。 老司機(jī)傾囊相授,帶你一路進(jìn)階,來不及解釋了快上車! 公司的某些業(yè)務(wù)用到了數(shù)據(jù)庫的悲觀鎖 for update,但有些同事沒有把 for update 放在 Spring 事務(wù)中執(zhí)行,在并發(fā)場景下發(fā)生了嚴(yán)重的線程阻...

    roundstones 評(píng)論0 收藏0
  • spring 入門 3 整合JDBC和AOP事務(wù)

    摘要:整合提供了很多模板整合技術(shù)持久化技術(shù)模板類中提供了一個(gè)可以操作數(shù)據(jù)庫的對象對象封裝了技術(shù)模板對象與中的非常相似準(zhǔn)備連接池創(chuàng)建模板對象書寫并執(zhí)行步驟導(dǎo)包基礎(chǔ)包類庫新增連接池驅(qū)動(dòng)包包事務(wù)包準(zhǔn)備數(shù)據(jù)庫本地?cái)?shù)據(jù)庫和表書寫使用模板實(shí)現(xiàn)增刪改查 spring整合JDBC spring提供了很多模板整合Dao技術(shù) ORM持久化技術(shù) 模板類 JDBC o...

    CHENGKANG 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<