首先说一下在代码上的不同
1、
Statement是调用Connection对象的createStatement()方法获取Statement对象。
Statement stm = con.createStatement();
PreparedStatement是调用Connection对象的preparedStatement()方法获取PreparedStatement对象。
PreparedStatement pstm = con.preparedStatement(sql);
2、
执行查询和增删改的语句是:
stm.executeQuery(sql);
stm.executeUpdate(sql);
pstm.executeQuery();
pstm.executeUpdate();
3、
在写sql语句的时候不一样。
这里以表名为student为例,number(int),name(String)。以向数据库表插入数据为例。
Statement:
sql="insert into student (stunumber,stuname) values ('"+number+"','"+name+"')";
PreparedStatement:
sql="insert into student (stunumber,stuname) values (?,?)";
pstm.setInt(1,number);
pstm.setString(2,name);
然后除了在代码上有不同外,在代码可读性上和性能和安全上也有不同。</