初学,讨论关于执行SQL的问题。
DJMPH 2002-10-18 11:52:30 PreparedStatement preStmt;
String strSQL = "insert into Forum(UserID,Title,DateTime) values(?,?,?)";
try {
preStmt = cn.prepareStatement(strSQL);
preStmt.setString(1,userID);
preStmt.setString(2,CnStr.toTureAsciiStr(title));
preStmt.setString(3,datetime);
preStmt.executeUpdate();
}
catch(Exception e) {
System.out.println(e);
}
以上是JSP的推荐执行方式,预处理会使执行很快。
但是UserID是从数据库中的UserID最大加一,DateTime是服务器时间的话,那么SQL就可以写成"insert into Forum(UserID,Title,DateTime) select isnull(max(word.id),0) + 1,'" + sTitle + "',getdate()"
这样看来,某些情况下(前面仅仅举个例子,不一定实用),我是说在如用户注册等情况下,就会比上最面JSP推荐的方式么好的多,至少方便维护,就不用专门得到一些服务器、数据库的数据了:)
因为本人长期从事B/S开发,里面的SQL语句常常使用SQL嵌套语法与重命名方法。现在刚从事B/S开发,所以不知道大家是怎么做的,从书上的方法看来是建议最前面的做发的。看来JSP好像是不提倡不预处理的吧,反正我又胡涂了:(
如果大家有好的方法请教教我。