prepareStatement的问题,只能取得单个字段的值
昨天做的一个东西,只能取到log表中的balance字段,其他的取不到,
注释的部分会报错,找不到数据。调试的时候balance的数据可以取到的。
表字段:
id int,
accountNumber varchar(20),
balance money,
currencyType varchar(20),
date datetime,
transactionType varchar(20),
sum money,
isDelete int,
取消注释的部分后,错误的提示是data not found,
注释成现在这样,只可以获得balance的值。
代码如下:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import util.ConnectDB;
import dom.DOMLog;
public class DAOLog {
/**
* 查询和写入交易日志
*/
public static Connection conn = null;
public static PreparedStatement pstmt = null;
public static ResultSet rs = null;
public static Vector<DOMLog> readLog(DOMLog domLog) {
// 读取交易记录
Vector<DOMLog> domLogV = new Vector<DOMLog>();
try {
conn = ConnectDB.getConnection();
String accountNumber = domLog.getAccountNumber();
String currencyType = domLog.getCurrencyType();
// String sql = "select * from log where accountNumber =
// '2222222222'";
String sql = "select * from log where accountnumber= '"
+ accountNumber + "' and " + "currencyType='"
+ currencyType + "'";
System.out.println(sql);
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
DOMLog dom=new DOMLog();
// dom.setAccountNumber(rs.getString("accountNumber"));
dom.setBalance(rs.getDouble("balance"));
// System.out.println(rs.getDouble("balance"));
//为什么只能查询到balance的结果?其他的无法获得?
// dom.setCurrencyType(rs.getString("currencyType"));
// dom.setDate(rs.getString("date"));
// dom.setId(rs.getInt("id"));
// dom.setIsDelete(rs.getInt("isDelete"));
// dom.setSum(rs.getDouble("sum"));
// dom.setTransactionType(rs.getString("transactionType"));
domLogV.add(dom);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
ConnectDB.close(rs, pstmt, conn);
}
return domLogV;
}
public static void main(String[] args) {
// TEST CODE
DOMLog domLog = new DOMLog();
domLog.setAccountNumber("2222222222");
domLog.setCurrencyType("JPY");
// domLog.setSum(12222);
// domLog.setTransactionType(Constant.DO_CASH.trim());
// domLog.setBalance(22322);
DAOLog.readLog(domLog);
}
}