创建别名【建议:观看截图时,对于parameterType 及其 resultMap 的赋值有疑问的请点击该链接】 mybatis中的连接池 mybatis中的事务【面试重点】 在mybatis中通过sqlsession对象的commit方法和rollback方法实现事务的提交和回滚 第一种:手动提交事务 if标签 ————————————
连接池:1.用于存储连接的一个*容器*,减少每次使用连接时都要申请系统资源去创建,节省了时间。 2.连接池容器(集合对象),该集合是线程安全的,不能两个个进程都拿到同一个线程。 3.用队列实现(先进先出)
mybatis连接池提供了3种配置方式 配置的位置: 主配置文件SqlMapConfig.xml中的dataSource标签 type属性:表示采用何种连接池方式。 取值: POLLED:采用传统的javax.sql.DataSource规范中的连接池。(每次使用都从池中拿出一个连接来用) UNPOOLED:采用传统的获取连接的方式,虽然也实现了javax.sql.DataSource接口,但是并没有使用池的思想(即每次用都得申请一个连接) JNDI:采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到DataSource是不一样的。( 注意:如果不是web或者maven的war工程,是不能使用的。)
什么是事务 1.如果一个包含多个的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。(转账) 事务的四大特性ACID 1.原子性:是不可分割的最小操作单位,要么同时成功要么同时失败。 2.持久性:当事物提交或回滚后,数据库会持久化的保存数据。 3.隔离性:多个事务之间。相互独立 4.一致性:实务操作前后,数据总量不变 不考虑隔离性会产生的3个问题 1.脏读:一个事务,读取到另一个事务中没有提交的数据 2.不可重复读(虚度):在同一个事务中,两次读取到的数据不一样。 3.幻读:一个事务操作(DML)数据表中所有记录,另一个事务添加了一条数据,则第一个事务查询不到自己的修改。 解决办法:四种隔离级别 1.read uncommited:读未提交 *产生的问题:脏读,不可重复读(虚度),幻读 2.read commited:读已提交 (Oracle默认级别) *产生的问题:不可重复读(虚度),幻读 3.repeatable read:可重复读 (Mysql默认级别) *产生的问题:幻读 4.serializable:串行化 *可以解决所有的问题 *注意:隔离级别从小到大安全性越来越高,但是效率越来越低 *数据库查询隔离级别: *select @@tx_isolation; *数据库设置隔离级别: *set global transaction isolation level 级别字符串;
调用Sqlsession的commit()方法完成事务提交
第二种:自动提交事务
调用openSession的重载方法 SqlSession openSession(boolean autoCommit);
动态SQL语句 <!--根据条件查询--> <select id="findByCondition" resultType="student" parameterType="student"> select * from student where 1=1 <if test="id != null"> and id = #{id} </if> <if test="st_name != null"> and st_name = #{st_name} </if> </select>
where标签
foreach标签用于遍历集合: 属性: collection:表示要遍历的集合元素 open:代表语句开始部分 sperator:以什么字符做分隔符 close:代表语句结束部分 item:遍历到的每个元素生成的遍历名 子查询 <select id="findByInIds" resultType="student" parameterType="QueryStudent"> select * from student <where> <if test="ids !=null and ids.size>0 "> <foreach collection="ids" open=" id in (" separator="," close=")" item="inid"> #{inid} </foreach> </if> </where> </select>
sql标签
谢谢黑马程序员提供的学习视频资料
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算