Java论坛网»Java技术»请教高手:在WebService里,业务逻辑Bean从数据库中获取的多条记录怎么传到客户端接收

请教高手:在WebService里,业务逻辑Bean从数据库中获取的多条记录怎么传到客户端接收

问?:
我写的这样一个方法怎么也不行(我用的是Tomcat容器)
public java.util.Collection queryAll() {
List list = new ArrayList();
Connection con = this.getConnection();
String sql = "select * from Employee";
try {
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
while(rs.next()) {
List sub = new ArrayList();
sub.add(new Integer(rs.getInt(1)));
sub.add(rs.getString(2));
sub.add(rs.getString(3));
list.add(sub);
}
} catch (Exception ex) {
ex.printStackTrace();
}
return list;
}
答!: 1:
我建议不要采用arraylist作为参数对象,这样做的话可能会在序列化上有问题,最好采用业务逻辑Bean的对象数组,这个是肯定不会有问题的.
答!: 2:
用rmi,可以调用吧
答!: 3:
可以这样调用,(jstl)比如说,你的list里面有a,b,c(当然就是你给出来的帖子里面的数据库中的东西)1.你要在你的servlet里面把你的list,session一个变量,比如:session.setAttribute("list",list)2.在你的jsp里面可以这样写:${list.a},${list.b}不过有一个包的关于jstl
答!: 4:
参考下面垃圾代码:
/**
* 查询所有AA008表中的数据,返回值以AA008 的java bean数组
* @return AA008 的java bean数组
* @throws java.io.IOException
* @throws SQLException
*/
public Aa008[] doPost() throws java.io.IOException,SQLException{


Aa008[] monthDown=null;
long startTime = System.currentTimeMillis();
ResultSet rs,rs1 = null;
String selectSqlStr = "";
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.println("请开始!");
SqlBean aae010Bean = new SqlBean();
String countSqlStr ="SELECT count(*) FROM AA008";
System.out.println(countSqlStr);
rs1 = aae010Bean.executeQuery(countSqlStr);
int s =0;
if (rs1.next()) {
s = rs1.getInt(1);
}
System.out.println("取得的总记录数量:"+s);
int i = s;

try {

selectSqlStr ="SELECT * FROM AA008";

rs = aae010Bean.executeQuery(selectSqlStr);
System.out.println("Start Insert JDYB");
monthDown=new Aa008[i];
int a=0;
while (rs.next() && (a<i)) {

Aa008 urs = new Aa008();

urs.setAab001(rs.getString("Aab001"));
urs.setAai002(rs.getString("Aai002"));
urs.setAai003(rs.getString("Aai003"));
urs.setAai004(rs.getString("Aai004"));
urs.setAai005(rs.getString("Aai005"));
urs.setAai006(rs.getLong("Aai006"));
urs.setAai007(rs.getLong("Aai007"));
urs.setAai008(rs.getLong("Aai008"));
urs.setAai009(rs.getLong("Aai009"));
urs.setAai010(rs.getLong("Aai010"));
urs.setAai011(rs.getLong("Aai011"));
urs.setAai012(rs.getLong("Aai012"));
urs.setAai013(rs.getLong("Aai013"));
urs.setAai014(rs.getLong("Aai014"));
urs.setAai015(rs.getLong("Aai015"));
urs.setAai016(rs.getLong("Aai016"));
urs.setAai017(rs.getLong("Aai017"));
urs.setAai019(rs.getLong("Aai019"));
urs.setAai020(rs.getLong("Aai020"));
urs.setAai021(rs.getLong("Aai021"));
urs.setAai022(rs.getLong("Aai022"));
urs.setAai023(rs.getLong("Aai023"));
urs.setAai024(rs.getLong("Aai024"));
urs.setAai025(rs.getLong("Aai025"));
urs.setAai026(rs.getLong("Aai026"));
urs.setAai027(rs.getString("Aai027"));
urs.setAai028(rs.getLong("Aai028"));
urs.setAai029(rs.getLong("Aai029"));
urs.setAai030(rs.getLong("Aai030"));

monthDown[a] = (Aa008) urs;

System.out.println("第"+(a+1)+"条记录");
System.out.println("第一字段值:"+monthDown[a].getAab001());
System.out.println("第getAai002字段值:"+monthDown[a].getAai002());
System.out.println("第getAai003字段值:"+monthDown[a].getAai003());
System.out.println("第getAai004字段值:"+monthDown[a].getAai004());
System.out.println("第getAai005字段值:"+monthDown[a].getAai005());
System.out.println("第getAai006字段值:"+monthDown[a].getAai006());
System.out.println("第getAai007字段值:"+monthDown[a].getAai007());
System.out.println("第getAai008字段值:"+monthDown[a].getAai008());
System.out.println("第getAai009字段值:"+monthDown[a].getAai009());
System.out.println("第getAai010字段值:"+monthDown[a].getAai010());
System.out.println("第getAai011字段值:"+monthDown[a].getAai011());
System.out.println("第getAai012字段值:"+monthDown[a].getAai012());
System.out.println("第getAai013字段值:"+monthDown[a].getAai013());
System.out.println("第getAai014字段值:"+monthDown[a].getAai014());
System.out.println("第getAai015字段值:"+monthDown[a].getAai015());
System.out.println("第getAai016字段值:"+monthDown[a].getAai016());
System.out.println("第getAai017字段值:"+monthDown[a].getAai017());
System.out.println("第getAai018字段值:"+monthDown[a].getAai018());
System.out.println("第getAai019字段值:"+monthDown[a].getAai019());
System.out.println("第getAai020字段值:"+monthDown[a].getAai020());
System.out.println("第getAai021字段值:"+monthDown[a].getAai021());
System.out.println("第getAai022字段值:"+monthDown[a].getAai022());
System.out.println("第getAai023字段值:"+monthDown[a].getAai023());
System.out.println("第getAai024字段值:"+monthDown[a].getAai024());
System.out.println("第getAai025字段值:"+monthDown[a].getAai025());
System.out.println("第getAai026字段值:"+monthDown[a].getAai026());
System.out.println("第getAai027字段值:"+monthDown[a].getAai027());
System.out.println("第getAai028字段值:"+monthDown[a].getAai028());
System.out.println("第getAai029字段值:"+monthDown[a].getAai029());
System.out.println("第getAai030字段值:"+monthDown[a].getAai030());

a++;


}

} catch (Exception e) {

System.out.println(e.getMessage());
e.printStackTrace();
} finally {




aae010Bean.closeConnection();
aae010Bean.closeConnection();
System.out.println("最后完事了:");

}


long endTime = System.currentTimeMillis();
System.out.println("执行需要时间:"+(endTime - startTime) + "ms");


return monthDown;
}
答!: 5:
AA008 的java bean代码:

/**
* 该java类对应数据库表aa008的java类,用于返回表AA008中数据
* @author Administrator
*
*/
public class Aa008 {


private String Aab001;
private String Aai002; //日期类型
private String Aai003; //日期类型
private String Aai004;
private String Aai005;
private long Aai006;
private long Aai007;
private long Aai008;
private long Aai009;
private long Aai010;
private long Aai011;
private long Aai012;
private long Aai013;
private long Aai014;
private long Aai015;
private long Aai016;
private long Aai017;
private long Aai018;
private long Aai019;
private long Aai020;
private long Aai021;
private long Aai022;
private long Aai023;
private long Aai024;
private long Aai025;
private long Aai026;
private String Aai027; //日期类型
private long Aai028;
private long Aai029;
private long Aai030;

public String getAab001() {
return Aab001;
}
public void setAab001(String aab001) {
Aab001 = aab001;
}
public String getAai002() {
return Aai002;
}
public void setAai002(String aai002) {
Aai002 = aai002;
}
public String getAai003() {
return Aai003;
}
public void setAai003(String aai003) {
Aai003 = aai003;
}
public String getAai004() {
return Aai004;
}
public void setAai004(String aai004) {
Aai004 = aai004;
}
public String getAai005() {
return Aai005;
}
public void setAai005(String aai005) {
Aai005 = aai005;
}
public long getAai006() {
return Aai006;
}
public void setAai006(long aai006) {
Aai006 = aai006;
}
public long getAai007() {
return Aai007;
}
public void setAai007(long aai007) {
Aai007 = aai007;
}
public long getAai008() {
return Aai008;
}
public void setAai008(long aai008) {
Aai008 = aai008;
}
public long getAai009() {
return Aai009;
}
public void setAai009(long aai009) {
Aai009 = aai009;
}
public long getAai010() {
return Aai010;
}
public void setAai010(long aai010) {
Aai010 = aai010;
}
public long getAai011() {
return Aai011;
}
public void setAai011(long aai011) {
Aai011 = aai011;
}
public long getAai012() {
return Aai012;
}
public void setAai012(long aai012) {
Aai012 = aai012;
}
public long getAai013() {
return Aai013;
}
public void setAai013(long aai013) {
Aai013 = aai013;
}
public long getAai014() {
return Aai014;
}
public void setAai014(long aai014) {
Aai014 = aai014;
}
public long getAai015() {
return Aai015;
}
public void setAai015(long aai015) {
Aai015 = aai015;
}
public long getAai016() {
return Aai016;
}
public void setAai016(long aai016) {
Aai016 = aai016;
}
public long getAai017() {
return Aai017;
}
public void setAai017(long aai017) {
Aai017 = aai017;
}
public long getAai018() {
return Aai018;
}
public void setAai018(long aai018) {
Aai018 = aai018;
}
public long getAai019() {
return Aai019;
}
public void setAai019(long aai019) {
Aai019 = aai019;
}
public long getAai020() {
return Aai020;
}
public void setAai020(long aai020) {
Aai020 = aai020;
}
public long getAai021() {
return Aai021;
}
public void setAai021(long aai021) {
Aai021 = aai021;
}
public long getAai022() {
return Aai022;
}
public void setAai022(long aai022) {
Aai022 = aai022;
}
public long getAai023() {
return Aai023;
}
public void setAai023(long aai023) {
Aai023 = aai023;
}
public long getAai024() {
return Aai024;
}
public void setAai024(long aai024) {
Aai024 = aai024;
}
public long getAai025() {
return Aai025;
}
public void setAai025(long aai025) {
Aai025 = aai025;
}
public long getAai026() {
return Aai026;
}
public void setAai026(long aai026) {
Aai026 = aai026;
}
public String getAai027() {
return Aai027;
}
public void setAai027(String aai027) {
Aai027 = aai027;
}
public long getAai028() {
return Aai028;
}
public void setAai028(long aai028) {
Aai028 = aai028;
}
public long getAai029() {
return Aai029;
}
public void setAai029(long aai029) {
Aai029 = aai029;
}
public long getAai030() {
return Aai030;
}
public void setAai030(long aai030) {
Aai030 = aai030;
}



}
答!: 6:
客户端调用代码:
创建一个和服务端一样的AA008 的java bean

调用Web服务发布的doPost() 方法(发布服务会吧?),得到AA008 的java bean数组,数组里的每一条记录就是数据里的相应记录。
答!: 7:
看看这个就明白了

http://blog.csdn.net/yown/archive/2006/07/03/869523.aspx
答!: 8:
mark一下

相关JAVA教程:
急!!!servlet如何实现读取一个绝对路径文件展现到页面
如何填充自己绘制的图形?
求助::hibernate tool 在eclipse3.2下的使用(代码生成??)
jsp 文本显示位置错乱
怎样做一个下拉框
为什么要使用:Proxy.newProxyInstance()
精通JTable的高手请进
学习Swing最好的书的序言
Javabean和Jsp传值问题
请问hibernate能否动态映射数据库表
myeclipse+struts+tomcat问题
麻烦各位介绍一个处理pdf,word的开源包(支持中文,java写的jar包)