您的位置:首页 > 其它

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

2018-03-26 14:10 686 查看
本次将实现简单的增删改查
简单入门介绍请查看(包含核心配置文件以及映射文件的配置):
Mybatis学习笔记-01.Mybatis简单入门_实现MyBatis对数据库的查询操作以及IllegalArgumentException异常问题

一、准备工作

1.数据库表结构



2.数据库表内容



3.实体类



4.MyBatis核心配置文件



二、测试增删改查

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)测试程序以及执行结果





本次仅是简单的增删改查,需注意的一点是增删改的时候需提交事务
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐