当前位置: 技术问答>java相关
怎样提高java server与windows客户端之间数据传输速度?
来源: 互联网 发布时间:2015-09-14
本文导语: windows客户端向java server发送查询请求,java server负责从oracle数据库读取数据,然后再回传给客户端。但是当记录多的时候java server处理速度很慢,比如1000多条记录,java sever里执行rs = stmt.executeQuery(sqlstr)后,执行一...
windows客户端向java server发送查询请求,java server负责从oracle数据库读取数据,然后再回传给客户端。但是当记录多的时候java server处理速度很慢,比如1000多条记录,java sever里执行rs = stmt.executeQuery(sqlstr)后,执行一个空循环
while (rs.next()) {}也要差不多20秒,(这是在我自己的机器上,如果在好的服务器应该会快点)如果在循环里面把记录写尽一个outputstream,然后再发给客户端就需要更多时间了。但要客户端等待20多秒是很无法忍受的。请问有什么办法可以大幅度减少java server查询数据库到回传数据库给客户端这个过程所用时间?
while (rs.next()) {}也要差不多20秒,(这是在我自己的机器上,如果在好的服务器应该会快点)如果在循环里面把记录写尽一个outputstream,然后再发给客户端就需要更多时间了。但要客户端等待20多秒是很无法忍受的。请问有什么办法可以大幅度减少java server查询数据库到回传数据库给客户端这个过程所用时间?
|
//DB的一个表映射
class Order implements Serializable{
private int orderID;
private String orderItem;
public Order(int orderID,String orderItem){
this.orderID = orderID;
this.orderItem = orderItem;
}
public int getOrderID(){return orderID;}
public String getOrderItem(){return orderItem;}
}
//服务器端
class server{
//启动RMI
}
//远程接口
interface IRMIControl{
Order[] getOrder() throws java.rmi.RemoteException;
}
//远程接口的具体实现
class RMIControlImp implements IRMIControl{
public Order[] getOrder() throws java.rmi.RemoteException{
//...read data from database
Order[] orders = null;
//if it has n records
//orders = new Order[n];
return orders;
}
}
//客户端调用
class client{
IRMIControl control = null;
public client() {
try {
control = (IRMIControl) Naming.lookup("rmi://:1099/PSRMIControl");
}
catch(Exception e) {
System.out.println("Exception occured: " + e);
}
}
public void getOrder(){
try{
Order[] orders = IRMIControl.getOrders();
}catch(Exception e){
}
}
}
我想说的大概实现思想,ejb感觉也差不多是这样的,
可以参照一下。
class Order implements Serializable{
private int orderID;
private String orderItem;
public Order(int orderID,String orderItem){
this.orderID = orderID;
this.orderItem = orderItem;
}
public int getOrderID(){return orderID;}
public String getOrderItem(){return orderItem;}
}
//服务器端
class server{
//启动RMI
}
//远程接口
interface IRMIControl{
Order[] getOrder() throws java.rmi.RemoteException;
}
//远程接口的具体实现
class RMIControlImp implements IRMIControl{
public Order[] getOrder() throws java.rmi.RemoteException{
//...read data from database
Order[] orders = null;
//if it has n records
//orders = new Order[n];
return orders;
}
}
//客户端调用
class client{
IRMIControl control = null;
public client() {
try {
control = (IRMIControl) Naming.lookup("rmi://:1099/PSRMIControl");
}
catch(Exception e) {
System.out.println("Exception occured: " + e);
}
}
public void getOrder(){
try{
Order[] orders = IRMIControl.getOrders();
}catch(Exception e){
}
}
}
我想说的大概实现思想,ejb感觉也差不多是这样的,
可以参照一下。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。