MyBatis(七)——增、删、改的实现

拜拜、爱过 提交于 2019-12-24 04:35:56

一. 基本概念

  1. 事务回滚:如果在一个事务中某个SQL执行事务,希望回到事务的原点,保证数据库数据的完整性。
  2. 在MyBatis中默认是关闭了JDBC的自动提交功能。
    (1)每一个SqlSession默认都是不自动提交事务;
    (2)session.commit()提交事务;
    (3)openSession(true)。自动提交。setAutoCommit(true).
  3. MyBatis底层是对JDBC的封装。
    (1)JDBC中excuteUpdate()执行新增,删除,修改的SQL。返回值是int,表示受影响的行数。
    (2)MyBatis中<insert><delete><update>标签没有resultType属性,其返回值都是int。
  4. 在openSession()时,Mybatis会在创建SqlSession的同时创建一个Transaction(事务对象),autoCommit都为True。如果出现异常,使用session.rollback()回滚事务。

二. 新增

  1. 在PeopleMapper.xml中使用<insert>标签
  <insert id="ins" parameterType="people">
  	insert into people values(default,#{name},#{age})
  </insert>
  1. 测试类
try {
	int index = session.insert("com.ouc.mapper.PeopleMapper.ins", people);
	if(index>0){
		System.out.println("成功");
	}else{
		System.out.println("失败");
	}
} catch (Exception e1) {
	session.rollback();
	}
session.commit();	

二. 修改

  1. 在PeopleMapper.xml中使用<update>标签
  <update id="upd" parameterType="people">
  	update people set name=#{name} where id = #{id}
  </update>
  1. 测试类
try {
	int index = session.update("com.ouc.mapper.PeopleMapper.upd", people);
	if(index>0){
		System.out.println("成功");
	}else{
		System.out.println("失败");
	}
} catch (Exception e1) {
	session.rollback();
	}
session.commit();	

三. 删除

  1. 在PeopleMapper.xml中使用<delete>标签
  <delete id="del" parameterType="int">
  	delete from people where id = #{0}
  </delete>
  1. 测试类
try {
	int index = session.delete("com.ouc.mapper.PeopleMapper.del", 3);
	if(index>0){
		System.out.println("成功");
	}else{
		System.out.println("失败");
	}
} catch (Exception e1) {
	session.rollback();
	}
session.commit();	
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!