zoukankan      html  css  js  c++  java
  • mybatis xml文件解析

    1 parameterType

    如果参数只有一个,比如一个id,即int类型的id,那么parameterType直接是int。

    如果参数有多个,那么就用表中一行对应的类,默认是类的名字和表中列的名字相同的话,就进行赋值。

    2 resultMap

    用于告诉mabatis如何把select结果中取出的数据转换成开发者需要的对象。

    由于是转换成开发者需要的对象,因此应该和SqlSession类的方法一起来看。

    T selectOne(String statement);

    这个时候就返回一个T类型的对象,这个对象是由resultMap里面的逻辑将数据库的查询结果转换而成的。

    如果是

    List<E> selectList(String statement);

    这个时候返回的是一个E类型对象的列表,该列表中的每个对象是由resultMap里面的逻辑将数据库的查询结果转换而成的。

    2.1 <result>标签

    property指的是返回的对象的属性名,而column是查询结果的列名。result标签将它们对应起来,从而完成将数据库查询结果到开发者需要的对象的转换。

    2.2 一对一的关系用association、一对多的关系用collection

    它们是用来描述对象之间的引用关系的。

    2.3 type属性

    表示该resultMap返回的对象的类型。

    2.4 <id> 标签和<result>标签的区别

    它们都是类的属性到列的映射,但是id表示的是主键。

    3 一对一关系的resultMap

    一般情况下,一个对象里面会引用另外一个对象,这种情况就是一对一关系。

    一个resultMap映射的只是一个对象,因此要在该对象中引用另外一个对象就需要用到另外一个resultMap,并且需要调用select来返回这个对象。

    这个时候就用到了association标签了。它依然建立的是类的属性到查询到的数据之间的映射,但是这里查询到的数据用到了另外一个select的结果。

    3.1 assotiation的property属性

    该assotiation所在的resultMap返回的对象的属性。

    3.2 assotiation的column属性

    resultMap对象的表的列属性。用来向select传递参数。

    3.3 assotiation的javaType属性

    property属性的类型。

    3.4 select

    用来返回关联对象的select查询。

    4 一对多关系的resultMap

    如果一个对象里面引用到另外一个对象的集合,这种情况就是一对多关系。同样,也需要用到另外一个resultMap,并且也需要调用select来返回这个对象集合。这个时候要用到collection标签。

    4.1 collection的property属性

    该collection所在的resultMap返回的对象的属性。

    4.2 collection的column属性

    resultMap对象的表中的列的属性。用来给select传参。

    4.3 collection的javaType属性

    property属性的类。

    4.4 collection的ofType属性

    collection中单个元素的类型。

    4.5 select

    用于返回关联对象的select查询。

    5 resultMap和resultType

    用resultType的时候mybatis自动生成相应的resultMap,所使用的类型是java Bean,并且其属性名要和对应的数据库表中的列名相同。resultMap的话,就都是自己定义的,没有这些限制。也就是说,简单的对象类型可以用resultType,因为方便,但是复杂的返回类型就要用resultMap了。

  • 相关阅读:
    介绍 Jersey 依赖
    Jersey 2.x 分支 Java SE 兼容性
    Confluence 6 管理 Atlassian 提供的 App
    Confluence 6 针对站点维护使用只读模式
    Confluence 6 协同编辑问题解决
    Confluence 6 管理协同编辑
    Confluence 6 管理协同编辑
    Confluence 6 管理协同编辑
    Confluence 6 管理协同编辑
    Confluence 6 管理协同编辑
  • 原文地址:https://www.cnblogs.com/hustdc/p/8456267.html
Copyright © 2011-2022 走看看