在使用原始查询时选择比较 ormlite 中的两列值的行
Posted
技术标签:
【中文标题】在使用原始查询时选择比较 ormlite 中的两列值的行【英文标题】:Select rows comparing two column value in ormlite while using raw query 【发布时间】:2018-08-20 05:48:24 【问题描述】:我有以下数据库表
@DatabaseTable(tableName = "Order_Details")
public class DB_OrderDetails
@DatabaseField(generatedId = true)
private int id;
@DatabaseField()
private int order_id_from_order_table;
@DatabaseField()
private String medicine_code;
@DatabaseField()
private String medicine_name;
@DatabaseField()
private String medicine_type;
@DatabaseField()
private int number_of_units_ordered;
@DatabaseField()
private String generic_name;
@DatabaseField()
private String manufacturer_name;
@DatabaseField()
private double ordering_cost;
...
我正在使用 ormlite 进行本地数据库操作。我想得到结果
SELECT * FROM Order_Details WHERE (medicine_code='xxxx' AND manufacturer_name='yyyy')
又想得到
中返回的结果List<DB_OrderDetails>
有人可以给我建议吗?
【问题讨论】:
【参考方案1】:使用 Where 类的对象来构建您的查询。
List<DB_OrderDetails> list;
try
Dao<DB_OrderDetails, String> dbOrderDetailsStringDao = dbHelper.getOrderDetailsDao();
QueryBuilder<DB_OrderDetails, String> queryBuilder = dbOrderDetailsStringDao.queryBuilder();
Where where = queryBuilder.where();
where.eq("medicine_code", "xxxx");
where.and();
where.eq("manufacturer_name", "yyyy");
PreparedQuery<DB_OrderDetails> preparedQuery = queryBuilder.prepare();
list = dbOrderDetailsStringDao.query(preparedQuery);
catch (SQLException e)
e.printStackTrace();
【讨论】:
我还从您的答案中编辑了一部分以符合我的要求以上是关于在使用原始查询时选择比较 ormlite 中的两列值的行的主要内容,如果未能解决你的问题,请参考以下文章