【发布时间】:2018-07-28 07:35:34
【问题描述】:
目前,我的 DAO 层中有一些方法具有多个选择查询。我的想法是为所有这三种方法提供一个通用方法,以便它也可以进一步使用。这是我的方法。
public List<Customer> findAll(){
String sql = "SELECT * FROM CUSTOMER";
List<Customer> customers = getJdbcTemplate().query(sql,
new BeanPropertyRowMapper(Customer.class));
return customers;
}
用于查找客户的电话号码。
public List<Phone> findPhoneNumbers(int custId){
String sql = "SELECT * FROM PHONE WHERE CUST_ID="+custId;
List<Phone> phoneNumbers = getJdbcTemplate().query(sql,
new BeanPropertyRowMapper(Phone.class));
return phoneNumbers;
}
等等。
能否将这些方法转换为单个泛型方法,以便可以从我的服务层调用。任何建议或想法将不胜感激。
【问题讨论】:
-
你的两个方法有不同的参数。你可以有一个单一的遗传方法
<T> List<T> findAll(String sql, Class<T> clazz) {...}。但是你必须在调用方法之前构造sql语句。 -
@zhh,您能否在答案中详细说明这两种方法适用于哪种方法?