PreparedStatement 优点:
(1)preparedstatement的出现主要的目的是为了提高SQL语句的的性能,而防止SQL注入和类型转换
(2)可以避免拼sql的时候那些讨厌的引号和字符串连接符,而且将sql文本的书写与参数的绑定分开,代码清晰很多。
(3).自动类型转换,而获得更好的可移植性;
(4).更好的性能(尤其是对Oracle,MySQL不一定)
(1)可以自动解决(输入适当格式的日期和时间戳:2002-02-05 20:56 或者 02/05/02 8:56 PM)问题。
(2)一个PreparedStatement是从 java.sql.Connection对象和所提供的SQL字符串得到的,SQL字符串中包含问号(?),这些问号标明变量的位置,然后提供变量的值, 最后执行语句,例如:
pstmt.setString(1, companyId);
pstmt.setString(2, userId);
// 検索を行う
rset = pstmt.executeQuery();
while (rset.next()) {
userInfo bean = UserInfo();
bean .setUserNmae(rset.getString("USERNAME"));
}
rset.close();
pstmt.close();
conn.close();
(2)可以避免拼sql的时候那些讨厌的引号和字符串连接符,而且将sql文本的书写与参数的绑定分开,代码清晰很多。
(3).自动类型转换,而获得更好的可移植性;
(4).更好的性能(尤其是对Oracle,MySQL不一定)
(1)可以自动解决(输入适当格式的日期和时间戳:2002-02-05 20:56 或者 02/05/02 8:56 PM)问题。
(2)一个PreparedStatement是从 java.sql.Connection对象和所提供的SQL字符串得到的,SQL字符串中包含问号(?),这些问号标明变量的位置,然后提供变量的值, 最后执行语句,例如:
String sql = "select * from UserInfo t where t.compaId = ? and t.userId = ?";
ResultSet rset = null;
pstmt.setString(1, companyId);
pstmt.setString(2, userId);
// 検索を行う
rset = pstmt.executeQuery();
while (rset.next()) {
userInfo bean = UserInfo();
bean .setUserNmae(rset.getString("USERNAME"));
}
rset.close();
pstmt.close();
conn.close();