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();
  • 相关阅读:
    高频交易程序竟然是饿罗斯人开发的?
    系统功能在用户测试阶段被推翻
    去新华书店有感
    金桔
    结香
    金钟花
    金丝桃
    箬竹
    香茶菜
    水果兰
  • 原文地址:https://www.cnblogs.com/bjm1/p/10267361.html
Copyright © 2011-2022 走看看