MyBatis框架 传参、事务、缓存(二级)

迈不过友情╰ 2023-07-17 09:56 51阅读 0赞

传参

在mapper.xml文件中的标签中的parameterType可以可控制参数
传入参数的方法:

  1. sSession.select("虚拟包.id", 参数列表);
SQL语句中获取参数的三种方式

方式:通过#{ }获取参数、相当于一个占位符
①使用索引,从0开始,也可使用param1表示第一个参数,
例:

  1. <select id="selVipMoney" resultType="int" parameterType="int">
  2. select money from vip where cardid=#{0}
  3. <!--或者:select money from vip where cardid=#{param1}-->
  4. </select>

Tips:如果只有一个参数(基本数据类型或String),对{}内部信息并无要求

②如果参数是对象,#{属性名}
例:

  1. <select id="selhighprice" resultType="Commodity" parameterType="Commodity">
  2. select * from commodity where price>${price}
  3. </select>

③如果参数是map,#{key}
例:

  1. <select id="selpage" resultType="Commodity" parameterType="map">
  2. select * from commodity limit #{index},#{number}
  3. </select>

Ps:此处测试的是分页查询,对于分页查询:
需先计算,后传入,占位符(?)不允许在关键字前后进行数学运算

除此之外,也可通过${}(不常用)获取参数
方式:不使用占位符,是字符串拼接
①对于对象,默认找${属性}的get/set方法
②对于map,通过、${key}获取
③若写一个数字,就表示一个数字

事务管理

在mybatis中默认关闭了JDBC的自动提交功能,即每一个SqlSession默认不自动提交事务。
手动提交事务:.session()
事务回滚:.rollback() 在出现异常时使用

Ps:.setAutoCommit(true)设置为自动提交

缓存

1)、含义
应用程序和数据库交互的过程是一个相对比较耗时的过程
缓存可以使得应用程序减少对数据库的访问,提升程序运行效率
①先去缓存区查询
②无缓存去数据库查询
③返回查询结果,并放入缓存区

2)、mybatis中默认开启SqlSession缓存
同一个SqlSession对象调用同一个对应一个Statement对象,实质是缓存Statement对象
标签的useCache属性可以设置是否使用二级缓存
增删改标签的flushCache属性默认为true,即每次操作都会刷新缓存

发表评论

表情:
评论列表 (有 0 条评论,51人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MyBatis二级缓存

    基本知识: 分类: 1. 内置二级缓存(其主要任务是映射) 2. 外置第三方产品 内置二级缓存: 开启方法: 1. 在映射文件中添加<cache/>标签