结果集映射
结果集映射在对复杂查询的时候很好用,可以将从数据库查询出来的字段映射到pojo类中
简单查询就不必做结果集映射啦,直接用字段名和pojo类的成员变量名映射就好。
先贴一段代码
<resultMap id="commentMap" type="com.dawn.pojo.Comment">
<id property="id" column="id" javaType="java.lang.Integer" jdbcType="INTEGER"></id>
<result property="name" column="name" javaType="java.lang.String" jdbcType="VARCHAR"></result>
<result property="email" column="email" javaType="java.lang.String" jdbcType="VARCHAR"></result>
<result property="addr" column="addr" javaType="java.lang.String" jdbcType="VARCHAR"></result>
<result property="time" column="time" javaType="java.sql.Date" jdbcType="DATE"></result>
<result property="content" column="content" javaType="java.lang.String" jdbcType="VARCHAR"></result>
<result property="article_id" column="article_id" javaType="int" jdbcType="INTEGER"></result>
<result property="article_name" column="title" javaType="java.lang.String" jdbcType="VARCHAR"></result>
</resultMap>
<select id="queryAll" resultMap="commentMap">
select comment.id,name,email,addr,comment.time,content,article_id,title from blog.comment,blog.article where comment.article_id = article.id
</select>
其中有两个属性
javaType jdbcType
这两个东西不能乱写,乱写要报错,而且是严格区分大小写的,成员变量的类型也不能乱设置,贴一下他们的对应表
DBC Type Java Type
- CHAR String
- VARCHAR String
- LONGVARCHAR String
- NUMERIC java.math.BigDecimal
- DECIMAL java.math.BigDecimal
- BIT boolean
- BOOLEAN boolean
- TINYINT byte
- SMALLINT short
- INTEGER int
- BIGINT long
- REAL float
- FLOAT double
- DOUBLE double
- BINARY byte[]
- VARBINARY byte[]
- LONGVARBINARY byte[]
- DATE java.sql.Date
- TIME java.sql.Time
- TIMESTAMP java.sql.Timestamp
- CLOB Clob
- BLOB Blob
- ARRAY Array
- DISTINCT mapping of underlying type
- STRUCT Struct
- REF Ref