先创建一个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;
}
});