Java_EE企業級開發學習筆記——spring學習筆記第四章

程序计算机人發表於2024-03-19

  記錄筆記。

  spring的jdbc模組負責資料庫資料資源管理和錯誤處理。

一.Spring JdbcTemplate的解析

  spring框架提供了JdbcTemplate類,該類是核心類。

  JdbcTemplate的直接父類是JdbcAccessor,該類為子類提供了一些訪問資料庫時使用的公共屬性,比如DataSource和SQLExceptionTranslator。

  而JdbcOperations則定義了操作。

二.Spring JDBC的配置

  主要由四個包組成。

  如果想要使用JDBC,必須在xml檔案裡面進行配置,注意觀察。

  配置資料來源(連線資料庫),配置JDBC模板,配置注入類。

  示例配置檔案(依據自己的情況修改資料庫資訊,MySQL的預設埠是3036)

三.Spring JdbcTemplate的常用方法

  execute()

  execute()能夠完成執行SQL語句的功能,示例是建立。

  選擇資料庫,配置xml檔案,測試類(啟動類)加入execute語句(還是spring要使用的三部曲,只有獲得例項才可以呼叫主動類的方法,這裡的主動類是JDBC模板提供的)

(這裡除了spring的基礎包之外還需要加入的包是:mysql-connector , spring-jdbc,spring-tx。

  啟動類。

(專案執行我記得沒有錯誤)

  可以去test->java裡面新建一個java檔案當作測試類,測試類如下,註解如果報錯那麼就alt+Enter快速載入

  update()

  update()方法有四種,根據引數不同各自分類。

  這裡也是一樣的,主要類(JDBC,自定義類),xml配置,啟動類配置。

  我們上一條是Create指令,直接輸入語句就可以了。而下面的示例,我們選擇了Insert INTO語句,除了語句,我們還需要資料,所以我們需要一堆數值,使用類封裝,也就是說我們需要一個Account類,所以主要類又加入了Account類。

  主要類:

  (示例需要返回受到影響的行數,也就是說在update方法的類中,我們需要獲得Account的例項的資料,所以我們需要加入getter和setter方法,可以的話連toString也可以加進去,使用Alt+insert快捷鍵選擇,這裡省略掉了這些方法。)

  建立介面。(update方法是修改,增刪改查,還需要一個操作主要類)

  操作主要類。

  注意看這幾個方法是怎麼實現的。

public class AccountDaoImpl implements  AccountDao{
    //需要使用update方法,所以還是要宣告JdbcTemplate,啟動類的不用,因為啟動類直接獲得了JdbcTemplate的Bean例項了。
    private JdbcTemplate jdbcTemplate;

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    //新增賬戶
    public int addAccount(Account account){
        //定義sql
        String sql = "insert into account(username , balance) value(?,?)";
        //定義陣列來儲存sql語句中的引數
        Object[] obj = new Object[]{
                account.getUsername(),
                account.getBalance()
        };
        //執行新增操作,返回的是受SQL語句影響的記錄條數
        int num = this.jdbcTemplate.update(sql , obj);
        return num;
    }
    //更新賬戶
    public int updateAccount(Account account){
        //定義SQL
        String sql = "update account set username = ?,balance = ?    where id = ?";
        //定義陣列來儲存SQL語句中的引數
        Object[] params = new Object[]{
                account.getUsername(),
                account.getBalance(),
                account.getId()
        };
        //執行更新操作
        int num = this.jdbcTemplate.update(sql,params);
        return num;
    }
    //刪除賬戶
    public int deleteAccount(int id){
        //定義SQL
        String sql = "delete from account where id = ?";
        int num = this.jdbcTemplate.update(sql,id);
        return num;
    }

    配置xml的主要類相關Bean。

    (注意雖然Account類在我的理解中是主要類,但是Account可以不用在測試類用Bean,就普通地弄,我們使用Bean只是為了使用對應類的方法而已,set,get方法什麼的可以不放在Bean裡面)

   在測試類中三部曲。   

  剩餘方法的實現是類似。

  query()

 示例如下:

  主要類。

  注意方法實現。

  測試類:

  

  

  

  

相關文章