zoukankan      html  css  js  c++  java
  • mybatis学习笔记(三)

    mybatis增删改

    • 概念:
      • 功能:从应用程序角度出发,软件具有哪些功能;
      • 业务:完成功能时的逻辑,对应service的一个方法;
      • 事务:从数据库角度出发,完成业务时需要执行的SQL集合,统称一个事务。
    • mybatis 底层是对 JDBC 的封装
      • JDBC 中 executeUpdate()执行新增,删除,修改的 SQL.返回值 int,表示受影响的行数。
      • 所以mybatis 中<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();事务回滚
    • 删除一条信息
      • 使用<delete>标签
        1 <delete id="del" parameterType="People">
        2       delete from people where id=#{0}
        3 </delete>
         1 try {
         2     int delete = session.delete("com.bjm.mapper.del", 2);
         3     if (delete > 0) {
         4         System.out.println("成功");
         5     }else {
         6     System.out.println("失败");
         7         }
         8     } catch (Exception e) {
         9     session.rollback();
        10 }  
      • 由于删除操作是根据id查找一条数据,所以使用#{0}
    • 修改一条信息
      • 使用<update>标签
        1 <update id="upd" parameterType="People">
        2       update people set name = #{name} where id = #{id}
        3 </update> 
         1 People people = new People();
         2 people.setId(3);
         3 people.setName("王二麻子");
         4 try {
         5     int update = session.update("com.bjm.mapper.upd", people);
         6     if (update > 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();
  • 相关阅读:
    cf C. Vasya and Robot
    zoj 3805 Machine
    cf B. Vasya and Public Transport
    cf D. Queue
    cf C. Find Maximum
    cf B. Two Heaps
    cf C. Jeff and Rounding
    cf B. Jeff and Periods
    cf A. Jeff and Digits
    I Think I Need a Houseboat
  • 原文地址:https://www.cnblogs.com/bjm1/p/10267361.html
Copyright © 2011-2022 走看看