从数据库中读取数据后的显示问题

sadls 2010-12-09 12:13:22
我在bean中写了一个查询多条数据的方法,用的ArrayList。现在的问题是,集合中有很多从库中查出来的title字段的内容,但我想在页面中的某个地方只显示id为1的title字段的内容,这个如何实现?
还有就是,我又写了一个查询一条数据的方法,代码如下:

public book find(int id){
Connection conn=linkDB();
String sql="select * from p where id="+id;
Statement stmt;
book b=new book();
try {
stmt = (Statement)conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
rs.next();

b.setTitle1(rs.getString("title1"));
b.setTitle2(rs.getString("title2"));
b.setImage(rs.getString("image"));
b.setContent(rs.getString("content"));
b.setPrice(rs.getInt("price"));
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeDB(conn);
}
return b;
}


我在页面中是这么写的,<% dbControl db = new dbControl(); %><% db.find(1).getTitle1(); %>,我是想显示出id为1的title1字段的内容,但挂上TOMCAT后db.find(1).getTitle1(); 这句报错了,我哪里写的不对请帮忙指正,谢~~
...全文
169 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sadls 2010-12-09
  • 打赏
  • 举报
回复
5555555
恕我愚笨,刚会使用MyEclipse不久,断点之类的还不怎么会使用。=.=||
eswn 2010-12-09
  • 打赏
  • 举报
回复
这里面可能是你的数据库连接取得失败,这句打断点:
conn=DriverManager.getConnection("jdbc:odbc:book");
conn是不是为空?
sadls 2010-12-09
  • 打赏
  • 举报
回复
错误日志如下:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause

java.lang.NullPointerException
bean2.dbControl.closeDB(dbControl.java:99)
bean2.dbControl.find(dbControl.java:89)
org.apache.jsp.index1_jsp._jspService(index1_jsp.java:134)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.

sadls 2010-12-09
  • 打赏
  • 举报
回复

package bean2;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import bean2.book;

public class dbControl {
/*连接数据库*/
public Connection linkDB()
{
Connection conn=null;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:book");
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}

/*查询多条数据*/
public ArrayList list()
{
Connection conn=linkDB();
String sql="select * from p";
ArrayList list=new ArrayList();
Statement stmt = null;
try {
stmt=(Statement)conn.createStatement();
} catch (SQLException e) {

e.printStackTrace();
}
ResultSet rs = null;
try {
rs = stmt.executeQuery(sql);
} catch (SQLException e) {

e.printStackTrace();
}
try {
while(rs.next())
{
book b=new book();
b.setId(rs.getInt("id"));
b.setTitle1(rs.getString("title1"));
b.setTitle2(rs.getString("title2"));
b.setImage(rs.getString("image"));
b.setContent(rs.getString("content"));
b.setPrice(rs.getInt("price"));
list.add(b);
}
} catch (SQLException e) {

e.printStackTrace();
}
return list;
}

/*查找一条记录*/
public book find(int id){
Connection conn=linkDB();
String sql="select * from p where id="+id;
Statement stmt;

book b=new book();
try {
stmt = (Statement)conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
rs.next();

b.setTitle1(rs.getString("title1"));
b.setTitle2(rs.getString("title2"));
b.setImage(rs.getString("image"));
b.setContent(rs.getString("content"));
b.setPrice(rs.getInt("price"));

} catch (SQLException e) {
e.printStackTrace();
}finally{
closeDB(conn);
}
return b;
}

/*关闭数据库*/
public void closeDB(Connection conn)
{
try
{
conn.close();
}
catch (SQLException e)
{
e.printStackTrace();
}
}

}




package bean2;

public class book {
String title1;
String title2;
String image;
String content;
int id;
int price;
public String getTitle1() {
return title1;
}
public void setTitle1(String title1) {
this.title1 = title1;
}
public String getTitle2() {
return title2;
}
public void setTitle2(String title2) {
this.title2 = title2;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}

sadls 2010-12-09
  • 打赏
  • 举报
回复
晕了...报错又变了
我把所有代码和错误日志都贴上来,大侠帮忙看一眼吧~
Kevin-Kung 2010-12-09
  • 打赏
  • 举报
回复
你先仔细看下是报的什么错误...看起来是没错。有可能是牵扯到其他的页面
eswn 2010-12-09
  • 打赏
  • 举报
回复
把错误日志贴上来吧。可能出错的地方太多了。
sadls 2010-12-09
  • 打赏
  • 举报
回复
哈 解决了
连库方法里应该是return conn,我给写成return null造成了错误。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧