浏览 939 次
该帖已经被评为隐藏帖
作者 正文
最后更新时间:2008-05-16 关键字: 应届生!
XXXX
   
最后更新时间:2008-05-14
王贵伟 写道
我在刚开发的时候所有的SQL都是用的String拼写,因为书上就那么教的,老师也是这么教的,后来看到同事的代码才知道StringBuffer,其实在很多小公司还在用String写SQL。

那个…有种东西叫prepared statement,是可以防御SQL注入的…拼String的问题并不是性能问题…
   
0 请登录后投票
最后更新时间:2008-05-14
还有种东西叫

   PreparedStatement

   PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
                                     SET SALARY = ? WHERE ID = ?");
   pstmt.setBigDecimal(1, 153833.00)
   pstmt.setInt(2, 110592)
   
0 请登录后投票
最后更新时间:2008-05-14
抛出异常的爱 写道
还有种东西叫

   PreparedStatement

   PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
                                     SET SALARY = ? WHERE ID = ?");
   pstmt.setBigDecimal(1, 153833.00)
   pstmt.setInt(2, 110592)

或者这个
PreparedStatement pstmt = con.prepareStatement("SELECT * FROM Users WHERE name = ?");
pstmt.setString(1, "bad_user'; UPDATE EMPLOYEES SET SALARY = 1000000;");
   
0 请登录后投票
最后更新时间:2008-05-14
我们能否原谅做企业应用的人居然不知道不能拼 sql 是因为  sql injection, 而不是所谓 String + String 的性能问题 ?

引用

我很理解 lz 这些人  ,尤其那些小公司,没有入职培训,没有比较系统的接受指导,直接进入开发,他们的代码思维还是在书本和老师那里学的,所以会出现这么弱的失误。这也是为什么象华为,东软这些大公司出来的人一般的公司比较喜欢,因为他们正式工作多会有3个月左右的系统培训,会改掉他们很多书本毛病。
   
0 请登录后投票
最后更新时间:2008-05-14
我记得5.0里面好像能自动完成String+String的优化,用StringBuilder,可能我记错了,我1年多没用java了……
   
0 请登录后投票
最后更新时间:2008-05-14
有些“高手”总是喜欢拿性能说事儿……new StringBuffer("select * from user where user_id=").append("'").append(userId).append("'")……呵呵
   
0 请登录后投票
最后更新时间:2008-05-14
刑天战士 写道
我记得5.0里面好像能自动完成String+String的优化,用StringBuilder,可能我记错了,我1年多没用java了……

自动完成String+String的优化和StringBuilder是两回事
   
0 请登录后投票
最后更新时间:2008-05-14
我貌似反编译过,然后发现就是那种StringBuilder的形式,我手头没有jdk 5.0,谁试一下
   
0 请登录后投票
最后更新时间:2008-05-14
投了精华 以示后人 恩恩
   
0 请登录后投票
论坛首页 招聘求职版 职场话题

跳转论坛:
JavaEye推荐