场景说明:
有A、B、C、D、E共5张表,其中A表为主表,BCDE同为子表,A表有一个字段关联着BCDE表的主键id,BCDE表的字段除了主键id都不相同,此时我们需要查询A表数据同时关联子表查询出其子表的所有字段信息,因为不清楚关联子表具体是谁,所以您可能需要如下骚操作
Mybatis查询语句
<select id="selectInfo" parameterType="yxz.niit.com.Yxz" statementType="STATEMENT" resultType="java.util.HashMap"> |
1.yxz.niit.com.Yxz是查询参数实体路径
2.statementType=”STATEMENT”
要实现动态传入表名、列名,需要做如下修改
添加属性statementType=”STATEMENT”
同时sql里的属有变量取值都改成${xxxx},而不是#{xxx}
3.resultType=”java.util.HashMap”
不知道具体返回是哪个实体,所以先返回一个Map,然后后台代码在转出Object对象
4.${tableName} 接受表名 B、C、D、E
Map转Object
JSONHelper.jsonToBean(JSONHelper.beanToJson(object),B.class) |
这样就可以转换出B对象