jimmyofth
发贴: 18
|
于 2008-01-12 17:09
完成一个web应用程序,是一个session建立一个数据库连接,还是在application,或者每次执行sql语句都打开一个新连接?
我现在是这样做的:
1 新建一个类,类中有一个方法getConn。 public Connection getConn() throws Exception { Class.forName(driver).newInstance(); Connection conn = DriverManager.getConnection(url, user, password); return conn; } url, user, password作为私有属性都指定了。
2 其他的 .class, .jsp需要与数据库交互时,加入如下语句 OperateDB odb = new OperateDB(); Connection conn = odb.getConn(); 然后用这个conn来执行SQL,使用完后关闭。
本人也觉得这个是一个不理想的解决方法,效率肯定很低,由于我手头开发的是一个很少用户并发的系统,所以觉得可能不会影响太大。但今天在调试一个程序时,会经常出现一下错误: org.apache.jasper.JasperException: [Microsoft][SQLServer 2000 Driver for JDBC]Software caused connection abort: socket write error org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
当然,并不是每次都会出错,我在出错的jsp里多次进行建立连接,断开连接的操作,估计有4-5次吧。所以,我怀疑是数据库连接使用的方法不对。
我对于java开发不是很熟悉,但我以前做过asp开发,asp的解决办法是:我在global.asa中建立好数据库连接,整个应用程序都是用这个连接。
我想请教各位大牛: 1 我查了一些资料,java里面也有jsa的使用,我是否可以照搬asp的做法,把数据库连接放在application中?
2 如果在session中建立一个连接,每个用户使用一个也可以
3 能否给我一个在开发系统中如何处理这类问题的例子?
谢谢!!
|