import java.security.NoSuchAlgorithmException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;import liaoliao.app.web.util.DBTool;
import java.util.Vector;
public class ViewnewsService {
String title;
String writer;
String content;
String sort;
String addTime;
int id;

public ViewnewsService(){}
public ViewnewsService(String title,
   String writer,
   String content,
   String sort,
   String addTime,
   int id){
this.title=title;
this.writer=writer;
this.content=content;
this.sort=sort;
this.addTime=addTime;
this.id=id;
}

private ResultSet res()throws SQLException{
DBTool db=null;
try{
db=new DBTool();
Connection conn=db.getConnection();
Statement stmt=conn.createStatement();
String sql="select * from news";
ResultSet rs=stmt.executeQuery(sql); while(rs.next()){
this.id=rs.getInt("id");
this.title=rs.getString("title");
this.writer=rs.getString("writer");
this.sort=rs.getString("sort");
this.content=rs.getString("content");
this.addTime=rs.getString("addTime");
}
return rs;
}catch (SQLException e){
e.printStackTrace();
throw e;
}finally {
      if (db != null) {
          db.closeConnection();
        }
      }
} public String getAddTime() {
return addTime;
} public void setAddTime(String addTime) {
this.addTime = addTime;
} public String getContent() {
return content;
} public void setContent(String content) {
this.content = content;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getSort() {
return sort;
} public void setSort(String sort) {
this.sort = sort;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
} public String getWriter() {
return writer;
} public void setWriter(String writer) {
this.writer = writer;
}
}
*************************************************************************
取到的全是null和0;请问应该怎么弄啊~?
先谢过了~~

解决方案 »

  1.   

    你在哪里取值了?res()方法根本没有调用,怎么取值?如果你在类外new了一个ViewnewsService,那也不可能调用到res()方法,因为此方法是私有的!没有调用读取数据库方法,肯定是没有值了.而且即使你调用了此res()方法,那么所取得的值也只是最后一条记录,而它返回的ResultSet结果集根本就是空,因为数据库连接已经关闭!而结果集是依赖数据库连接存在的!
      

  2.   

    while(rs.next()){
    this.id=rs.getInt("id");
    this.title=rs.getString("title");
    this.writer=rs.getString("writer");
    this.sort=rs.getString("sort");
    this.content=rs.getString("content");
    this.addTime=rs.getString("addTime");
    }
    这样不是副给成员变量了吗
    再通过getter取 不行吗?
    rs关闭了  但是值应该副过了啊~
      

  3.   

    private ResultSet res()throws SQLException{
       你赋值的代码是写在这个方法里的,你没有调用执行该方法的代码,也就是这段代码没有运行,你只单单写了代码,没有运行,怎么可能有结果?
    }
      

  4.   

    我现在把他改成public的 在外面也是new了 
    然后没有while  直接this.id=rs.getInt("id");
    this.title=rs.getString("title");
    this.writer=rs.getString("writer");
    this.sort=rs.getString("sort");
    this.content=rs.getString("content");
    this.addTime=rs.getString("addTime");
    这样测试的,可是还是取到的null~
    先感谢一下这位大哥~
      

  5.   

    if(rs.next()){
    this.id=rs.getInt("id");
    this.title=rs.getString("title");
    this.writer=rs.getString("writer");
    this.sort=rs.getString("sort");
    this.content=rs.getString("content");
             this.addTime=rs.getString("addTime");
    }while不能去,如果用while ,是取最后一条数据,如果改成if,那么就是取第一条数据在外边new一个对象,然后再调用一下此方法,如:
    ViewnewsService vs=new ViewnewsService();vs.res();然后打印,System.out.println(vs.getId());
      

  6.   

    vs.res();  这句要报错  在本来的类里却没有报错
    ***************************************************
    Severity Description Resource In Folder Location Creation Time Id
    2 Unhandled exception type SQLException ViewnewsAction.java liaoliao/src/liaoliao/app/web/news line 18 2006年9月27日 20:23:55 2173
      

  7.   

    好象没套进try 
    正在改
    先再次谢谢这位大哥
      

  8.   

    逻辑有点乱
    ResultSet 也没必要返回
    楼主再改改
    大家再帮你看看