MyBatis学习笔记-04.MyBatis实现简单的增删改查以及事务的问题

版权声明:博主为初学者,大家一起交流学习!让我们一起进步! https://blog.csdn.net/YuanMxy/article/details/79688418

本次将实现简单的增删改查

简单入门介绍请查看(包含核心配置文件以及映射文件的配置):

Mybatis学习笔记-01.Mybatis简单入门_实现MyBatis对数据库的查询操作以及IllegalArgumentException异常问题

一、准备工作

1.数据库表结构


2.数据库表内容


3.实体类


4.MyBatis核心配置文件


扫描二维码关注公众号,回复: 5269249 查看本文章

二、测试增删改查

1.查询stundet表中的所有记录

(1)mybatis映射文件

<?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.yuan.model.Student">
	<!--查询student表全部记录
	在本例中,返回结果为一个List集合,集合中放有Stundet,
	在Mybatis中resultType如果是集合的话,写集合的泛型
	Mybatis会将返回值自动封装到对应实体类中 -->
	<select id="queryList" resultType="com.yuan.model.Student">
		select * from student
	</select>
</mapper>

(1)测试程序以及执行结果

2.在student表中新增一条记录  (需提交事务

(1)mybatis映射文件

<?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.yuan.model.Student">
	<!--在student表中新增一条记录  
	无需写返回值类型resultType,默认返回integer类型-->
	<insert id="insert" parameterType="com.yuan.model.Student">
		insert into student(sno,sname,sex,sdept) values(#{sno},#{sname},#{sex},#{sdept})
	</insert>
</mapper>


(2)测试程序以及执行结果


我们运行发现已经显示 添加成功,但查询数据库发现实际并没有添加上,这是什么原因呢?


因为在我们的核心配置文件中,在使用mybatis进行数据库访问时,已经开启了事务


transactionManager标签说明:
在 MyBatis 中有两种事务管理器类型(也就是 type=”[JDBC|MANAGED]”):
JDBC – 这个配置直接简单使用了 JDBC 的提交和回滚设置。 它依赖于从数据源得 到的连接来管理事务范围。

MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接。

那么既然开启了事务,那么就需要我们在增删改的时候进行提交 commit

修改测试程序为:


此时我们再查看数据库:已经成功添加了


3.在student表中修改一条记录 (修改的过程为 先从数据库查出数据,然后再对此数据进行修改)

(1)mybatis映射文件

<?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.yuan.model.Student">
	<!-- 先根据学号查询出一条信息在修改 -->
	<select id="queryById" parameterType="integer" resultType="com.yuan.model.Student">
		select * from student where sno = #{sno}
	</select>
	<!--在student表中修改一条记录-->
	<update id="update" parameterType="com.yuan.model.Student">
		update student set sname=#{sname},sex=#{sex},sdept=#{sdept} where sno=#{sno}
	</update>
</mapper>

(2)测试程序以及执行结果


数据库已经修改


2.在student表中删除一条记录  

(1)mybatis映射文件

<?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.yuan.model.Student">
	<!--在student表中删除一条记录-->
	<delete id="delete" parameterType="integer">
		delete from student where sno = #{sno}
	</delete>
</mapper>

(2)测试程序以及执行结果



本次仅是简单的增删改查,需注意的一点是增删改的时候需提交事务


猜你喜欢

转载自blog.csdn.net/YuanMxy/article/details/79688418