首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Mybatis3结果集投射

2012-07-26 
Mybatis3结果集映射模板???一般的结果集映射已经够用,但如果返回原结果对象很是复杂则可能返回的结果映射

Mybatis3结果集映射

模板

?

?

?一般的结果集映射已经够用,但如果返回原结果对象很是复杂则可能返回的结果映射也就要多点设计了。

?

?resultMap?

?

? ?constructor – ?类在实例化时,用来注入结果到构造方法中?

? ?idArg ?ID 参数;标记结果作为 ID 可以帮助提高整体效能?

? ?arg ? 注入到构造方法的一个普通结果?

? ?id ?一个ID 结果;标记结果作为ID 可以帮助提高整体效能?

? ?result ? 注入到字段或JavaBean 属性的普通结果?

? ?association ? 一个复杂的类型关联;许多结果将包成这种类型.嵌入结果映射?

? ?collection ? 复杂类型的集 .?嵌入结果映射 ?

? ?discriminator – ?使用结果值来决定使用哪个结果映射?

? ?case – ?基于某些值的结果映射.?嵌入结果映射

最佳实践:通常逐步建立结果映射。单元测试的真正帮助在这里。如果你尝试创建一次创建一个向上面示例那样的巨大的结果映射,那么可能会有错误而且很难去控制它来工作。开始简单一些,一步一步的发展。而且要进行单元测试!使用该框架

的缺点是它们有时是黑盒(是否可见源代码)。你确定你实现想要的行为的最好选择是编写单元测试。它也可以你帮助得到提交时的错误。?

?

?

?

?

?

?

?

? 这些是结果映射最基本内容。id 和 result 都映射一个单独列的值到简单数据类型(字符串,整型,双精度浮点数,日期等)的单独属性或字段。?

? 这两者之间的唯一不同是 id 表示的结果将是当比较对象实例时用到的标识属性。这帮助来改进整体表现,特别是缓存和嵌入结果映射

?

property ?映射到列结果的字段或属性。如果匹配的是存在的,和给定名称相同的 JavaBeans 的属性,那么就会使用。否则 MyBatis 将会寻找给定名称的字段。这两种情形你可以使用通常点式的复杂属性导航。比如,你可以这样映射一些东西:“username”,或者映射到一些复杂的东西:“address.street.number”。?

?

column ?从数据库中得到的列名,或者是列名的重命名标签。?

javaType ?一个 Java 类的完全限定名,或一个类型别名。如果你映射到的是 HashMap,那么你应该明确地指定 javaType来保证所需的行为。?

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

typeHandler ?使用这个属性,你可以覆盖默认的类型处理器。这个属性值是类的完全限定名或者是一个类型处理器的实现,或者是类型别名。?

?

?

?

?

?映射类的构造方法,也有四个属性column 、javaType 、jdbcType 、typeHandler?

?

?

?

?

?关联映射

其属性有property 、column、javaType、jdbcType、typeHandler、select

其中select是关联的嵌套查询另外一个映射语句的 ID,可以加载这个属性映射需要的复杂类型。获取的在列属性中指定的列的值将被传递给目标 select 语句作为参数。

?

注意:要处理复合主键,你可以指定多个列名通过 column=”{prop1=col1,prop2=col2}”这种语法来传递给嵌套查询语句。这会引起prop1 和 prop2 以参数对象形式来设置给目标嵌套查询语句。?

?

 

热点排行