如何按条件列表和时间顺序获取数据集

时间:2019-07-25 11:50:50

标签: java mysql spring-boot mybatis

背景: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_nodata_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;
}

0 个答案:

没有答案