java中访问数据库的步骤?Statement和PreparedStatement之间的区别?

参考解答

java中访问数据库的步骤如下:

1)注册驱动
2)建立连接
3)创建Statement
4)执行sql语句
5)处理结果集(若sql语句为查询语句)
6)关闭连接

PreparedStatement 称为预编译Statement,其原理是会发送参数化SQL至数据库服务器,例如:

PreparedStatement ps = conn.prepareStatement("SELECT empno, ename FROM emp where empno=?");
ps.setInt(1, 7369);
ps.executeQuery();

在首次执行时,会将一条 SELECT empno, ename FROM emp where empno=:1以及:1参数的具体值发送给Oracle服务器,Oracle会将这条sql进行预编译(包括解析sql,生成执行计划等),存入共享池中。

如果再次执行

ps.setInt(1, 7499);
ps.executeQuery();

这时候会把:1参数的新值发送给Oracle服务器,数据库服务器这边只需要将共享池中的预编译sql取出来,填充新的参数值执行即可,不需要再次经过解析、生成执行计划等步骤,效率会得到一定改善。它通常用于执行多次结构相同的SQL语句。

PreparedStatement 另外一个优点是它可以一定程度上防止SQL注入攻击。

results matching ""

    No results matching ""