6.JDBC

  1. 预习检查
    1. JDBC的主要作用是什么?
    2. JDBC访问数据时常用的类和接口有哪些,它们的作用是什么?
    3. JDBC访问数据的步骤是什么?
    4. PreparedStatement与Statement相比,具有什么优势?

 

  1. 本章任务
    1. 使用纯Java方式连接数据库
    2. 使用JDBC查询所有宠物主人信息
    3. 使用JDBC插入宠物信息

  1. 本章目标
    1. 理解JDBC原理
    2. 掌握Connection接口的使用
    3. 掌握Statement接口的使用
    4. 掌握ResultSet接口的使用
    5. 掌握PreparedStatement接口的使用

 

  1. 为什么需要JDBC

JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力

  1. JDBC的工作原理
    1. JDBC API
      • 提供者:Sun公司
      • 内容:供程序员调用的接口与类,集成在java.sql和javax.sql包中,如:
        1. DriverManager类
        2. Connection接口
        3. Statement接口
        4. ResultSet接口
    2. DriverManager
      • 提供者:Sun公司
      • 作用:管理各种不同的JDBC驱动
    3. JDBC 驱动
      • 提供者:数据库厂商
      • 作用:负责连接各种不同的数据库

  1. JDBC的基本操作流程

 

在myescilpe中使用:

导入jar包:

  1. JDBC API

JDBC API主要功能:与数据库建立连接、执行SQL语句、处理结果

  1. DriverManager :依据数据库的不同,管理JDBC驱动
  2. Connection :负责连接数据库并担任传送数据的任务  
  3. Statement :由 Connection 产生、负责执行SQL语句
  4. ResultSet:负责保存Statement执行后所产生的查询结果
  1. JDBC编程模板

  1. JDBC驱动 5-1

JDBC驱动由数据库厂商提供

    1. 在个人开发与测试中,棵松使用JDBC-ODBC桥连方式
    2. 在生产型开发中,推荐使用纯Java驱动方式

  1. JDBC驱动 5-2

使用JDBC-ODBC桥方式连接数据库

    1. 将对JDBC API的调用,转换为对另一组数据库连接API的调用
    2. 优点:可以访问所有ODBC可以访问的数据库
    3. 缺点:执行效率低、功能不够强大

  1. JDBC驱动 5-3

  1. JDBC驱动 5-4

使用纯Java方式连接数据库

    1. 由JDBC驱动直接访问数据库
    2. 优点:完全Java代码,快速、跨平台
    3. 缺点:访问不同的数据库需要下载专用的JDBC驱动

  1. JDBC驱动 5-5

  1. JDBC应用

对宠物和主人信息进行管理

    1. 宠物和主人信息存储在MySQL数据库中
    2. 通过JDBC对宠物和主人进行增、删、改、查

  1. 使用Statement添加宠物

  1. 使用Statement更新宠物

  1. 使用Statement和ResultSet查询宠物

  1. Statement常用方法

方法名

说明

ResultSet executeQuery(String sql)

 

执行SQL查询并获取到ResultSet对象

 

int executeUpdate(String sql)

可以执行插入、删除、更新等操作,返回值是执行该操作所影响的行数

 

boolean execute(String sql)

 

可以执行任意SQL语句,然后获得一个布尔值,表示是否返回ResultSet

  1. ResultSet常用方法

方法名

说明

boolean next()

将游标从当前位置向下移动一行

boolean previous()

游标从当前位置向上移动一行

void close()

关闭ResultSet 对象

int getInt(int colIndex)

以int形式获取结果集当前行指定列号值

int getInt(String colLabel)

以int形式获取结果集当前行指定列名值

float getFloat(int colIndex)

以float形式获取结果集当前行指定列号值

float getFloat(String colLabel)

以float形式获取结果集当前行指定列名值

float getFloat(String colLabel)

以float形式获取结果集当前行指定列名值

String getString(int colIndex)

以String 形式获取结果集当前行指定列号值

String getString(String colLabel)

以String形式获取结果集当前行指定列名值

  1. 为什么要使用PreparedStatement

使用JDBC完成主人登陆验证功能

  1. PreparedStatement

问题:

如何避免SQL注入的隐患?

分析

使用PreparedStatement接口

继承自 Statement接口

比Statement对象使用起来更加灵活,更有效率

  1. 使用PreparedStatement更新宠物

  1. 使用JDBC操作数据库--增删改查

  

  1. 总结

 

 

 

 

 

发布了65 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/kxindouhao5491/article/details/82861729