2021-11-26 关于mybatisxml文件如何写

1.在已有类中只查询部分属性

如果Car类中有很多属性car_id、car_type、car_number、car_color、car_price等等很多属性,可是我们要查的只有car_id、car_number 应该如何去做

可以在mapper中直接写方法

List list = findCarInfo(@Param("id") id 查询条件)

然后通过stream-map等方法遍历出来

但是这样会比较麻烦,如果属性很多是个宽表,那么每次会造成很多的浪费;

可以新建一个类PartCar只有两个属性car_id和car_number

public class PartCar{

    carId

    carNumber

}

(mapper中想直接点到xml文件可以下载 free mybatis plugin )

同样mapper中写查询的方法  方法名比如是 findPartInfo(@param......)

xml中需要新建一个resultMap,它的意思是如果你想在这个xml中查点什么,你得有一个返回的“类”,这个类如何定义,就是resultMap的功能;

id:给这个resultMap起一个名字

type:这个返回类的全路径

接下来就是他的属性;

column:意思就是数据库中的列 一般用下划线这种方式定义;

property:这个和你的类中定义的属性一样;到这里可以看出mapResult就是一个映射关系

jdbcType:数据库中他的属性,一定要看看表里面定义的是啥再写

对应数据库中的datetime

2.查询函数生成的属性

select car_id , car_number , count(car_number) as car_count from car where ....

比如这种里面有一个函数生成的属性 ,我要统计有多少次,然后我还要返回这个;

那么PartCar这个类中需要增加一个属性,这个属性记录的就是as后面  car_count的值

同样的它也需要写到

这里可以看出刚才说的是和数据库列名一一对应是不完全的,应该是和查询语句中要返回的字段名称的一种映射关系;

public class PartCar{

    carId

    carNumber

    carCount

}

3.查询语句的Xml文件如何写

3.1 select标签