JDBC:JDBC简介,JDBC操作数据库 的步骤,SQL注入,DbUtils工具,junit test 测试

JDBC概述

JDBC(Java DataBase Connectivity,java动态数据库连接技术)是一种用于执行SQL语句的Java API。

API : application Interface 程序的接口 一套几口可以有N套实现类(Mysql Oracle SqlServer)

JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java语言编写的接口和类组成。

JDBC需要连接驱动,驱动是两个设备要进行通信,满足一定通信数据格式,数据格式由设备提供商规定,设备提供商为设备提供驱动软件,通过软件可以与该设备进行通信。

今天我们使用的是mysql的驱动mysql-connector-java-5.1.6

JDBC与数据库驱动的关系:接口与实现的关系。
在这里插入图片描述

JDBC操作数据库 的步骤:

  1. 加载驱动(通过反射了加载驱动)
  2. 获取连接对象 Connection
  3. 得到编译sql的对象
  4. 执行sql
  5. 返回结果集
  6. 关闭资源

Statement 在这里插入图片描述
Preparestatement
在这里插入图片描述

lib:

目录主要是存放 jar包
在这里插入图片描述

JDBC 的相关的类与接口:

Driver: 这个数据库厂商提供的驱动类 (数据库的基本信息)
DriverManager :驱动管理类: 用于获取连接 需要传递三个参数
Connection :得到数据库连接对象,才能对数据库进行 增加 删除 修改 查询等等
Statement 给数据库发送sql 的对象

PreparedStatement 也是发送sql 的对象 是Statement 对象的子类

ResultSet 返回的结果集对象

index.html?uname=‘张三’& upwd=‘122333’
注意点:所有的jar包都是导入的sql包

  1. Class.forName(“com.mysql.jdbc.Driver”); 通过反射来加载驱动 灵活度更高
  2. 获取连接对象 url 地址jdbc:mysql://localhost:3306/student?characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false 用户名 与密码
  3.     jdbc+表示主协议:也就是使用jdbc来进行连接的
        mysql:表示子协议:也就是连接的数据库是mysql数据库
        localhost:表示本机的地址
        3306 数据库的端口号
        student 表示连接的库名
        ? 后面都表示拼接的参数
        characterEncoding=utf-8   设置编码格式
        serverTimezone=GMT%2B8  设置时区   相差8个小时
        useSSL=false 解决兼容性问题
    

如果是本地进行连接:jdbc:mysql:///数据库的库名

Statement: 给数据库发送sql 的对象 executeQuery() executeUpdate() 这两个方法来发送sql

ResultSet 就是一个结果集(迭代器)
next 类似于迭代器的hasnext()判断是否有下一个元素 获取值:第一种是更根据 列名来进行获取, rs.getInt(“GradeID”);

执行增加 删除 修改 num 是返回的影响的行数
int num = sta.executeUpdate(sql);

使用jdbc 实现增删改查操作:

使用传统方式的弊端:
1.需要拼接sql 语句(比较麻烦)
2.对sql语句没有基本的检查,不管sql语法是否正确都抛给数据库处理(效率就会慢)
3.sql语句会被入侵,会被更改
Statement ==> PreparedStatement 功能更加强大 (使用这个)

SQL注入:

在这里插入图片描述

PreparedStatement 使用这个类的注意点:

1.占位符跟你赋值的个数必须是一致(包括其类型)
2.赋值必须在 调用这个方法的前面进行操作executeUpdate()

JDBC封装:

1.不想修改java 代码来适应任何数据库
==>可以把这个固定的放入到配置文件 Properties :
驱动的包名,url,用户名,密码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Junit test 测试

   作用:局部测试  其实就是写一个方法
    
        对这个方法的要求:
        1. 用 public  void 进行修饰
        2. 没有返回值
        3. 没有参数 

              三个注解  @Test @Before  @After

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值