mybatis小记

来源:互联网 发布:js radio 赋值 编辑:程序博客网 时间:2024/05/29 12:33

1.复杂查询

示例:SELECT ?,?,? FROM ? WHERE ?=? 

1.1复杂查询的条件传递

1.1.1.这里内容主要在于mapper.xml文件的配置编写和mapper类的代码编写。

mapper.xml中,select标签如下。
<select id="methodNameInMapperJava" resultMap="IdOfResultMapLabel">
SELECT ${columsString} FROM ${tableName} WHERE ${conditionKeys}=#{condition}</select>

mapper.java定义的对应方法如下

 methodNameInMapperJava(@Param("columsString")String columsString,@Param("tableName") String tableName,@Param("conditionKeys") String conditionKeys,@Param("conditionKeys"), String @Param("condition") String condition);

columsString可以是字符串例如:colums1,colums2.colums3,这样的不确定的一个或者多个列名。

由此引出结果返回的类型,由于查询的内容不确定,所以无法使用确定的pojo去接收查询的结果。
因此使用Map代替pojo类接收查询结果。

1.2复杂查询接收结果

mapper.xml文件的resultMap标签如下:

<resultMap id="IdOfResultMapLabel" type="java.util.Map"><result column="Update_Date" property="updateDate" jdbcType="TIMESTAMP" /><result column="Data1" property="data1" jdbcType="DECIMAL" /><result column="Data2" property="data2" jdbcType="DECIMAL" /><result column="Data3" property="data3" jdbcType="VARCHAR" /></resultMap>
Mapper类定义的方法返回类型为

List<HashMap<String,Object>>