JDBC编程(Java)

JDBC(Java Database Connectivity):java数据库连接,是一种执行SQL语句的
Java API(Application Programming Interface),它是Java中数据库连接规范,这个API由java.sql.* ,javax.sql.*包中的一些类和接口组成

java.sql.*:有关客户端连接数据库及数据访问使用
javax.sql.*:有关服务器端增加服务器功能

JDBC这组API的主要的目的

  • 一方面可让java程序设计员,提供单一的数据访问形式,可以有效的访问任何形式的数据,从关系数据库、工作表到一般的文本文件
  • 另一方面JDBC使得不同的数据库供应厂商,实现相同的数据库访问方式,使不同的数据来源有了相同的访问方式
    在这里插入图片描述

数据库编程的必要条件

编程语言,例如:java,c,c++等等
数据库,如:Oracle,Mysql等等
数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包

JDBC主要的功能:

1、与数据库创建连接
2、传送SQL命令给数据库,操作数据库和数据表
3、接收及处理数据库所执行的结果

JDBC有相应的组件类来完成以上的功能

1、利用Connection类来创建数据库连接
2、利用Statement类来传送SQL命令给数据库、操作数据库及操作表
3、利用ResultSet来接收及处理数据库所执行的结果

但是在创建数据库连接之前,我们必须找到合适的Driver,也就是数据库连接的驱动程序,根据数据库的连接方式,驱动程序有四种类型,驱动程序大部分由数据库厂商进行提供,每一种厂商都有不同类型连接方式。
JDBC使用步骤

1、加载驱动程序(Driver)
2、创建数据库连接(Connection)
3、创建操作命令(Statement)
4、使用操作命令执行SQL
5、处理结果集(Resultset)
6、释放资源

  • 2、创建数据库连接(Connection)
    Connection接口实现类由数据库提供,获取Connection对象的方式有两种方式:
    • 一种是通过DriverManager(驱动管理类)的静态方法获取
      // 加载JDBC驱动程序
      Class.forName("com.mysql.jdbc.Driver");
      // 创建数据库连接
      Connection connection = DriverManager.getConnection(url);
      
    • 一种是Datasource(数据源)对象获取。实际应用中我们会用到数据源
      DataSource ds = new MysqlDataSource();
      ((MysqlDataSource) ds).setUrl("jdbc:mysql://localhost:3306/test");
      ((MysqlDataSource) ds).setUser("root");
      ((MysqlDataSource) ds).setPassword("root");
      Connection connection = ds.getConnection();
      

我们需要注意的是MysqlDataSource()没有连接池的能力
这两种方式的区别是:

  1. DriverManager类来获取的Connection连接,是无法重复利用的,每次使用完以后释放资源时,通过connection.close()都是关闭物理连接。
  2. DataSource提供连接池的支持。连接池在初始化时将创建一定数量的数据库连接,这些连接是可以复用的,每次使用完数据库连接,释放资源调用connection.close()都是将Conncetion连接对象回收。
    在这里插入图片描述
  • 3、创建操作命令(Statement)
    在这里插入图片描述
    其实呢,JDBC API 提供了三种Statement对象

    • Statement :用于执行不带参数的简单的SQL语句

    • PreparedStatement:

      1、用于执行带参数或者不带参数的SQL语句
      2、SQL语句会预编译在数据库系统
      3、执行速度快于Statement对象

    • CallableStatement:用于执行数据库的存储过程
      在实际开发中我们常用的就是PreparedStatement
      在这里插入图片描述

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

  • 5、处理结果集(Resultset)

Resultset是我们执行查询的SQL命令之后,数据库返回查询数据所存储的对象,在Resultset对象中,以一个游标(Cursor)指向目前的记录行,一开始游标是在第一行记录行之前,Resultset对象提供了next方法,可以让我们的游标向下移动指向下一条记录行,当游标移动到没有任何记录后,next方法会返回False,因此我们通常使用while循环来拿到Resultset内所有的内容。

发布了50 篇原创文章 · 获赞 19 · 访问量 4706

猜你喜欢

转载自blog.csdn.net/qq_44723296/article/details/103794329