//针对于order的通用
public Order OrderMethod(String sql, Object... args) {
Connection connection = null;
java.sql.PreparedStatement preparedStatement = null;
ResultSet resultSet = null;//获取结果集
try {
connection = JDBCUtils.getConnection();
preparedStatement = connection.prepareStatement(sql);
//填充可变个数的占位符
for (int i = 0; i < args.length; i++) {
preparedStatement.setObject(i + 1, args[i]);
}
//执行sql
resultSet = preparedStatement.executeQuery();
//获取结果集元数据
ResultSetMetaData metaData = resultSet.getMetaData();
//获取列数
int columnCount = metaData.getColumnCount();
if (resultSet.next()) {//判断是否有数据
//创建order对象
Order od = new Order();
for (int i = 0; i < columnCount; i++) {
Object columnValue = resultSet.getObject(i + 1);
// //获取列的列名
// String columnName = metaData.getColumnName(i + 1);
//获取列的别名
String columnLabel = metaData.getColumnLabel(i + 1);
//通过反射给对象属性赋值
Field declaredField = Order.class.getDeclaredField(columnLabel);
//设置为可编辑
declaredField.setAccessible(true);
declaredField.set(od, columnValue);
}
return od;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.closeResource(connection, preparedStatement, resultSet);
}
return null;
}
}
public class Order {
private String orderName;
private int orderId;
private Date orderDate;
public Order(String orderName, int orderId, Date orderDate) {
this.orderName = orderName;
this.orderId = orderId;
this.orderDate = orderDate;
}
public Order() {
}
public String getOrderName() {
return orderName;
}
public void setOrderName(String orderName) {
this.orderName = orderName;
}
public int getOrderId() {
return orderId;
}
public void setOrderId(int orderId) {
this.orderId = orderId;
}
public Date getOrderDate() {
return orderDate;
}
public void setOrderDate(Date orderDate) {
this.orderDate = orderDate;
}
@Override
public String toString() {
return "Order{" +
"orderName='" + orderName + '\'' +
", orderId=" + orderId +
", orderDate=" + orderDate +
'}';
}
}