MyBatis学习笔记-04.MyBatis实现简单的增删改查以及事务的问题
2018-03-26 14:10
686 查看
本次将实现简单的增删改查
简单入门介绍请查看(包含核心配置文件以及映射文件的配置):
Mybatis学习笔记-01.Mybatis简单入门_实现MyBatis对数据库的查询操作以及IllegalArgumentException异常问题
2.数据库表内容
3.实体类
4.MyBatis核心配置文件
(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)测试程序以及执行结果
本次仅是简单的增删改查,需注意的一点是增删改的时候需提交事务
简单入门介绍请查看(包含核心配置文件以及映射文件的配置):
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)测试程序以及执行结果
本次仅是简单的增删改查,需注意的一点是增删改的时候需提交事务
相关文章推荐
- ZooKeeper学习笔记:使用zookeeper的API实现增删查改以及客户端的观察者模式
- MyBatis学习笔记-01.MyBatis简单入门_实现MyBatis对数据库的查询操作以及IllegalArgumentException异常问题
- 【知了堂学习笔记】mybatis通过代理实现增删改查
- Spring MVC 学习笔记5 —— 实现简单的用户管理,增删改查(1)建立user model
- salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)
- 【知了堂学习笔记】myBatis实现增删查改
- MyBatis第二讲学习笔记 ,使用MyBatis对表执行增删改查操作——基于注解的实现
- 【EF学习笔记04】----------EF简单增删改查
- MVC学习笔记二:实现简单的增删改查
- MyBatis简单的增删改查以及简单的分页查询实现
- MyBatis代码实例系列-03:MyBatis单张表简单实现增删改查 + log4j + 手动事务控制
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- oracle 最简单的学习笔记,增删改查,PLSQL基本语法,游标,函数,存储过程的实现
- MyBatis简单的增删改查以及简单的分页查询实现
- MyBatis笔记二-增删改查-事务-简单的多表联查
- Mybatis学习笔记三:实现增删查改
- JAVA 利用JDBC连接MYSQL数据库以及增删改查的实现【学习笔记】
- 【Mybatis学习】Mybatis简单增删改查以及批量操作
- Mybatis学习笔记一:环境搭建以及简单使用
- mybatis学习笔记二(实现数据的增删改查)