jdbc003:继续优化jdbc

以前用jdbc在MySQL中增删查改的时候都用的是execute把拼接好的数据直接输送过去,这样有个漏洞,就是在拼接语句的时候,会有一些人拼接非法语句进去,造成数据库数据不安全。
一,针对增删改:
使用Executeupdate,他的返回值类型是int类型,代表操作化对MySQL影响的行数。
拿上篇增加举例
在这里插入图片描述
这样的话大大增加了增删改的效率
二,executeQuery:返回值直接就是ResultSet结果集对象
在这里插入图片描述

传说的注入式漏洞
就是懂点语法的人可以拼接sql语句查询所有人的信息
select * from stu where uname=’'or 1=1 or ‘’----这句话代表由名字查全部信息,但是条件是1=1所有都满足,可以查出所有人的信息。
就是因为这个原因,我们的preparedstatement就横空出世,是来拯救statement

Preparedstatement和statement的区别:
主要是 sql语句编译的时机不一样
Preparedstatement预编译statement,就是提前在构建这个对象的时候就把sql语句编译好了,然后再替换好值当把sql发送到数据库的时候就不用再编译了,而是直接执行,就不牵扯一个拼接sql的问题了
Statement在构建对象的时候没有编译sql,然后拼接好值发送给数据库,数据库先对sql进行编译,编译的过程就是拼接sql语句,那么就是典型的注入式漏洞

三,数据库结果集元数据
在这里插入图片描述
说白了就是输出这个表头。
四,属性配置文件 properties
就是把加载,连接造车放到一个属性配置文件中,方便以后该。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值