实体类和数据库关系映射
1 常用的关系
CHAR String
VARCHAR String
DECIMAL java.math.BigDecimal
BIT boolean
BOOLEAN boolean
TINYINT byte
SMALLINT short
INTEGER int
BIGINT long
FLOAT double
DOUBLE double
DATE java.sql.Date
TIME java.sql.Time
TIMESTAMP java.sql.Timestamp
2 list作为参数
先看下dao接口
Long selectCustomerCountList(@Param("customerIdList") List customerIdList);
看下映射配置文件
<select id="selectCustomerCountList" parameterType="java.util.List" resultType="java.lang.Long">
select count(1) from customer_info
where id in
<foreach item="item" collection="customerIdList" separator="," open="(" close=")" index="">
#{item, jdbcType=INTEGER}
</foreach>
</select>
3 list作为返回值
当select有多条的时候,会自动把结果封装到接口中的list中
而resultType注意写list中的实体类类型
4 map作为参数
直接根据map的key来取
5 map作为返回值
最后返回值map的格式
{ "key":值
"value":值 }
如果没有as来命名呢,
那key的默认名字就是默认的列名
这样子,返回的就是一个类似json的对象,可以封装到实体类中。
如果多条查询的话,正好封装的list<实体类>
6 多个参数
MyBatis传递单个参数,
如果是普通类型(String+8个基本数据类型)的,取值时在#{}中可以任意指定,
如果是对象类型的,则在#{}中使用对象的属性名来取值( ognl表达式)
MyBatis传递多个参数,默认情况下,
MyBatis会对多个参数进行封装Map,
在Mapper接口的方法的形参前面使用
@Param() 来指定封装Map时用的key.
取值时在#{}中使用@Param指定的key.
我对任何唾手而得,快速,出自本能,即兴,含混的事物没有信心。我相信缓慢,平和,细水长流的力量,踏实,冷静。我不相信缺乏自律精神和不自我建设,不努力,可以得到个人或集体的解放。