实体类和数据库关系映射

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作为返回值

image

最后返回值map的格式

{    "key":值    
 "value":值 }

如果没有as来命名呢,

那key的默认名字就是默认的列名

这样子,返回的就是一个类似json的对象,可以封装到实体类中。

如果多条查询的话,正好封装的list<实体类>

6 多个参数

MyBatis传递单个参数,

如果是普通类型(String+8个基本数据类型)的,取值时在#{}中可以任意指定,

如果是对象类型的,则在#{}中使用对象的属性名来取值( ognl表达式)

MyBatis传递多个参数,默认情况下,

MyBatis会对多个参数进行封装Map,

在Mapper接口的方法的形参前面使用

@Param() 来指定封装Map时用的key.

取值时在#{}中使用@Param指定的key.

posted @ 2021-12-14 10:17  姚狗蛋  阅读(75)  评论(0编辑  收藏  举报