JDBC

JDBC

JDBC全称是java DataBase Connectivity 是java连接数据库的一套API,也是一套标准,该标准中定义了一系列接口,由数据库厂商根据自身数据库的特点分别实现,由开发者根据接口调用实现类的方法,这样无论连接什么样的数据库都是一套API,开发者开发时,可以屏蔽不同数据库的差异

驱动包

驱动包是数据库厂商针对JDBC规范所写的实现类,
连接不同数据库,应使用不同数据库厂商提供的驱动包

开发流程

JDBC主要完成数据库的磁盘数据和内存对象数据的交互,本质是流操作

  1. 建立连接
  2. 执行sql语句
  3. 关闭连接

怎么用JDBC

关键字:DriverManager

作用:

用于管理数据库驱动列表,使用通信子协议将来自Java的连接请求与适当的数据库驱动程序相匹配

使用:

DriverManager(url,username,password)
url:地址,具有特殊写法,比如“jdbc:mysql//localhost:3306/table_name"
username:登录数据库的用户名
password:登录数据库的密码

关键字:Connection

作用:

该类具有用于联系数据库的所有方法

使用:

Connect conn=DriverManager(url,username,password);

关键字:PreparedStatement

作用:

自动排除注入攻击;将从控制台获取的数据注入SQL语句

创建:

PreparedStatement ps=conn.preparedStatement();

注入:

根据数据类型分类注入,并输入要注入的字段在SQL语句中的位置与要注入的内容
ps.setInt(1,int i); //在select语句的第一处条件字段注入一个int值
ps.setString(2,String str); //在select语句的第二处条件字段注入一个字符串

关键字:ResultSet

作用:

作为迭代器,遍历state对象

前提:

state对象成功执行用于查询的SQL语句

创建:

ResultSet rs=state.executeQuery(select语句);

遍历:rs.next()

移动指针,若指向的数据不为null,则返回true;否则,返回false

获取:

根据数据类型分类获取,并输入要获取的字段在返回表中的位置(从1开始),如果成功返回收到影响的行数

rs.getInt(ColumnIndex); //获取整数型

rs.getString(ColumnIndex); //获取字符型

SQL注入

在执行SQL语句时,如果通过拼接字符串方式插入SQL语句的值,当值中有非法字符,或SQL语句关键字时,会导致SQL语句语法错误,或执行结果不正确的情况,这称为SQL注入

Statement和PrepareStatement的区别

Statement是PrepareStatement的父接口,在执行SQL语句时,只能通过拼接字符串方式插入SQL语句的值,不但效率低,而且容易引起SQL注入
PreparedStatement提供占位符方式插入SQL语句的值,SQL语句只会编译一次,效率较高。而且无论是什么值,都当字符串处理,不会引起SQL注入
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值