我正在研究一种使用NamedParameterJdbcTemplate
从MySQL数据库获取某些数据的方法。 listCurrentRecords
应该返回来自数据库的Customer
,Product
和SalesOrder
类型的对象列表。 objectType
是在方法中传递的参数(1 || 2 || 3)中定义的,并且在类中早期作为公共变量进行定义。
public static final int TYPE_PRODUCT = 1;
public static final int TYPE_CUSTOMER = 2;
public static final int TYPE_SALESORDER = 3;
以下是提供的方法。
public static List<Object> listCurrentRecords(int objectType)
{
// PRODUCT
if ( objectType == 1 ){
}
//CUSTOMER
else if ( objectType == 2 ){
}
// SALESORDER
else if ( objectType == 3 ){
}
return null;
// return new ArrayList<Object>();
}
假设objectType == 2
,那么就需要使用getMyCustomer
方法从Customer
表中获取一些数据(Product
和SalesOrder
也将使用各自的方法),具体如下:
public static List<Customer> getMyCustomer(){
return jdbc.query("select * from Customer", new RowMapper<Customer>() {
public Customer mapRow(ResultSet rs, int rowNum) throws SQLException {
Customer customer = new Customer();
customer.setCustomerID(rs.getString("CustomerID"));
customer.setName( rs.getString("Name"));
customer.setAddress( rs.getNString("Address"));
customer.setPhone1(rs.getNString("Phone 1"));
customer.setPhone2(rs.getNString("Phone 2"));
customer.setCreditLimit(rs.getDouble("Credit Limit"));
customer.setCurrentCredit(rs.getDouble("Current Credit"));
return customer;
}
});
在else if ( objectType == 2 ){}
中,我想调用getMyCustomer
方法并在那里获取List<Customer>
。然而,listCurrentRecords
方法的返回类型是List<Object>
。如何将List<Customer>
转换为List<Object>
?我提供了以下伪代码:
// customer
else if ( objectType == 2 ){
List<Customer> myCustomer = getMyCustomer();
// how to convert ***myCustomer*** to List<Object> ?
}
我需要一些帮助来正确地用Java编写它。