1. 程式人生 > >mybatis學習筆記(三)

mybatis學習筆記(三)

into ram auto 不同 delet cat .com llb close

mybatis增刪改

  • 概念:
    • 功能:從應用程序角度出發,軟件具有哪些功能;
    • 業務:完成功能時的邏輯,對應service的一個方法;
    • 事務:從數據庫角度出發,完成業務時需要執行的SQL集合,統稱一個事務。
  • mybatis 底層是對 JDBC 的封裝
    • JDBC 中 executeUpdate()執行新增,刪除,修改的 SQL.返回值 int,表示受影響的行數。
    • mybatis 中與<select> 標簽不同,<insert><delete><update>標簽沒有 resultType 屬性,默認返回值都是 int
  • 增加一條信息
    • 使用<insert>標簽
      <insert id="ins" parameterType="People">
            insert into people values(default,#{name},#{age})
      </insert>

       1 People people = new People();
       2 people.setName("新增name");
       3 people.setAge(88);
       4 try {
       5    int insert = session.insert("com.bjm.mapper.ins", people);
       6    if (insert>0) {
      
      7 System.out.println("成功"); 8 }else { 9 System.out.println("失敗"); 10 } 11 } catch (Exception e) { 12 session.rollback(); 13 } 14 session.commit();
      15 session.close();

    • 在 openSession()時 Mybatis 會創建 SqlSession 時同時創建一個Transaction(事務對象),同時 autoCommit 都為 false,這也就是mybatis將JDBC的自動提交關閉,需要session.commit();讓session進行提交。
    • 為了避免錯誤提交,使用session.rollback();事務回滾

mybatis學習筆記(三)