详解JDBC、Sql注入及数据库连接池(通俗易懂版,一学就会)

引文

image-20231209104003803

image-20231209104216761

快速入门

image-20231209104255503

image-20231209104657872

常见API(重点)

1.DriverManager(获取与数据库的连接)——useSSL=false解除安全检查

image-20231209105203573

image-20231209105423519

注册驱动可省略不写

image-20231209105147309

image-20231209105534945

image-20231209105731006

2.Connection(获取执行Sql的对象)

image-20231209105811059

image-20231209105849445

image-20231209105954714

要开启事物则setAutoCommit(false)。

image-20231209110225278

回滚事物到开启事务处,期间执行的sql语句不生效

image-20231209110608200

3.Statement(执行Sql语句和获取数据库数据)

image-20231209110838372

1.executeUpdate(sql)

DML:数据的增删改

image-20231209111137945

对于DML,若影响的行数大于0则表示Sql执行成功。

DDL:数据、表的操作

image-20231209111545379

2.executeQuery(sql)语句计ResultSet数据集对象

image-20231209111923188

image-20231209112051971

示例代码:

1.根据数据库的列取数据,列的索引是从1开始的

image-20231209112217684

image-20231209112234878

2.根据数据库的列名获取数据

image-20231209112340209

4.PrepareStatement(预防Sql注入问题))——useServerPrepStmts=true开启预编译提高性能

image-20231209112532787

image-20231209113102197

image-20231209114638241

Sql注入示例

image-20231209112655874

Sql注入,拼接字符串后恒成立了

image-20231209112828858

核心问题,就是拼接字符串导致了,下面介绍用参数替换来代替凭借字符串以解决Sql注入问题


image-20231209113102197

要设置整数值,用setInt咯

image-20231209113227840

会对敏感字符进行转义

image-20231209113337930

开启预编译

image-20231209114214622

数据库连接池(重点)

类似线程池,避免资源浪费

image-20231209114915999

不要用DriverManaget.getConnection()了

image-20231209115149465

image-20231209115232602

1.导入jar包

image-20231209115322761

2.定义配置文件.properties

image-20231209115359381

键值对形式,注意键的名称别写错

image-20231209115611981

3.加载配置文件,也就是导入文件中的键值对

image-20231209120212530

System.getProperty("user.dir")可以当前项目的根路径

image-20231209120330166

4.获取连接池的对象,类.方法名调用

image-20231209115915275

5.获取数据库的连接

image-20231209120639381

接下来连接获取Statement和执行Sql的操作就和JDBC一样了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫青.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值