Spring 對JDBC的支援

爪哇島的流浪漢發表於2018-07-16


1.Spring對JDBC整合支援
    Spring對DAO提供哪些支援
    1)Spring對DAO異常提供統一處理
    2)Spring對DAO編寫提供支援的抽象類
    3)提高程式設計效率,減少DAO編碼量

    Spring對DAO異常支援
    Spring把特定某種技術的異常,如SQLException,統一轉化為自
    己的異常,異常以DataAccessException為父類,它封裝原始的異
    常物件,不會丟失原始錯誤資訊

    DataAccessException繼承於RuntimeException,是非檢查異常,
    不會因為沒有處理異常而出現編譯錯誤,異常必須處理可以用攔截
    器統一處理

    Spring對DAO編寫支援
    Spring為了便於以一種一致的方式使用各種資料庫訪問技術,如
    JDBC,MyBatis,Hibernate,Spring提供一套抽象的DAO類,
    通過它們可以獲得與資料庫訪問技術相關的資料來源和其他配置資訊

    JdbcTemplate:封裝常用JDBC方法
    JdbcDaoSupport:JDBC資料訪問物件的基類

    JdbcDaoSupport
    利用JDBC技術編寫DAO的父類,通過此類提供的方法,可便於獲
    取Connection和JdbcTemplate物件

    JdbcDaoSupport使用時需要注入一個DataSource物件

    JdbcTemplate
    封裝連線獲取以及連線釋放等工作,從而簡化我們對JDBC的使用,
    避免忘記關閉連線等錯誤

    如何編寫DAO元件
    基於JDBC技術編寫DAO元件可以採用以下兩種方式:
    1)DAO繼承JdbcDaoSupport,通過getJdbcTemplate方法獲取
        JdbcTemplate物件,需要在DAO實現類中注入一個DataSource
        物件來完成JdbcTemplate的例項化

    2)DAO不繼承JdbcDaoSupport,在Spring容器中配置一個
        JdbcTemplate的Bean,然後注入給DAO元件
        
    例項操作
    use test;
    
    員工表
    create table emp(
        empno int(4) primary key auto_increment,
        ename varchar(10) not null,
        salary double(7,2),
        bonus double(5,2),
        hiredate date,
        deptno int(2)    
    );    
    
    insert into emp values(
        1001,'張三',33333.33,333.33,now(),1);
    insert into emp values(
        null,'李四',44444.44,444.44,now(),2);
    insert into emp values(
        null,'王五',55555.55,555.55,now(),3);
    insert into emp values(
        null,'趙六',66666.66,666.66,now(),4);        
    
    部門表
    create table dept(
        deptno int(2) primary key auto_increment,
        dname varchar(10) not null    
    );    
    
    insert into dept values(null,'研發部');
    insert into dept values(null,'財務部');
    insert into dept values(null,'行政部');
    insert into dept values(null,'市場部');    

    

    
    

相關文章