使用DBLINK连接两数据库用JSP查询的问题

jjiwei 2005-01-08 04:38:31
现有二个数据库一个本地ORACLE一个远程ORACLE(WIN)两台机器通过一条2M的DDN数字链路连接,远程ORACLE是WEB的数据库,内网本地ORACLE是存放客户数据,ORACLE与ORACLE用了DBLINK同义词,WEB登录需要去本地的数据库验证其身份,但是程序更新后发现有时反应速度很慢,从程序上看SQL语句跳转到异常处。后来怀疑是这2M的线路的问题但是检查后排除了,然后细查了其SQL语句的写法发现有些地方有不妥之处也修改完成索引也重建了,刚重建后前面WEB查询速度很快以为解决其问题了,但是后来发现有些时候速度很快有些时候速度很慢,在很慢的时候用同样的SQL语句放到ORACLE数据库查询工具中进行查询发现其速度很快零点几秒就完成了,现在不知道有什么办法来查出这个查询速度慢的原因,前台使用WEBLOGIC,在数据库配置了同义词,在JSP里面直接使用本地数据库的表名,想请教一下各位高手有什么好点子,谢谢!
...全文
59 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjiwei 2005-01-29
  • 打赏
  • 举报
回复
通过很多次的试验在远程WEB服务器上配置了WEBLOGIC上面的ORACLE连接池将Test Reserved Connections与Test Released Connections都使用了,TEST TABLE NAME使用了本地数据库的一张表,应用以后发现通过前台查询全部通过,观察了一个月发现也没有问题,但是后来在本地ORACLE里面发现有很多锁查了一下锁的内容发现都是WEBLOGIC上设置的那个TEST TABLE NAME里面的那个表,不知道这样是不是对于数据库与WEBLOGIC有一定的影响?谢谢!
我的名字叫张帅,我很喜欢JSP。刚刚毕业,还没有找到工作,心里是郁闷的很呀~~~,想在网上找点项目去做,可是网上的大团队都很多,所JSP的项目很难找。 我们欧尚团队一共有四个人。一个美工,三个程序员,曾在东北做过《黑龙江食品质量监督网》、《黑龙江燃油补贴网》等网站,现在正做一个关于网络电影、音乐和MTV的一个音像网站(注:其采用struts2、hibernate、spring等框架技术。这是一个开源的,可供下载原码,这是为了宣传我们团队的一种办法)。 我的QQ是:982670932 希望大家能和我们团队一起学习和交流 在此我们团队有信心有实力承接各种项目。 用法:不用写连接数据库等多余代码(在ConnLink.java文件中修改一下相关属性就可以了,如果不想写分页,在ConnLink.java文件中DBlink()方法可以返回一个Statement对象,然后就可以利用这个返回值去写你想要的代码了),只要建立一个Page对象,调用SelectRS()方法,将SQL语句当前页码和每页要显示的条数正确的写入。SelectRS()会自动返回一个结果集rs,然后用rs遍历输出结果。用getFrist()、getBack()、getLast()、getNext()等方法进行取得上一页的页码,下一面的页码就可以了。 看了之后是不是很心动呢~~~ HOHO~~其实我的代码有很多不足,例如:是不是可以做成通用的分页?也可以把DBlink()中的conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jiuzhou","root","123456");用的连接参数写在xml中生成一个JAR包,这样才更有扩展性,你说呢~~。希望高手能继续改良,让这段代码更精一些。HOHO~~~~改完之的一定要发到网上供大家参考和使用,HOHO,千万另忘了告诉我呀,我的QQ:153815077
用法:不用写连接数据库等多余代码(在ConnLink.java文件中修改一下相关属性就可以了,如果不想写分页,在ConnLink.java文件中DBlink()方法可以返回一个Statement对象,然后就可以利用这个返回值去写你想要的代码了),只要建立一个Page对象,调用SelectRS()方法,将SQL语句当前页码和每页要显示的条数正确的写入。SelectRS()会自动返回一个结果集rs,然后用rs遍历输出结果。用getFrist()、getBack()、getLast()、getNext()等方法进行取得上一页的页码,下一面的页码就可以了。 看了之后是不是很心动呢~~~ HOHO~~其实我的代码有很多不足,例如:是不是可以做成通用的分页?也可以把DBlink()中的conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jiuzhou","root","123456");用的连接参数写在xml中生成一个JAR包,这样才更有扩展性,你说呢~~。希望高手能继续改良,让这段代码更精一些。HOHO~~~~改完之的一定要发到网上供大家参考和使用。 刚刚才发现Page.java文件是空的,在这里我就加上吧!实在是不好意思了 package com.SpreadPage; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import com.DateBase.*; public class Page extends ConnLink{ private Statement stmt=null; private ResultSet rs=null; private int row=0; private int num=0; private int page=0; private int list=0; //搜索去向 搜索条件 当前第几页 每页条数 public ResultSet SelectRS(String select,int page_num,int page) { this.num=page_num; this.page=page; String sql=select+" limit "+(page_num*page)+","+(page_num*page+page); //System.out.println(sql); try { stmt=DBlink(); rs=stmt.executeQuery(select); rs.first(); rs.last(); this.row=rs.getRow(); System.out.println(sql); if(rs!=null) { rs.close(); } if(stmt==null) { System.out.println("Stmt无连接"); return null; } rs=stmt.executeQuery(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return rs; } //获得总记录数 public int getRow() { return row; } //第一页 public int getFrist() { return 0; } //最后一页 public int getBack() { if(getRow()%page==0) { return getRow()/page; } return (getRow()/page)+1; } //上一页 public int getLast() { if(num<=0) { return 0; } return (num-1); } //下一页 public int getNext() { int back=getBack(); if(num>=back) { return num; } return (num+1); } //当前页的条数 public int getNow() { try { rs.first(); rs.last(); list=rs.getRow(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } //当前第几页 public int getPage() { int sum=(num*page-page)+1; if(getRow()

81,094

社区成员

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

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