|
该帖已经被评为隐藏帖
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-05-14 关键字: 应届生!
XXXX
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2008-05-14
王贵伟 写道 我在刚开发的时候所有的SQL都是用的String拼写,因为书上就那么教的,老师也是这么教的,后来看到同事的代码才知道StringBuffer,其实在很多小公司还在用String写SQL。
那个…有种东西叫prepared statement,是可以防御SQL注入的…拼String的问题并不是性能问题… |
|
| 返回顶楼 | |
|
时间:2008-05-14
还有种东西叫
PreparedStatement PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?"); pstmt.setBigDecimal(1, 153833.00) pstmt.setInt(2, 110592) |
|
| 返回顶楼 | |
|
时间: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;");
|
|
| 返回顶楼 | |
|
时间:2008-05-14
我们能否原谅做企业应用的人居然不知道不能拼 sql 是因为 sql injection, 而不是所谓 String + String 的性能问题 ?
引用 我很理解 lz 这些人 ,尤其那些小公司,没有入职培训,没有比较系统的接受指导,直接进入开发,他们的代码思维还是在书本和老师那里学的,所以会出现这么弱的失误。这也是为什么象华为,东软这些大公司出来的人一般的公司比较喜欢,因为他们正式工作多会有3个月左右的系统培训,会改掉他们很多书本毛病。 |
|
| 返回顶楼 | |
|
时间:2008-05-14
我记得5.0里面好像能自动完成String+String的优化,用StringBuilder,可能我记错了,我1年多没用java了……
|
|
| 返回顶楼 | |
|
时间:2008-05-14
有些“高手”总是喜欢拿性能说事儿……new StringBuffer("select * from user where user_id=").append("'").append(userId).append("'")……呵呵
|
|
| 返回顶楼 | |
|
时间:2008-05-14
刑天战士 写道 我记得5.0里面好像能自动完成String+String的优化,用StringBuilder,可能我记错了,我1年多没用java了……
自动完成String+String的优化和StringBuilder是两回事 |
|
| 返回顶楼 | |
|
时间:2008-05-14
我貌似反编译过,然后发现就是那种StringBuilder的形式,我手头没有jdk 5.0,谁试一下
|
|
| 返回顶楼 | |
|
时间:2008-05-14
投了精华 以示后人 恩恩
|
|
| 返回顶楼 | |












