站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题数据库取值问题

数据库取值问题

摘要: 数据库取值问题


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;请问应该怎么弄啊~?
先谢过了~~


我顶一下~求助~


你在哪里取值了?res()方法根本没有调用,怎么取值?如果你在类外new了一个ViewnewsService,那也不可能调用到res()方法,因为此方法是私有的!没有调用读取数据库方法,肯定是没有值了.

而且即使你调用了此res()方法,那么所取得的值也只是最后一条记录,而它返回的ResultSet结果集根本就是空,因为数据库连接已经关闭!而结果集是依赖数据库连接存在的!


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关闭了 但是值应该副过了啊~


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



我现在把他改成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~
先感谢一下这位大哥~


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());


vs.res(); 这句要报错 在本来的类里却没有报错
***************************************************
SeverityDescriptionResourceIn FolderLocationCreation TimeId
2Unhandled exception type SQLExceptionViewnewsAction.javaliaoliao/src/liaoliao/app/web/newsline 182006年9月27日 20:23:552173



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


用打印消息的方法调试看那行错了什么错误信息


行了 谢谢这位大哥了~刚才没有扑获异常~

逻辑有点乱
ResultSet 也没必要返回
楼主再改改
大家再帮你看看
呵呵 我是新手 第一次写这个应用 谢谢大家了~


↑返回目录
前一篇: JSP语句中的链接问题
后一篇: 30分,一个很简单的语法问题,得到参数变量,着急中,急求答案