这两种对数据库的操作的区别是什么?请高手指点
我看到有的人用这种方法st = conn.createStatement();
temp = st.executeUpdate(sql);
而有的人呢,用这种ps = connection
.prepareStatement("Insert into user(uid,password,realName,gender,email,tel,question,answer,validateCode) values(?,?,?,?,?,?,?,?,?)");
这两种方法有什么优缺点呢,哪位高手给解释下 谢谢
------解决方案--------------------
1,对于prepareStatement来说,其执行返回的是一个prepareStatement对象,而这个方法的描述是这样的,prepareStatement(String sql)创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。它需要一个参数,这个参数就是需要执行的sql语句。而createStatement,它不需要参数,Statement createStatement()创建一个 Statement 对象来将 SQL 语句发送到数据库,但在此处并没有执行sql语句。
2,PreparedStatement执行时用到的方法,setString(int i,value),其中set后面跟的是相应的属性数据类型,所以,要求相应的sql语句的写法与常规的写法不同,意思可以理解为第i个问号的值为value,这样设置之后,就可以对其进行执行了,执行的方法是executeQuery()和executeUpdate(),区别在之前讨论jdbc中有讲过,而PreparedStatement的这两个方法是不需要参数的,这点跟Statement不同,它需要一个sql语句的参数,当然,也是这两种方法! 3,PreparedStatement对象一旦绑定了sql,就不能执行其他sql了,即只能执行一条sql,而Statement对象可以执行多条