javaType:一个 Java 类的完全限定名,或一个类型别名(参考上面内建类型别名 的列表) 。如果你映射到一个 JavaBean,MyBatis 通常可以断定类型。 然而,如果你映射到的是 HashMap,那么你应该明确地指定 javaType 来保证所需的行为。

jdbcType:在这个表格之前的所支持的 JDBC 类型列表中的类型。JDBC 类型是仅仅 需要对插入, 更新和删除操作可能为空的列进行处理。这是 JDBC 的需要, jdbcType 而不是 MyBatis 的。如果你直接使用 JDBC 编程,你需要指定这个类型-但 仅仅对可能为空的值。

statementType:与前面相同,MyBatis 支持 STATEMENT,PREPARED 和 CALLABLE 语句的映射类型,分别代表 PreparedStatement 和 CallableStatement 类型。

对于数值类型,还有一个小数保留位数的设置,来确定小数点后保留的位数。

#{height,javaType=double,jdbcType=NUMERIC,numericScale=2}

默认情况下,使用#{}格式的语法会导致 MyBatis 创建预处理语句属性并安全地设置值(比如?)。这样做更安全,更迅速,通常也是首选做法,不过有时你只是想直接在 SQL 语句中插入一个不改变的字符串。比如,像 ORDER BY,你可以这样来使用:

ORDER BY ${columnName}

这里 MyBatis 不会修改或转义字符串。

NOTE 以这种方式接受从用户输出的内容并提供给语句中不变的字符串是不安全的,会导致潜在的 SQL 注入攻击,因此要么不允许用户输入这些字段,要么自行转义并检验。

mybatis有缓存机制

http://blog.csdn.net/u012373815/article/details/47069223

一级缓存是SqlSession级别的缓存。在操作数据库时需要构造 sqlSession对象,在对象中有一个(内存区域)数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。

一级缓存的作用域是同一个SqlSession,在同一个sqlSession中两次执行相同的sql语句,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次会从缓存中获取数据将不再从数据库查询,从而提高查询效率。当一个sqlSession结束后该sqlSession中的一级缓存也就不存在了。Mybatis默认开启一级缓存。

二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession去操作数据库得到数据会存在二级缓存区域,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。

二级缓存是多个SqlSession共享的,其作用域是mapper的同一个namespace,不同的sqlSession两次执行相同namespace下的sql语句且向sql中传递参数也相同即最终执行相同的sql语句,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次会从缓存中获取数据将不再从数据库查询,从而提高查询效率。Mybatis默认没有开启二级缓存需要在setting全局参数中配置开启二级缓存。

如果缓存中有数据就不用从数据库中获取,大大提高系统性能。

 

最新文章

  1. 根据商品名称、价格区间检索商品的SQL语句
  2. AndroidAnnotations配置--Android studio
  3. Android PopupWindow 弹窗背景半透明,设置最大高度
  4. javascript——base64
  5. POI使用cell.getCellStyle()设置指定单元格颜色,但是其它没有指定的单元格也会变色
  6. Unity3D 之UGUI 图片
  7. React 入门最好的实例-TodoList
  8. matlab如何写一个类
  9. Google启封后依然不能用
  10. 你是否听过 TypeScript?
  11. Junit基本使用
  12. ssh框架整合笔记
  13. hdu 1907 (尼姆博弈)
  14. AGC 007D.Shik and Game(DP)
  15. Python selenium —— selenium与自动化测试成神之路
  16. Ajax原生四大步骤
  17. iOS 基础入门--Bull' Eye 小游戏 
  18. [CQOI 2018]交错序列
  19. [移动端WEB] 移动端网站响应式布局之"rem",CSS3 rem使用方式
  20. Visualizing MNIST with t-SNE, MDS, Sammon’s Mapping and Nearest neighbor graph

热门文章

  1. POI 2018.10.21
  2. 【BZOJ 4455】 [Zjoi2016]小星星 容斥计数
  3. poco入门
  4. js ajax向后台传数组可以直接拼接传输
  5. 爬虫实例——爬取淘女郎相册(通过selenium、PhantomJS、BeautifulSoup爬取)
  6. Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals)A模拟 B三分 C dfs D map
  7. Git版本管理1-安装配置和同步
  8. 无线局域网中RADIUS协议原理与实现
  9. 【通用邮件发送】C# QQ 网易邮箱
  10. java线程的常用方法和属性介绍