jdbc

为什么需要JDBC

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

                            jdbc_第1张图片

 

JDBC的工作原理:

jdbc_第2张图片

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

 

 

JDBC访问数据库步骤

jdbc_第3张图片

通过JDBC访问数据库

       jdbc_第4张图片

 

JDBC API

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

jdbc_第5张图片

 

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

 

JDBC编程模板

                     jdbc_第6张图片

 

JDBC驱动;

JDBC驱动由数据库厂商提供

在个人开发与测试中,可以使用JDBC-ODBC桥连方式

在生产型开发中,推荐使用纯Java驱动方式

                            jdbc_第7张图片

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

    1. 将对JDBC API的调用,转换为对另一组数据库连接API的调用
    2. 优点:可以访问所有ODBC可以访问的数据库

缺点:执行效率低、功能不够强大                                     jdbc_第8张图片

                                                 示例:

                                                        jdbc_第9张图片

                                         

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

jdbc_第10张图片

                                                        示例:

                                                       

 

 

                                                        jdbc_第11张图片

//Class.forname() 是后加载  先运行,运行过程中给他一个字符串 根据字符串找到字符串对应的类,然后把类的信息加载到JVM中 创建出对象

//Student s=new Student()是先加载

                                                       

 

JDBC应用;

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

jdbc_第12张图片

                     使用Statement添加宠物

                                          jdbc_第13张图片

                     使用Statement更新宠物

                                          示例:

                                                 jdbc_第14张图片

                     使用Statement和ResultSet查询宠物

                                          示例:

                                                 jdbc_第15张图片

 

Statement常用方法

                     jdbc_第16张图片

 

 

ResultSet常用方法

                     jdbc_第17张图片

 

为什么要使用PreparedStatement

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

                     jdbc_第18张图片

 

PreparedStatement

                     问题?

                如何避免SQL注入的隐患?

                     分析:

  1. 使用PreparedStatement 接口
    1. 继承自 Statement接口
    2. 比Statement对象使用起来更加灵活,更有效率

jdbc_第19张图片

 

使用PreparedStatement更新宠物

                            示例:

 

 

                            jdbc_第20张图片

 

(Prepared)Statement

              // PreparedStatement是看不到真正生成的sql语句的 打印不出来

              // PreparedStatement比Statement更加安全

 

            jdbc_第21张图片

总结

              jdbc_第22张图片

你可能感兴趣的:(悲催笔记OTL..)