帮忙改改这个简单的bean,必有重谢。

springouting 2003-04-17 01:59:32
小弟想写个递归读取数据库的bean放到jsp页面里,
可是运行后,输出System.out.println("id="+id);这一句却是在tomcat的控制台里,为什么?还有,我的数据库有数据,条件也满足,为什么没数据输出呢?连这句System.out.println(" test");都没输出,各位大侠帮我改改,谢谢。
package Tree;
import java.sql.*;
public class Test{
private Statement stmt = null;
ResultSet rs = null;
private Connection conn = null;
public Test(){
}
public void OpenConn(String dsn,String uid,String pwd){
try{
dsn = "jdbc:odbc:"+dsn;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(dsn,uid,pwd);
}catch(Exception ex){
System.out.println("aq.executeQuery:"+ex.getMessage());
}
}
public ResultSet executeQuery(String sql){
rs = null;
try{
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}
catch(SQLException ex){
System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;
}
public void executeUpdate(String sql){
stmt = null;
rs = null;
try{
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
stmt.executeQuery(sql);
stmt.close();
conn.close();
}
catch(SQLException ex){
System.out.println("aq.executeQuery:"+ex.getMessage());
}
}
public void closeStmt(){
try{
stmt.close();
}
catch(SQLException ex){
System.err.println("aq.executeQuery:"+ex.getMessage());
}
}
public void closeConn(){
try{
conn.close();
}
catch(SQLException ex){
System.err.println("aq.executeQuery:"+ex.getMessage());
}
}
public void a(int id)
{
try{
OpenConn("tree","","");
String sql="select * from treemenu where par_id = id";
ResultSet rs = executeQuery(sql);
while(rs.next())
{
for(int j=1;j<=rs.getMetaData().getColumnCount();j++)
{
System.out.print(rs.getObject(j)+"\t");
}
System.out.println("<br>");
System.out.println(" test");
}
closeStmt();
closeConn();
System.out.println("id="+id);
if (id==0) return;
else a(--id);
}catch(SQLException e){
System.out.println(e.getMessage());
}
}

}
index.jsp的代码:
<%@ page contentType = "text/html;charset = gb2312"%>
<%@ page language = "java" import="java.sql.*"%>
<jsp:useBean id="TestBean" scope = "page" class = "Tree.Test"/>
<%
TestBean.a(11);
out.println("oo<br>");
%>
...全文
26 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
aleccheung 2003-04-18
  • 打赏
  • 举报
回复
如过你不着急,你还是找点书看看吧。
先学servlet 然后学bean

这样别人给你写了,对你的进步没什么帮助!!
在bean中写一个方法能返回值啊,然后在jsp才能体现啊!
命名太怪异 "a"!
public void a(int id)
是不对,

public String aMethod(int id)
{
String str=""

把结果都传递给str
System.out.println();
改成
str += safsfsa;
..............
return str;
}

springouting 2003-04-18
  • 打赏
  • 举报
回复
可是我用的是递归算法,用返回值的话,太难处理了。请问我该怎么写直接输出。
nettman 2003-04-17
  • 打赏
  • 举报
回复
Learning!
wellsoon 2003-04-17
  • 打赏
  • 举报
回复
着事业是我根据别人的代码改了自己用的,
你再改一下,或许用的上:

(是在表单的Post操作触发的)

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setHeader("Pragma","No-cache");//HTTP 1.1
response.setHeader("Cache-Control","no-cache");//HTTP 1.0
response.setHeader("Expires","0");//防止被proxy
request.setCharacterEncoding("GB2312");//设置编码
HttpSession session= null;
session= request.getSession(true);
PrintWriter out;
String title = "Simple Servlet connecting to DataBase";
response.setContentType("text/html;charset=GB2312");
out = response.getWriter();
out.println("<HTML><HEAD><TITLE>");
out.println(title);
out.println("</TITLE></HEAD><BODY>");
out.println("<H1>" + title + "</H1>");
out.println("<P>This is output from SimpleServlet.");
String driverName = "sun.jdbc.odbc.JdbcOdbcDriver";
Driver d;
Connection con;
Statement stmt;
ResultSet results;
try {
d = (Driver)Class.forName(driverName).newInstance();
con = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=F:\\Jb\\login\\defaultroot\\dbtest.mdb","","");
stmt = con.createStatement();
String sqlstr = "select * from user where userid=\'"+request.getParameter("userid")+"\' and userpass=\'"+request.getParameter("userpass").trim()+"\'" ;
results = stmt.executeQuery(sqlstr);
displayResult(results,out);
stmt.close();
con.close();

}
catch (Exception e) {
out.println("error: " + e.toString());
}
out.println("</BODY></HTML>");
out.close();

}

public void displayResult(ResultSet results,PrintWriter out){
StringBuffer buf = new StringBuffer();
String temp;
try {
ResultSetMetaData rsmd = results.getMetaData();
int numCols = rsmd.getColumnCount();
int i, rowcount = 0;
// get column header info
for (i=1; i <= numCols; i++){
if (i > 1) buf.append(",");
buf.append(rsmd.getColumnLabel(i));
}
buf.append("\n");
while (results.next() && rowcount < 100){
for (i=1; i <= numCols; i++) {
if (i > 1) buf.append(",");
buf.append((results.getString(i)));
}
buf.append("<br>");
rowcount++;
}
out.println("<br>");
out.println(buf.toString());
results.close();

} catch (Exception e) {
out.println("error: " + e.toString());

return;
}
}

springouting 2003-04-17
  • 打赏
  • 举报
回复
能不能帮我改为servlet,谢谢了。
springouting 2003-04-17
  • 打赏
  • 举报
回复
那如何输出到ie中呢?
就算是输出到控制台,为什么没输出这句呢?System.out.println(" test");
数据库的内容也没有输出。
binny 2003-04-17
  • 打赏
  • 举报
回复
gz
nicholaz 2003-04-17
  • 打赏
  • 举报
回复
你在javaBean中用System.out.println("");这个

本来就是要输出到控制台中!没什么问题啊!
hj12 2003-04-17
  • 打赏
  • 举报
回复
学习中

81,092

社区成员

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

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