Mybatis执行sqlSession.insert()和sqlSession.update()需要commit

本文详细解析了MyBatis框架中如何执行插入、更新和删除操作,重点介绍了sqlSession.insert()和sqlSession.update()方法的使用,并强调了在进行数据库操作后必须调用sqlSession.commit()来确保更改被保存到数据库。通过具体的代码示例和XML配置文件,展示了MyBatis的映射文件和配置文件的编写方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mybatis执行sqlSession.insert()和sqlSession.update()

在执行sqlSession.insert()和sqlSession.update()后需要进行 sqlSession.commit(),否则数据库不会插入数据,而且自增长id的情况下,在下一次成功的时候,会将未commit的数据id跳过。

@Test
 public void testUpdate(){
     //mybatis配置文件
     String resource = "conf.xml";
     //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
     InputStream is = MyTest1.class.getClassLoader().getResourceAsStream(resource);
     //构建sqlSession的工厂
     SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
     //创建能执行映射文件中sql的sqlSession
     SqlSession sqlSession = factory.openSession();
     String statement1 = "com.test.my.mapping.userMapper.updateUser";
     User user1 = new User();
     user1.setId(1);
     user1.setName("马超");
     user1.setAge(60);
     int update = sqlSession.update(statement1, user1);
     //如果没有commit,数据库是不会插入数据的
     sqlSession.commit();
     sqlSession.close();
 }
 
   @Test
	 public void testAdd(){
     //mybatis配置文件
     String resource = "conf.xml";
     //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
     InputStream is = MyTest1.class.getClassLoader().getResourceAsStream(resource);
     //构建sqlSession的工厂
     SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
     //创建能执行映射文件中sql的sqlSession
     SqlSession sqlSession = factory.openSession();
     String statement1 = "com.test.my.mapping.userMapper.insertOne";
     User user1 = new User();
     user1.setId(1);
     user1.setName("马超");
     user1.setAge(60);
     sqlSession.insert(statement1, user1);
     sqlSession.commit();
     sqlSession.close();
 }

userMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.test.my.mapping.userMapper">
    <sql id="Base_Column_List">
        id,name,age
    </sql>

    <!--根据id获取-->
    <select id="getUserById" parameterType="int" resultType="com.test.my.domain.User">
    SELECT
     <include refid="Base_Column_List"/>
    FROM users WHERE id=#{id}
    </select>
    <!--新增-->
    <insert id="insertOne" parameterType="com.test.my.domain.User">
        insert into users(`name`,age) values (#{name},#{age})
    </insert>
    <!--删除-->
    <delete id="deleteOne" parameterType="com.test.my.domain.User">
        delete from users where id=#{id}

    </delete>
    <!--更新-->
    <update id="updateUser" parameterType="com.test.my.domain.User">
        update users set name = #{name},age = #{age} where id=#{id}
    </update>
    <!--查询所有-->
    <select id="selectAll" parameterType="com.test.my.domain.User">
        select <include refid="Base_Column_List"/> from users
    </select>
</mapper>

conf.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="userMapper.xml"/>
    </mappers>
</configuration>

记录学习

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值