ibatis实战之外部结果映射
----------
内联结果映射的确非常好,因为它们非常容易使用,并且在绝大多数情况下都能很顺利地完成工作。
ibatis中的外部结果映射也同样有价值,因为它们可以提供更好的性能、更严格的配置验证,以及更加精确的行为。使用外部结果映射,在运行时很少会出错。
结果映射属性
属性 | 描述 |
property | 设定一条结果映射时,property属性用于指定javaBean中某个属性的名字,或者指定作为参数传递给忆映射 语句的Map实例的某个键值对的键值。 这个名字可以不只被使用一次,具体根据在结果填充时所需要的次数而定 |
column | 设定一条结果映射时,column属性用于提供ResultSet的列的名称 |
columnIndex | 作为一个可用于增强性能的属性,columnIndex属性是一个可选字段,用于提供列的索引以代替 ResultSet中的列名 99%应用程序下不需要为了性能而牺牲可维护性和可读性,使用这个属性是否就一定能够提高性能还是 取决于你的JDBC驱动程序。 |
jdbcType | 设定一条结果映射时,jdbcType属性用于显式指定ResultSet列的数据库列类型。虽然结果映射不像参 数映射一样存在空值设置的困难,设置该类型对某些映射类型(比如:Date)来说还是有用的。 考虑到java只有一个Date值类型,而SQL数据库则可能有多个,指定一个Date类型以保证日期(或者其它 类型)能够被正确设置,在某些情况下就变得十分必要。 同样地,varchar,char以及CLOB可以用来填充String类型,这种情况下,指定一个确定的数据库类型 同样十分必要。 |
javaType | 设定一条结果映射时,javaType属性用于显式指定要设置的特性的java属性类型。通常这个属性值可以 通过反射从javaBean特性中推断出来,但是某些映射方式并不能为框架提供这样的类型信息。 在这种情况下,如果没有设置javaType,而框架又不能另外确定类型,就会假定类型为Object |
nullValue | 设定一条结果映射时,nullValue属性用来替换数据库中的空值。 这样,当从ResultSet中读出一个NULL时,javaBean属性就会被设置为nullValue属性所指定的值(而 不是Null)。nullValue属性可以根据bean的属性类型被设置为任何有效值 |
select | 设定一条结果映射时,select属性用于描述对象之间的关系,这样ibatis就能够自动地加载复杂的特性类 型。 该语句特性的值必须是另外一个已映射语句的名字 定义在同一属性元素中的作为该语句属性的数据库列(即column属性)的值将被作为这条已映射语句的参 数值传递给它,因此,该列必须是ibatis支持的简单数据类型。 |