预编译的优点(Statement和PrepareStatement 的区别)
来源:互联网 发布:瑞斯康微电子 知乎 编辑:程序博客网 时间:2024/06/05 11:45
在执行SQL命令时,有二种选择:可以使用PreparedStatement对象,也可以使用Statement对象。
而熟悉JDBC编程的大侠们都会选择使用PreparedStatement对象,主要因为使用预编译对象PreparedStatement时,有以下几个优点:
1、效率高
PreparedStatement可以尽可能的提高访问数据库的性能,我们都知道数据库在处理SQL语句时都有一个预编译的过程,而预编译对象就是把一些格式固定的SQL编译后,存放在内存池中即数据库缓冲池,当我们再次执行相同的SQL语句时就不需要预编译的过程了,只需DBMS运行SQL语句。所以当你需要执行Statement对象多次的时候,PreparedStatement对象将会大大降低运行时间,特别是的大型的数据库中,它可以有效的也加快了访问数据库的速度。
2、大大提高代码的可读性和可维护性
例如我们在向数据库插入数据:
一种是使用Statement对象
java.sql.Statement stmt=conn.createStatement();
stmt.executeUpdate("insert into student (name,id,number,count) values ('"+var1+"','"+var2+"',"+var3+",'"+var4+"')");
另一种是使用PreparedStatement对象
String sql ="insert into student values(null,?,?,?)";
java.sql.PreparedStatement pstmt=conn.preparedStatement(sql);
pstmt.setString(1,var1);
pstmt.setString(2,var2);
pstmt.setString(3,var3);
pstmt.setString(4,var4);
pstmt.executeUpdate();
使用占位符?代替
将参数与SQL语句分离出来,这样就可以方便对程序的更改和延续,同样,也可以减少不必要的错误。
3、开源防止SQL注入(最主要的)
什么时候使用预编译语句?
一般是在需要反复使用一个SQL语句时才使用预编译语句,预编译语句常常放在一个fo r或者while循环里面使用,通过反复设置参数从而多次使用该SQL语句。为了防止SQL注入漏洞,在某些数据操作中也使用预编译语句。
- 预编译的优点(Statement和PrepareStatement 的区别)
- prepareStatement和Statement的区别
- prepareStatement的Statement区别
- JDBC中prepareStatement 和Statement 的区别
- jdbc中PrepareStatement与Statement的优点
- prepareStatement与Statement的区别
- prepareStatement与Statement的区别
- prepareStatement与Statement的区别
- prepareStatement与Statement的区别
- prepareStatement与Statement的区别
- PrepareStatement 与 Statement 的区别
- prepareStatement与Statement的区别
- PrepareStatement与Statement的区别
- prepareStatement与Statement的区别
- prepareStatement与Statement的区别
- prepareStatement与Statement的区别
- prepareStatement与Statement的区别
- prepareStatement与Statement的区别
- 开灯问题
- 统计字符串中的字母,数字,空格和其他字符的个数---指针
- kernel hexdump分析
- 开灯问题
- 邻接矩阵
- 预编译的优点(Statement和PrepareStatement 的区别)
- getch()、getche()和getchar()函数
- 数据共享+指向自身类型的指针+智能指针
- 21世纪的文件系统:概述WindowsNT 5.0文件系统(NTFS)(三)
- 帮助理解this用法的几个例子
- Java并发编程实战~笔记~章五
- 关于抠图的一些文章方法收集
- app之间调用
- 求最大公约数和最小公倍数---调用函数