论坛首页 入门技术论坛

帖一个jsp文件,里面有段jdbc操作的代码,大家多提提建议

浏览 2622 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-21  
这是公司新来的一个毕业生写的一个jsp文件,里面的代码确实让我很失望。这段代码确实可以做一个教材了,不过是反面的。代码如下:

<%@ page import="com.*.db.util.DBConnectionPool"%>
<%@ page import="com.*.db.util.MyConnection"%>
<%@ page import="com.*.db.util.ConnectionPool"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%
request.setCharacterEncoding("UTF-8");
String text = request.getParameter("text");
System.out.println("GBN2312--->>>" + text);
System.out.println("wangjinghui" + text);
String sheetKey = request.getParameter("sheetKey");
MyConnection conn = ConnectionPool.getInstance().getConnection();
String sql = "update temp_tasklinkmain  set link_task_info = ? where sheet_id = (select id from tasksheet_template_main where sheet_id = ?)";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1,text);
stmt.setString(2,sheetKey);
stmt.executeUpdate();
try {
	stmt.close();
} catch(Exception e) {
	stmt.close();
	conn.rollback();
	e.printStackTrace();
} finally {
	conn.close();
}
response.setCharacterEncoding("GB2312");
out.println(text);
out.flush();
%>


大家都说说这段代码里面有哪些问题,会产生什么样的后果。
   发表时间:2008-10-21  
你也不用太失望,其实我们每个人不也都是这么过来的。
0 请登录后投票
   发表时间:2008-10-22  
沒看出哪里不好
0 请登录后投票
   发表时间:2008-10-28  
我来说几个明显的,有不对请指正。
1, ConnectionPool.getInstance().getConnection();  
这应该是你们封装的连接池,而在程序最后 获得的连接直接被Close了这会对连接池管理造成影响,我想ConnectionPool应该会相应的释放方法。
2,异常处理,乱七八糟。
3,JSP是VIEW层。
0 请登录后投票
   发表时间:2008-11-03  
close以后连接并不是真正释放,只是重新放回到了连接池
0 请登录后投票
   发表时间:2008-11-27  
假设数据库中的link_task_info 字段定义为varchar2(100),而stmt.setString(1,text);中text为100个中文字。那stmt.executeUpdate();执行会有什么问题?
如stmt.executeUpdate();这句出现了异常,难道不用catch吗?


太佩服昔日舞曲了。
0 请登录后投票
   发表时间:2008-11-28  
异常要分不同的捕获
jsp 是view 成
stmt.executeupdate() 要捕获
0 请登录后投票
   发表时间:2008-11-28  
感觉写的还行 呵呵 至少还是有条理的  捕获不算
0 请登录后投票
   发表时间:2008-11-28  
sql语句用了预处理
0 请登录后投票
   发表时间:2008-11-30  
dao2006 写道
close以后连接并不是真正释放,只是重新放回到了连接池

恩,原先没看清楚。。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics