目录

parameterType传入参数实体类和map有什么区别

parameterType传入参数实体类和map的区别是:parameterType将查询结果集中的列一一映射到java对象的各个属性上去;parameterType直接将查询结果列值类型自动对应到java对象属性类型上,不再配置映射关系一一对应。

一、parameterType传入参数实体类和map的区别

parameterType将查询结果集中的列一一映射到java对象的各个属性上去,此处的这个映射关系,是根据用户在“:parameterType”的子标签中的配置来决定的,灵活多变,常用于多表查询以及查询时使用别名的情况。

parameterType直接将查询结果列值类型自动对应到java对象属性类型上,不再配置映射关系一一对应。

这里在提下#{}和${}的使用区别:
 例子如下:

Select ID,COMMAND from Message where COMMAND=#{command}

Select ID,COMMAND from Message where COMMAND=‘${command}’

前者解析为:

Select ID,COMMAND from Message where COMMAND=?具有预编译效果

后者解析为:

Select ID,COMMAND from Message where COMMAND=段子   不具有预编译效果

延伸阅读:

二、 什么是Mybatis

  • Mybatis是一款优异的持久层框架。
  • 它支持定制化SQL、存储过程以及高级映射。
  • Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
  • Mybatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO(Plain Old Java Object,普通老式Java对象)为数据库中的记录。
  • Mybatis本是Apache的一个开源项目Ibatis,2010年这个项目由Apache software foundation迁移到了Google Code,并改名为Mybatis。
  • 2013年11月迁移到Github。

持久化是将程序数据在持久状态和瞬时状态间转换的机制。

  • 即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等等。
  • JDBC就是一种持久化机制。文件IO也是一种持久化机制。
  • 在生活中 : 将鲜肉冷藏,吃的时候再解冻的方法也是。将水果做成罐头的方法也是。

为什么需要持久化服务呢?那是由于内存本身的缺陷引起的

  • 内存断电后数据会丢失,但有一些对象是无论如何都不能丢失的,比如银行账号等,遗憾的是,人们还无法保证内存永不掉电。
  • 内存过于昂贵,与硬盘、光盘等外存相比,内存的价格要高2~3个数量级,而且维持成本也高,至少需要一直供电吧。所以即使对象不需要永久保存,也会因为内存的容量限制不能一直呆在内存中,需要持久化来缓存到外存。