代码1:
public ArrayList queryBalance(String income) {
ArrayList al=new ArrayList();
DBUtil db=new DBUtil();
try {
java.sql.Connection con=db.getConnection();
String sql="select * from balance where income=?";
java.sql.PreparedStatement ps=con.prepareStatement(sql);
ps.setString(1, income);
java.sql.ResultSet rs=ps.executeQuery();
Bean gb=new Bean();
while(rs.next()) {
gb.setMItem(rs.getString(2));
if(Integer.parseInt(rs.getString(2))==0) {
gb.setMIncome("支出");
}
else if(Integer.parseInt(rs.getString(2))==1){
gb.setMIncome("收入");
}
gb.setMMoney(rs.getDouble(3));
gb.setMName(rs.getString(4));
gb.setMId(rs.getString(5));
gb.setMTime(rs.getString(6));
al.add(gb.toString());
}
db.close(ps, rs, con);
}
catch(java.sql.SQLException sqle) {
sqle.printStackTrace();
}
return al;
}
}
代码2:
ArrayList al = new ArrayList();
al = dao.queryBalance(income);
txaInner.setText(al.toString());
taxInner是我定义的一个文本框(JTextArea),想把代码1 SQL操作之后得到的数据调入文本框中,但是没反应.这是一个个人财务管理系统的代码,想把数据库中存入的财务信息调入文本框中显示,文本框在界面中.
该回答引用ChatGPT
代码1中的queryBalance方法是用来查询数据库中某个收支类型的所有财务记录,并将记录封装成Bean对象加入到ArrayList中返回的。代码2中的al变量是用来存放queryBalance方法返回的ArrayList对象的,然后将其转化成String类型后显示在文本框中。
根据提供的代码,有以下可能出现问题的地方:
解决方案:
dao = new DAO();
if(dao == null) {
System.out.println("dao is null");
} else {
System.out.println("dao is not null");
}
System.out.println("connection is " + dao.getConnection());
txaInner.setEditable(true);
System.out.println("result is " + al.toString());
txaInner.setText(al.toString());