改成:
try
{
dbc = new DBConnection();
Statement st = dbc.getConnection().createStatement();
ResultSet rs = st.executeQuery(sbf.toString());
System.out.println(sbf.toString());
while(rs.next())
{
nm.setId(rs.getInt("Id"));
System.out.println(rs.getInt(1));//
nm.setNewsName(rs.getString("newsname"));
nm.setNewsTitle(rs.getString("newstitle"));
nm.setNewsContent(rs.getString("newscontent"));
nm.setNewsDatetime(rs.getString("newsdatetime"));
nm.setMark(rs.getString(""));
nm.setPoint(rs.getInt("point"));
vc.add(nm);
}
rs.close();
st.close();
dbc.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
return vc;
}
try
{
dbc = new DBConnection();
Statement st = dbc.getConnection().createStatement();
ResultSet rs = st.executeQuery(sbf.toString());
System.out.println(sbf.toString());
while(rs.next())
{
nm.setId(rs.getInt("Id"));
System.out.println(rs.getInt(1));//
nm.setNewsName(rs.getString("newsname"));
nm.setNewsTitle(rs.getString("newstitle"));
nm.setNewsContent(rs.getString("newscontent"));
nm.setNewsDatetime(rs.getString("newsdatetime"));
nm.setMark(rs.getString(""));
nm.setPoint(rs.getInt("point"));
vc.add(nm);
}
rs.close();
st.close();
dbc.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
return vc;
}
按照你这样写不行啊.Statement st = dbc.getConnection().createStatement();这句话根本能不过.getConnection()这个方法返回的是void类型的.行不能的.还有一个问题就是我按照自己的写法,把数据写入数据库是可以的,可是为什么取不出数据呢?郁闷ing!~
sbf.append(NewsMode.TABLE_NAME);
sbf.append(" where = '是' order by Id desc ");你的TABLE_NAME返回的是字符串吗?如果是,改为
sbf = new StringBuffer(" select * from '");
sbf.append(NewsMode.TABLE_NAME);
sbf.append("' where = '是' order by Id desc ");
public static String TABLE_NAME = "news";
首先要确定DB中有满足条件的记录!
剩下的应该就是sql语句的问题了,有没有可能条件'是'在执行的时候就变成了乱码了呢?我在用oracle数据库的时候就遇到过这样的问题的
程序里,我有把这句话打印出来的.System.out.println(sbf.toString());
然后我把它复制到mysql里运行,运行结果都正常的,能显示数据的.
改成ResultSet rs = st.executeQuery(" select * from news where = '是' order by id desc ");
都不行啊,55~~~~~~~~~~~~~~~````
还有一般不要用select * ,最好用select x,y,z 明确字段。