jdbc---------prepareStatement

本文详细介绍了使用Statement和PreparedStatement执行SQL语句的方法,并对比了它们之间的区别,包括语法、执行效率及安全性等方面。此外,还探讨了数据库运行机制及预编译如何防止SQL注入等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用statement执行sql语句
列的名字,不区分大小写。
statement执行静态的sql语句
preparedStatement执行预编译的sql语句。
数据库运行机制
(1)拿到指令
(2)检查指令正确性
(3)检查是否有足够的权限
(4)把sql加入sql缓存区    map<String(sql),执行任务>
(5)数据库取出sql缓存区执行任务执行
preparedStatement执行效率高,Statement执行效率低。
支持sql缓冲区的数据库:
oracle,SQLServer
不支持sql缓冲区
mysql;
select *from student where 1=1;  恒成立。
预编译防止sql注入
preparedStatement和Statement的区别
(1)语法不同,preparedStatement可以使用预编译的sql,而Statement只能使用静态的sql;
(2)效率不同:preparedStatement可以使用sql缓存区,效率比statement高
(3)安全性不同:PreparedStatement可以有效的防止sql注入,而statement不能防止sql注入
CallableStatement执行存储过程
输出参数,有个类型。
varchar(20),第二个参数,要注册一个类型,varchar。registerOutParameter()


类路径加载方式:
JdbcUtil.class.getResourceAsStream("/");代表calss的根目录
在java项目中,calss文件的根目录。bin目录
java文件的根目录。src目录。
在web项目中,calss 文件的根目录,从web-inf/class目录开始
软件设计原则:开闭原则
对修改是关闭的
对扩展是开放的。
加一个dao实现类,
实现相同的接口,
操作mysql数据库。
开发顺序,从下往上。
设计数据库
 id,name,gender
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值