背景:Springboot使用mybatis mapper.xml编写sql。 我有一个这样的数据库表
-------------------------------------------------------
id| data_no| data_name | created_time |value|
--------------------------------------------------------
1 | a1 | weight | 2019-07-24 13:30:57 |100 |
--------------------------------------------------------
2 | b1 | height | 2019-07-24 13:31:57 |100 |
--------------------------------------------------------
3 | a2 | weight | 2019-07-24 13:33:57 |100 |
--------------------------------------------------------
4 | c1 | height | 2019-07-24 13:32:57 |100 |
--------------------------------------------------------
5 | a1 | weight | 2019-07-24 13:35:57 |100 |
--------------------------------------------------------
6 | a1 | length | 2019-07-24 14:30:57 |100 |
--------------------------------------------------------
7 | b1 | height | 2019-07-24 15:30:57 |100 |
现在我有一个data_no
和一个data_name
的列表。我想获取一个数据结果列表,对于一个data_no
和data_name
仅得到一个按最新created_time记录顺序,例如:
List<String> dataNos :{a1,b1}
List<String>dataNames :{weight,height}
result:
[
{a1,weight,2019-07-24 13:35:57,100},
{b1,height,2019-07-24 15:30:57,100}
]
我如何编写mybatis映射器?
我不知道如何通过一个mybatis表达式来执行此操作,现在我得到一个包含重复数据的列表(相同的data_no和data_name包含很多created_time),并在Java代码中过滤created_time,但是如果datas太多,则会花费时间。 像这样的查询Bean:
`public class QueryModel{
private List<String> dataNo;
private List<String> dataName;
}`
结果模型:
public class ResultModel{
private List<DataModel> result;
}
public class DataModel{
private dataNo;
private dataName;
private Date createdTime;
private String value;
}