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();

       

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务