注册 登录
编程论坛 J2EE论坛

javabean封装数据库问题

无理取闹 发布于 2006-08-30 10:26, 1410 次点击
我将数据库封装在javabean里 再从jsp输出 但是什么都显示不出来
jsp:
<%@page contentType="text/html;charset=gb2312"%>
<%@page pageEncoding="gb2312"%>
<%request.setCharacterEncoding("gb2312");%>
<%@page import="my02.*"%>
<%@page import="java.util.*"%>

<jsp:useBean id="mydb" scope="session" class="my02.MyDbGet"/>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>my02</title>
</head>
<body>
<center>test</center>
<%
ArrayList array=mydb.talk();
for(int i=0;i<array.size();i++)
{
Speak speak=(Speak)array.get(i);%>
<%=speak.getName()%>
<%=speak.getTalk()%>
<%=speak.getTime()%>

<%}%>
</body>
</html>
db封装:

package my02;


import java.sql.*;
import java.io.*;
import java.util.*;

public final class MyDB
{

private static String durl="jdbc:mysql://localhost:3306/mytalk?user=root&password=iloveyy" +
"&useUnicode=true&charcterEncoding=gb2312";

private static Connection conn=null;
private ArrayList array;
public MyDB()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException e)
{
System.out.println(e);
}
try
{
conn=DriverManager.getConnection(durl);
}
catch(SQLException e)
{
System.out.println(e);
}
}
public void remove()
{
try
{
conn.close();
}
catch(SQLException e)
{
System.out.println(e);
}
}
public ArrayList talk()
{
array=new ArrayList();
try
{
String str="select name,talk,time"+"from my02";
PreparedStatement prepStmt=conn.prepareStatement(str);
ResultSet rs=prepStmt.executeQuery();
while(rs.next())
{
String str1=rs.getString(1);
String str2=rs.getString(2);
String str3=rs.getString(3);
Speak speak=new Speak(str1,str2,str3);
array.add(speak);
}
prepStmt.close();
}
catch(Exception e)
{
System.out.println(e);
}
return array;
}
}






package my02;

/**
*
* @author root
*/
public class Speak
{
private String name;
private String talk;
private String time;
public Speak(String name,String talk,String time)
{
this.name=name;
this.talk=talk;
this.time=time;
}
public String getName()
{
return this.name;
}
public String getTalk()
{
return this.talk;
}
public String getTime()
{
return this.talk;
}

}





package my02;

import java.util.*;
public class MyDbGet
{

private MyDB mydb=null;
public MyDbGet()
{
try
{
this.mydb=new MyDB();
}
catch(Exception e)
{
System.out.println(e);
}
}
public ArrayList talk() throws Exception
{
return mydb.talk();
}

}

29 回复
#2
xxxxx522006-08-30 11:32

关注中~

看贴回帖好习惯~

#3
无理取闹2006-08-30 11:36
就不能帮我看看?
#4
xxxxx522006-08-30 11:40
看不懂。。。一年没弄java了~
你说我还能说什么
#5
飘飘叶子2006-08-30 12:30
你把Speak类的构造函数改为空,再设置set方法,设置属性的时候用set进行设置,在取数据的时候使用String str1=rs.getString("");里面填数据库表的字段名。改了之后再试试看
#6
无理取闹2006-08-30 12:47
改过了 没有效果
String str1=rs.getString("name");
String str2=rs.getString("talk");
String str3=rs.getString("time");
Speak speak=new Speak();
speak.setName(str1);
speak.setTalk(str2);
speak.setTime(str3);


package my02;

/**
*
* @author root
*/
public class Speak
{
private String name;
private String talk;
private String time;
public Speak()
{

}
public void setName(String name)
{
this.name=name;
}
public void setTalk(String talk)
{
this.talk=talk;
}
public void setTime(String time)
{
this.time=time;
}
public String getName()
{
return this.name;
}
public String getTalk()
{
return this.talk;
}
public String getTime()
{
return this.talk;
}

}
#7
NqIceCoffee2006-08-30 13:42
CN也关注一下,刚刚学JSP,呵呵,向大虾学习.
#8
vlinux2006-08-30 13:43
伤心欲绝,伤心欲绝,伤心欲绝,伤心欲绝....
#9
NqIceCoffee2006-08-30 13:45
楼上的,你怎么到哪都是这两句?
#10
z1089799792006-08-30 14:35

你看看页面上的
ArrayList array=mydb.talk();
里面有没有东西

#11
无理取闹2006-08-30 15:02
怎么看啊?
#12
飘飘叶子2006-08-30 15:36
你用Statement代替PreparedStatement再试试看,还有,把String str="select name,talk,time"+"from my02";改成String str="select name,talk,time from my02";跟结果应该没关系……只是看着不舒服……呵呵
还有,在得到数据的那里加上System.out输出看看有没有得到数据,一点点把问题缩小
#13
z1089799792006-08-30 15:41

<%=array%>
y要是页面上不显示就应该是数据库查询那的事
显示的话我就不清楚了

#14
z1089799792006-08-30 15:45
如果你的工具没有断点的话就多用点System.out找问题
jsp页面上用<%=%>
#15
寂寞天涯人2006-08-30 17:20

同样的问题有半年了
就是对数据库的数据读不出来

#16
无理取闹2006-08-30 18:49
用<%=array%>输出了个"[]"号 是什么意思???
#17
无理取闹2006-08-30 19:03
问题出在String str="select name,talk,time"+"from my02";
写成String str="select name,talk,time from my02";就能输出数据
但是不明白为什么会这样 这两句竟然不等价!!!??

#18
无理取闹2006-08-30 19:35
又出现问题了
mysql数据库中的中文数据无法正常显示!
怎么解决
#19
z1089799792006-08-30 19:41
以下是引用韩峰在2006-8-30 18:49:16的发言:
用<%=array%>输出了个"[]"号 是什么意思???

array为空的
所以页面上没有东西

#20
无理取闹2006-08-30 19:43
看看我18楼
#21
z1089799792006-08-30 19:45
以下是引用韩峰在2006-8-30 19:03:31的发言:
问题出在String str="select name,talk,time"+"from my02";
写成String str="select name,talk,time from my02";就能输出数据
但是不明白为什么会这样 这两句竟然不等价!!!??

String str="select name,talk,time"+"from my02";
错的 少个空格
String str="select name,talk,time"+" from my02";
这样应该也可以
不过一般都是写在1个""里看着比较舒服

#22
z1089799792006-08-30 19:46
我不懂mysql
#23
z1089799792006-08-30 20:16
以下是引用韩峰在2006-8-30 19:35:09的发言:
又出现问题了
mysql数据库中的中文数据无法正常显示!
怎么解决

乱码问题可以试试
byte[] tmpbyte=null;
tmpbyte=str.getBytes("ISO8859_1");
str=new String(tmpbyte,"GBK");
现在的str应该是中文

#24
无理取闹2006-08-30 20:38

还是谢谢你了

#25
snowingsky2006-08-31 13:00

我试了一下<% out.println(array.size());%> 结果显示为0,这说明你的array里根本没内容,进一步也就是说没有从数据库中读到数据。

#26
snowingsky2006-08-31 13:07
不好意思,刚注意到str="select name,talk,time"+"from my02" VS str="select name,talk,timefrom my02"
#27
无理取闹2006-08-31 14:46
怎么解决mysql里中文数据正常输出
原来那个问题解决了!!!
#28
snowingsky2006-08-31 14:56

你现在说的无法正常显示是指mysql中本身的数据就不正常还是读到网页上以后显示不正常?

#29
snowingsky2006-08-31 15:41

乱码的原因是多种的,回帖里不能挂附件,我重个新贴吧。

#30
无理取闹2006-08-31 21:26
读到网页上以后显示不正常
1