用java做一个c/s架构的图书馆管理系统,客户端与服务器端的交互
如上,当客户端提出一个查询图书的请求,服务器得到了多条结果,要怎么发给客户端呢?我采用的是将每条记录循环发送,,但有问题,部分代码如下:服务器端:ResultSetrs=...
如上,当客户端提出一个查询图书的请求,服务器得到了多条结果,要怎么发给客户端呢?我采用的是将每条记录循环发送,,但有问题,部分代码如下:
服务器端:
ResultSet rs=bm.queryNotOverBook(sql, paras);
Message m2=new Message();
try {
while(rs.next())
{
m2.setMesType(13);
m2.setBookId(rs.getString(1));
m2.setBookName(rs.getString(2));
m2.setBookWriter(rs.getString(3));
m2.setPublisher(rs.getString(4));
m2.setBorrow_date(rs.getDate(5).toString());
m2.setReturn_date(rs.getDate(6).toString());
ObjectOutputStream oos=new ObjectOutputStream(s.getOutputStream());
oos.writeObject(m2);
}
} catch (Exception e) {
e.printStackTrace();
}
客户端接收:
ArrayList al=new ArrayList();
ObjectInputStream ois=null;
try{
while(true)
{
ois= new ObjectInputStream(s.getInputStream());
Message m = (Message) ois.readObject();
if (m!=null) {
al.add(m);
} else {
break;
}
}
}catch(Exception e)
{
e.printStackTrace();
}
return al;
Message类作为传送的单位:
public class Message implements java.io.Serializable{
//mesType:消息种类:“1”表示添加图书,“2”表示修改图书,“3”表示删除图书,“4”表示添加读者,
//“5”表示修改读者,“6”表示删除读者,“7”表示查询过期图书的数目,“8”表示查询过期图书
//的超期天数,“9”表示续借图书,“10”表示查询在架图书,“11”表示修改密码,“12”表示查询未过期
//的图书 ,“13”表示操作成功,“14”表示操作失败,"15"表示查询读者
private int mesType;
private String bookId;
private String bookName;
private String bookWriter;
private String publisher;
private String publish_time;
private String bookContent;
private String bookNum;
private String availNum;
private String readerId;
private String readerSex;
private String readerName;
private String readerDept;
private String readerGrade;
private String borBookNum;
private String overTimeNum;
private String notOverNum;
private String borrow_date;
private String return_date;
剩下的事上面的变量的get和set方法
}
我遇到的情况是客户端接收到了所有的查询结果,但最后没有退出while循环,希望哪位高人指点一下,不胜感激。若想详聊,加QQ:610445188 展开
服务器端:
ResultSet rs=bm.queryNotOverBook(sql, paras);
Message m2=new Message();
try {
while(rs.next())
{
m2.setMesType(13);
m2.setBookId(rs.getString(1));
m2.setBookName(rs.getString(2));
m2.setBookWriter(rs.getString(3));
m2.setPublisher(rs.getString(4));
m2.setBorrow_date(rs.getDate(5).toString());
m2.setReturn_date(rs.getDate(6).toString());
ObjectOutputStream oos=new ObjectOutputStream(s.getOutputStream());
oos.writeObject(m2);
}
} catch (Exception e) {
e.printStackTrace();
}
客户端接收:
ArrayList al=new ArrayList();
ObjectInputStream ois=null;
try{
while(true)
{
ois= new ObjectInputStream(s.getInputStream());
Message m = (Message) ois.readObject();
if (m!=null) {
al.add(m);
} else {
break;
}
}
}catch(Exception e)
{
e.printStackTrace();
}
return al;
Message类作为传送的单位:
public class Message implements java.io.Serializable{
//mesType:消息种类:“1”表示添加图书,“2”表示修改图书,“3”表示删除图书,“4”表示添加读者,
//“5”表示修改读者,“6”表示删除读者,“7”表示查询过期图书的数目,“8”表示查询过期图书
//的超期天数,“9”表示续借图书,“10”表示查询在架图书,“11”表示修改密码,“12”表示查询未过期
//的图书 ,“13”表示操作成功,“14”表示操作失败,"15"表示查询读者
private int mesType;
private String bookId;
private String bookName;
private String bookWriter;
private String publisher;
private String publish_time;
private String bookContent;
private String bookNum;
private String availNum;
private String readerId;
private String readerSex;
private String readerName;
private String readerDept;
private String readerGrade;
private String borBookNum;
private String overTimeNum;
private String notOverNum;
private String borrow_date;
private String return_date;
剩下的事上面的变量的get和set方法
}
我遇到的情况是客户端接收到了所有的查询结果,但最后没有退出while循环,希望哪位高人指点一下,不胜感激。若想详聊,加QQ:610445188 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询