Java操作数据库(JDBC)

一:JDBC概述

简单来说就是JDBC是一种接口规范,各个厂商要实现这个接口的实现类,我们用各个厂商写好的实现类来连接他们的数据库

二:连接数据库

1:先下载连接数据库的jar包

Maven Repository: Search/Browse/Explore

在这个链接中搜索mysql,下载第二个,版本号要对应

2:导入jar包

3:连接数据库

所有类型的数据库都是以下步骤

1:加载驱动

2:获取连接对象(连接哪个厂商的数据库,以及连接哪个数据库)

3:获取SQL语句的对象

4:编写SQL语句

5:利用SQL语句的对象执行编写的SQL语句

代码如下:

三:JDBC实现数据库的增删改查

1:对数据进行增加

2:对数据进行删除

3:对数据进行修改

4:对数据进行查找

四:SQL注入漏洞

Statement对象

通过改变SQL注入的语句的逻辑来实现登录

例如:

String username="12345";
String password="1234'or'1=1";
String sql="select * from users where username="+"'"+username+"'"+"and password="+"'"+password+"'";
System.out.println(sql);

改变sql语句的逻辑实现登录

五:利用preparedStatement对象来拼接字符串执行SQL语句

利用preparedStatement对象解决了SQL注入的改变逻辑的问题

代码如下:

我们传入的参数都加上''通过转义字符来转的,这样就避免的改变sql语句的逻辑实现登录

六:Statement对象和preparedStatement对象的区别

1:preparedStatement是Statement的子类

2:Statement每次执行SQL语句时都要对SQL语句进行校验和编译,preparedStatement创建对象的时候就以及对SQL语句进行校验和编译,执行的时候就不需要在进行校验和编译了,所以preparedStatement对象只需要校验和编译一次,一个是执行的时候把SQL语句传进去,一个是创建对象的时候就把SQL语句传进去了

3:Statement可以改变SQL语句的逻辑,preparedStatement不能改变SQL语句的逻辑

七:使用DAO来封装操作数据库的步骤

业务逻辑:

entity:是和表对应的,一个entity对象代表表中一行数据

Mapper:表的解释器,把查询表中的每一行数据都封装到entity对象当中(有几行封装几个entity对象)

DAD:是操作数据库增删改查

参数1:要传入sql语句,以及对应的

参数2:要传入表的解析器

参数3:要传入sql语句的参数

遍历结果集利用Mapper解析器把结果解析并封装到entity对象当中

最后用list集合把entity对象封装到里面,这样一张表的数据就封装完成了

代码实现

1:我们先把连接数据库的步骤和关闭资源的步骤封装成一个工具类,这样我们用的时候直接取就可以了

2:把表的数据字段封装到Entity类当中

3:Mapper:表的解释器,把查询表中的每一行数据都封装到entity对象当中(有几行封装几个entity对象)

写一个接口统一规划,里面的内容让实现类来写

他的实现类

这样做的好处函数统一规范化,里面内容由各个的实现类来编写

4:我们写操作数据库的类(增删改查)

增删改:

查:

代码解释:

1:利用工具类获取连接对象并获取PreparedStatement对象并传入sql语句

第一个参数是sql语句

2:把sql语句的参数添加进去使sql语句完整

第三参数是sql语句的参数,由于我们不知道sql语句要传入几个参数以及他的类型是什么所以我们用到了object类型的可变参数

3:执行sql语句并返回结果集

4:遍历结果集,把每一行的数据都封装到Entity对象当中,并增加到集合当中

第二个参数是解析器,负责把结果集的数据封装到Entity对象当中并返回Entity对象(entity:是和表对应的,一个entity对象代表表中一行数据)

5:关闭资源,并返回集合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值