?????JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多 种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可 以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序
??????Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰 出语言。所需要的只是 Java应用程序与各种不同数据库之间进行对话的方法。
??????JDBC可以在各种平台上使用Java,如Windows,Mac OS和各种版本的UNIX。
??????JDBC库包括通常与数据库使用相关的下面提到的每个任务的API。
????????????- 连接数据库。
????????????- 创建SQL或MySQL语句。
????????????- 在数据库中执行SQL或MySQL查询。
????????????- 查看和修改生成的记录。
??????JDBC API支持用于数据库访问的两层和三层处理模型,但通常,JDBC体系结构由两层组成:
????????????- JDBC API:这提供了应用程序到JDBC管理器连接。
????????????- JDBC驱动程序API:这支持JDBC管理器到驱动程序连接。
JDBC API使用驱动程序管理器和特定于数据库的驱动程序来提供与异构数据库的透明连接。
??????DriverManager:
???????????? 此类管理数据库驱动程序列表。使用通信子协议将来自java应用程序的连接请求 与适当的
????????????数据库驱动程序匹配。
??????Driver:
????????????此接口处理与数据库服务器的通信,我们很少会直接与Driver对象进行交互。而是使用
????????????DriverManager对象来管理这种类型的对象。
??????Connection:
????????????该界面具有用于联系数据库的所有方法。连接对象表示通信上下文,即,与数据库 的所有
????????????通信仅通过连接对象。
??????Statement:
????????????使用从此接口创建的对象将SQL语句提交到数据库。除了执行存储过程之外,一些派 生接
????????????口还接受参数。
??????ResultSet:
????????????在使用Statement对象执行SQL查询后,这些对象保存从数据库检索的数据。它作为一 个迭
????????????代器,允许我们移动其数据。
??????SQLException:
????????????此类处理数据库应用程序中发生的任何错误
??????构建JDBC应用程序涉及以下六个步骤:
?????使用数据库URL和属性对象
?????关闭数据库连接
??????????为确保连接关闭,您可以在代码中提供一个“finally”块。一个finally块总是执行,不管是否发
??????????生异常。 要关闭上面打开的连接,你应该调用close()方法如下 -
???????????????conn.close();
?????一旦获得了连接,我们可以与数据库进行交互。JDBC Statement和PreparedStatement接口定
?????义了使 您能够发送SQL命令并从数据库接收数据的方法和属性。
?????用于对数据库进行通用访问。运行时使用静态SQL语句时很有用。Statement接口不能接受参数
?????当您计划多次使用SQL语句时使用。PreparedStatement接口在运行时接受 输入参数。
?????Statement:
??????????创建语句对象(状态通道)
??????????在使用Statement对象执行SQL语句之前,需要使用Connection对象的createStatement()
??????????方法创建 一个
???????????????Statement stmt = null;
???????????????stmt = conn.createStatement( );
??????????创建Statement对象后,您可以使用它来执行一个SQL语句,其中有三个执行方法之一。
while(resultSet.next()){ //判断是否有下一条
//取出数据 resultSet.getxxx("列明"); xxx代表数据类型
}
?????关闭Statement对象
??????????就像我们关闭一个Connection对象以保存数据库资源一样,由于同样的原因,还应该关
??????????闭Statement对 象。
??????????一个简单的调用close()方法将执行该作业。如果先关闭Connection对象,它也会关闭
??????????Statement对 象。但是,应始终显式关闭Statement对象,以确保正确清理。
?????注意:关闭所有资源时要先判断是否为空