JSP连数据库的速度是不是非常的慢?

hai3qing 2004-05-09 02:35:13
我用这样的代码连库,但调用的时候非常的慢。请问是什么原因?
<%

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DB_SMS";
//pubs為你的數據庫的
String user="s";
String password="s";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

%>
...全文
83 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
wandou999 2004-05-09
  • 打赏
  • 举报
回复
放到BEAN试试!!
3891681 2004-05-09
  • 打赏
  • 举报
回复

import java.sql.* ;

public class DBConn{

String DBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";//DataBase Driver
String url="jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=''";
String username="sa"; //DataBase user
String password=""; //DataBase password
Connection conn=null;
PreparedStatement sqlstate=null;

//Create
public DBConn() throws SQLException{
try
{
Class.forName(DBDriver);
}catch(ClassNotFoundException e){}
}

//execute query,get resultset
public ResultSet executeQuery(String sql) throws SQLException{
if(conn==null)
{
conn=DriverManager.getConnection(url,username,password);
}
ResultSet rs=null;
try
{
sqlstate=conn.prepareStatement(sql);
rs=sqlstate.executeQuery();
}catch(SQLException e){}
return rs;
}

//execute query,no resultset
public String executeUpdate(String sql) throws SQLException{
String revalue="1";
if(conn==null)
{
conn=DriverManager.getConnection(url,username,password);
}
try
{
sqlstate=conn.prepareStatement(sql);
sqlstate.executeUpdate();
}catch(SQLException e){revalue="0";}
return revalue;
}

//execute storeproc
public String executeStoreProc(String sql) throws SQLException{
String revalue="0";
if(conn==null)
{
conn=DriverManager.getConnection(url,username,password);
}
try
{
CallableStatement cstmt=conn.prepareCall(sql);
cstmt.registerOutParameter(1,java.sql.Types.VARCHAR);
cstmt.executeUpdate();
revalue=cstmt.getString(1);
cstmt.close();
cstmt=null;
}catch(SQLException e){}
return revalue;
}

//close
public void close() throws SQLException{
try
{
if(sqlstate!=null){sqlstate.close();sqlstate=null;}
if(conn!=null){conn.close();conn=null;}
}catch(SQLException e){}
}
}


试下这个:)
lhbf 2004-05-09
  • 打赏
  • 举报
回复
自己随手写一个连接池程序往往通不过压力测试。
建议使用经过考验的连接池程序,如:poolman-2.0.4
另一种选择就是使用诸如struts架构中的连接池。
hai3qing 2004-05-09
  • 打赏
  • 举报
回复
谁能给个javabean连数据库的例子,在网上没有找到
gzwilliam 2004-05-09
  • 打赏
  • 举报
回复
up
joy19 2004-05-09
  • 打赏
  • 举报
回复
最好的办法就是你写一个javabean连接数据库,在每一个页面都调用这个javabean这样就能增加一点速度!方法就是你写一个连接代码,然后编译生成class文件,放在classes文件夹中,在页面调用的时候你就写<jsp:useBean id="aaa" scope="session" class="bbb.ccc"/>其中bbb是你的包名字,ccc是你的类名字!
lyilei 2004-05-09
  • 打赏
  • 举报
回复
如果能够配置好连接池,那样最好了。因为可以有效的管理你的连接资源。
但是如果配置不好,那么可以采取将你的数据库连接封装到JAVABEAN中的做法。在需要数据库连接的地方直接的调用bean,目前的网络上有许多这些方面的代码的。

楼主可以搜索一下。
hai3qing 2004-05-09
  • 打赏
  • 举报
回复
我用SQLserver2000配连接池
赔了一天了还是出错,由谁配成功过,给说说怎么配的
ryscore 2004-05-09
  • 打赏
  • 举报
回复
同意 nc201(Bricklayer)

用连接池把连接管理交给容器,性能会提升不少
tianruoyou 2004-05-09
  • 打赏
  • 举报
回复
to:charry135(陈月),opparts()
引入javabean的方法可以避免每次执行数据库连接,不是一样都会调用连接方法吗?
Philzzf 2004-05-09
  • 打赏
  • 举报
回复
用连接池啊
goole 搜 "java 连接池"会有答案的
Arias 2004-05-09
  • 打赏
  • 举报
回复
在页面上一般建议是不要把直接的数据库连接什么的写在页面上。
因为建立一个数据库的连接是很慢的,涉及教多的数据库操作在页面上的话,不利于页面的显示
所以建议把数据库的一些基本操作用类来封装实现,这样可以保持页面简洁与快速的显示!
hai3qing 2004-05-09
  • 打赏
  • 举报
回复
放在外面那怎么调用
用<%@include file="连接数据库"%>行吗
hai3qing 2004-05-09
  • 打赏
  • 举报
回复
我看很多书上也是在页面上连的数据库
ryscore 2004-05-09
  • 打赏
  • 举报
回复
上面说的就差不多了,尽量把数据库连接放到jsp之外,jsp刷新太频繁,用这种方式耗服务器资源非常厉害
hai3qing 2004-05-09
  • 打赏
  • 举报
回复
opparts()
能具体地说一下吗?刚学,这得不太明白。
ryscore 2004-05-09
  • 打赏
  • 举报
回复
数据库的连接跟很多因素都有关系,比如网络状况、数据库服务器性能等等
hai3qing 2004-05-09
  • 打赏
  • 举报
回复
为什么?谁知道?
玄玥 2004-05-09
  • 打赏
  • 举报
回复
我认为是每次调用一次JSP页面就要执行一次连接数据库的代码,这样自然使机器速度比较慢,最好使将连接数据库的代码封装成javaBean中,每次只要引入该javaBean即可。反正我是这么做的。具体的代码,网上有好多。
opparts 2004-05-09
  • 打赏
  • 举报
回复
谁让你在JSP里面连接数据库了

你每次刷新下JSP画面,数据库又从新连接一次,再好的数据库

的连接池的资源也被搞死掉了,

JSP 负责显示画面数据(仅仅显示)

SERVLET 来做数据库处理.

自己定义一个DB连接类.

取得连接,然后可以共同使用.减少DB的连接
加载更多回复(1)
??防止你的网站数据丢失! ??大部分虚拟主机提供的数据库都没有提供备份服务,即使有也是至少1周才备份一次。而且通常虚拟主机都没有双机容错和硬盘镜像等数据保障方案,万一服务器硬盘损坏或者运行过程中遭黑客袭击都可能导致数据丢失,数据丢失造成损失通常无法弥补,尤其对于连续运行、每天都有新数据的网站。解决的唯一办法就是备份数据到自己的机器。 ??对于辛辛苦苦经营一个网站的任何站长来说,也都会希望定时把自己的网站数据库内容备份下来,而使用现有的备份方法,如用PHPmyAdmin带的功能,不仅操作复杂,只能手动备份,而且速度,由于服务器执行时间限制,对于几十M、上百M的数据库几乎就无能为力,而作为一个虚拟主机用户,又没有权限通过操作系统shell操作来进行备份。 ??轻舟网站数据备份系统分服务器端程序和客户端自动备份程序两个部分。服务器端程序免费下载,分PHP和JSP两种。PHP的提供全部源程序免费下载,JSP程序需要的Java程序只提供class文件,但功能与PHP的完全相同。 ??服务器端程序可以单独运行,完全免费提供,通过浏览器访问可以进行手工备份,备份数据非常快,而且备份过程可以看到进度。 ??客户端端程序用于实现自动备份,它可以每天定时自动调用服务器程序进行备份并把数据从服务器完整下载到本机,无需人工干预,可以支持一次自动备份多个网站的数据。客户端程序是共享软件,但所有功能无任何限制免费试用。

81,091

社区成员

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

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