先创建一个sql语句,然后用下面的方法接收:
接受单个类的对象用entity,集合用entyties
List<类名> lists =new ArrayList<>;
sqls.setCallback(Sqls.callback.entities());
sqls.setEntity(dao.getEntity(类名.class));
sqls.forceExecQuery();
dao.execute(sqls);
lists = sqls.getList(类名.class);
上面这种不行的话就使用下面这种是接近官方原生写法:
Sql sql = Sqls.create("SELECT sum(total_price) as sumMoney, b.city FROM farm_order a left join customer b on a.customer_id=b.id GROUP BY b.city ORDER BY sumMoney DESC LIMIT 7");
sql.setCallback(new SqlCallback() {
@Override
public List<ConsumerAreaBean> invoke(Connection conn, ResultSet rs, Sql sql) throws SQLException {
List<ConsumerAreaBean> list = new ArrayList<>();
while (rs.next()) {
ConsumerAreaBean consumerAreaBean = new ConsumerAreaBean();
consumerAreaBean.setCity(rs.getInt("city"));
consumerAreaBean.setSumMoney(rs.getDouble("sumMoney"));
list.add(consumerAreaBean);
}
return list;
}
});
本文介绍了一种通过创建SQL语句并使用实体映射技术来查询数据库的方法。包括如何使用entities和entity接收查询结果,以及当第一种方法不适用时,如何采用接近官方原生写法的替代方案。
952

被折叠的 条评论
为什么被折叠?



