MyBatis的parameterType和resultMap
MyBatis的mapping.xml中有两个重要的属性:parameterType和resultMap属性(parameterMap现在不建议使用)
parameterType用来指定传入参数的类型,比如Bean或Map\List。
<configuration> <typeAliases> <typeAlias alias="Product" type="com.zainagou.supplier.entity.Product"/> </typeAliases> <!-- 映射map --> <mappers> </mappers> </configuration>
resultMap是MyBatis中最重要最强大的元素。resultMap封装查询的结果集,type可以是Bean、Object、Primitive type。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.zainagou.supplier.mapper.ProductCategoryMapper"> <parameterMap id="productCategory" type="com.zainagou.supplier.entity.ProductCategory"></parameterMap> <resultMap id="resultMap" type="com.zainagou.supplier.entity.ProductCategory" > <id column="id" property="id" jdbcType="INTEGER" /> <result column="p_id" property="pid" jdbcType="INTEGER" /> <result column="name" property="name" jdbcType="VARCHAR" /> </resultMap> <sql id="Base_Column_List" > id, fid, name </sql> <select id="getProductCategorys" resultMap="resultMap" parameterMap="productCategory"> select <include refid="Base_Column_List" /> from product_category where 0=0 <if test="name!=null and name!=''"> and name like "%"#{name,jdbcType=VARCHAR}"%" </if> </select> </mapper>
从上面mapping.xml可以看出:
resultMap中, column是列名,property是列映射到实体对象的属性,jdbcType是列在数据库中的数据类型,格式统一都是大写,和MySql中的数据类型多数保持一致,少数有差异。
这种方式可以解决列名不匹配。
相关推荐
技术驱动人生 2020-03-24
xiuyangsong 2020-02-23
dongxurr 2020-01-09
cuterabbitbaby 2020-01-09
zhiyuan0 2020-01-04
技术驱动人生 2019-12-22
Justagreenonion 2019-12-07
dongxurr 2019-10-20
渐渐老去 2015-12-17
indigosummer 2014-12-18
渐渐老去 2014-04-30
lonyness 2015-12-22
mrsuddenflash 2014-04-04
zhaojp0 2011-04-30
Nishinoshou 2019-06-21
周嘉笙 2018-06-21
rocky00 2009-08-31
CLASSICHUO 2009-06-04
尘封飞扬 2019-04-01