(面试)Statement和PrepareStatement有什么区别
2024-10-13 00:06:33
(1)Statement用于执行静态sql语句,在执行时,必须指定一个事先准备好的sql语句。
PrepareStatement是预编译的sql语句对象,sql语句被预编译并保存在对象中。被封装的sql语句代表某一类操作,语句中可以包含动态参数“?”,在执行时可以为“?”动态设置参数值。
使用PrepareStatement对象执行sql时,sql被数据库进行解析和编译,然后被放到命令缓冲区,每当执行同一个PrepareStatement对象时,它就会被解析一次,但不会被再次编译。在缓冲区可以发现预编译的命令,并且可以重用。
PrepareStatement可以减少编译次数提高数据库性能。
(2)PrepareStatement可以防止sql注入
(3)还有callablestatement,用来处理存储过程
最新文章
- eclipse将android项目生成apk并且给apk签名
- Android基础:Activity
- webapi同一个Controller多个函数
- JS 动态加载脚本 执行回调_转
- 九度OJ1008
- [ CodeVS冲杯之路 ] P1092
- Java中的多线程操作初探
- System.Drawing.Graphics中比较重要的几个方法
- yo bootstrap mui 使用对比
- eclipse编辑器,怎么创建PHP和JAVA的工程项目?
- 三星ssd转移系统
- Install Nagios (Agent) nrpe client and plugins in Ubuntu/Debian
- 东大oj1155 等凹函数
- JAVA面向对象和类
- ES6 数值的扩展
- Oracle11g温习-第七章:redo日志
- 3类与对象——重拾Java
- ES6新特性5:类(Class)和继承(Extends)
- Flume wasn't able to parse timestamp header
- vs配置D3D开发环境
热门文章
- JQuery 之 重置表单的方法
- poj 3042 Grazing on the Run
- typescript - 前言介绍
- 解决 weblogic poi3.9 报错 a different type with name ";javax/xml/namespace/QName";
- Android学习笔记三:用Intent串联activity
- Linux安装nginx并设置https(openssl
- 关于gitblit在Windows中无法Start的问题
- CTRL+SHIFT
- django之创建第6个项目-过滤器
- python之模块pydoc