当前位置:首页 » 编程语言 » java的jdbc

java的jdbc

发布时间: 2024-10-28 17:00:58

㈠ 彻底搞懂JDBC的运行过程

前几天笔者发布了博客,手写mybatis彻底搞懂框架原理。为了帮助初学者更好理解mybatis框架,这次讲解一下java的JDBC的运行过程。

JDBC的作用

JDBC的全称是Java DataBase Connection,也就是Java数据库连接,我们可以用它来操作关系型数据库。JDBC接口及相关类在java.sql包和javax.sql包里。我们可以用它来连接数据库,执行SQL查询,存储过程,并处理返回的结果。

JDBC接口让Java程序和JDBC驱动实现了松耦合,使得切换不同的数据库变得更加简单。

JDBC的连接步骤

执行一次JDBC连接,分六个步骤进行:

1. 导入包

在程序中包含数据库编程所需的JDBC类。大多数情况下,使用 import java.sql.* 就足够了

2. 注册JDBC驱动程序

需要初始化驱动程序,这样就可以打开与数据库的通信。

3. 打开一个连接

使用DriverManager.getConnection()方法来创建一个Connection对象,它代表一个数据库的物理连接。

4. 执行一个查询

需要使用一个类型为Statement或PreparedStatement的对象(两者区别看后文),并提交一个SQL语句到数据库执行查询。

5. 从结果集中提取数据

这一步中演示如何从数据库中获取查询结果的数据。使用ResultSet.getXXX()方法来检索的数据结果

6. 清理环境资源

在使用JDBC与数据交互操作数据库中的数据后,应该明确地关闭所有的数据库资源以减少资源的浪费。本文使用了try with resources方式关闭资源,这是JDK7的语法糖,读者可自行搜索。

完整代码如下。

JDBC的最佳实践

JDBC是如何实现Java程序和JDBC驱动的松耦合?

JDBC API使用Java的反射机制来实现Java程序和JDBC驱动的松耦合。看一下上文的JDBC示例,你会发现所有操作都是通过JDBC接口完成的,而驱动只有在通过Class.forName反射机制来加载的时候才会出现。

这是Java核心库里反射机制的最佳实践之一,它使得应用程序和驱动程序之间进行了隔离,让迁移数据库的工作变得更简单。

Statement和PreparedStatement区别

编译

创建时的区别:

执行时的区别:

由上可以看出,PreparedStatement有预编译的过程,已经绑定sql,之后无论执行多少次,都不会再去进行编译,而Statement 不同,如果执行多次,则相应的就要编译多少次sql,所以从这点看,PreparedStatement的效率会比Statement要高一些。PreparedStatement是预编译的,所以可以有效的防止SQL注入等问题

占位符

PrepareStatement可以替换变量在SQL语句中可以包含?,可以用?替换成变量。

而Statement只能用字符串拼接。

JDBC的ResultSet

在查询数据库后会返回一个ResultSet,它就像是查询结果集的一张数据表。

ResultSet对象维护了一个游标,指向当前的数据行。开始的时候这个游标指向的是第一行。如果调用了ResultSet的next()方法游标会下移一行,如果没有更多的数据了,next()方法会返回false。可以在for循环中用它来遍历数据集。

默认的ResultSet是不能更新的,游标也只能往下移。也就是说你只能从第一行到最后一行遍历一遍。不过也可以创建可以回滚或者可更新的ResultSet,像下面这样。

当生成ResultSet的Statement对象要关闭或者重新执行或是获取下一个ResultSet的时候,ResultSet对象也会自动关闭。

可以通过ResultSet的getter方法,传入列名或者从1开始的序号来获取列数据。

ResultSet的不同类型

根据创建Statement时输入参数的不同,会对应不同类型的ResultSet。如果你看下Connection的方法,你会发现createStatement和prepareStatement方法重载了,以支持不同的ResultSet和并发类型。

ResultSet对象有三种类型。

ResultSet有两种并发类型。

㈡ JDBC使用步骤过程

JDBC操作数据库的基本步骤:

1、加载JDBC驱动程序。

在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。成功加载后,会将Driver类的实例注册到DriverManager类中。

2、提供JDBC连接的URL。

连接URL定义了连接数据库时的协议、子协议、数据源标识。

书写形式:协议:子协议:数据源标识。

3、创建数据库的连接。

要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象, 该对象就代表一个数据库的连接。

使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和 密码来获得。

4、创建一个Statement,要执行SQL语句,必须获得java.sql.Statement实例。

Statement实例分为以下3 种类型:

(1)执行静态SQL语句。通常通过Statement实例实现。

(2)执行动态SQL语句。通常通过PreparedStatement实例实现。

(3)执行数据库穗闹早存储过程。通常通过CallableStatement实例实现。

5、执行SQL语句。

Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate 和execute

6、处理两种情况的结果。

(1)执行更新返回的是本次操作影响到的记录数。

(2)执行查询返回的结果是一个ResultSet对象。

ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些弯李 行中数据的访问

使用结果集(ResultSet)对象的访问方法获取数据。

7、关闭JDBC对象(关闭结果集-->关闭数据库操作对象-->关闭连接)。

操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 明顺序相反:

(1)关闭记录集。

(2)关闭声明。

(3)关闭连接对象。

扩猜雀展资料:

一、JDBC(Java DataBase Connectivity,java数据库连接)

是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。

二、特性

Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。

三、用途

简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。

㈢ java jdbc的中文思想

  1. JDBC概念

    JDBC(Java DataBase Connectivity)是一种数据库连接技术,
    能实现Java程序对各种数据库的访问。由一组使用Java语言编写的类和接口(JDBC API)
    组成,他们位于java.sql以及javax.sql中。

  2. 作用:
    1.建立与数据库的访问连接。
    2.将编写好的SQL语句发送到数据库执行。
    3.对数据库返回的执行结果进行处理。

  3. JDBC API工作的四个环节:
    1.DriverManager类:依据数据库的不同,管理JDBC驱动。
    2.Connection接口:负责连接数据库并担任传送数据的任务。
    3.Statement接口:有Connection产生,负责执行SQL语句。
    4.ResultSet接口:负责保存Statement执行后所产生的查询结果。

  4. JDBC访问数据库的步骤:
    1.使用Class.forName()方法加载JDBC驱动类。
    Class.forName("JDBC驱动类的名称");
    如果系统中不存在给定的类,则会引发ClassNotFoundExceptionyichang。
    这里需要try..catch..
    2.使用DriverManager类获取数据库的连接。
    Connection connection=DriverManager.getConnection(url,username,password);
    DriverManager类跟踪已注册的驱动程序,当调用getConnection()方法时,它会
    搜索整个驱动程序列表,直到找到能够连接至数据库连接字符串中的指定的数据库
    的驱动程序。加载此驱动程序之后,将使用DriverManager类的getConnection()方法
    建立与数据库的连接。
    3.创建PreparedStatement/Statement接口的实列,发送SQL语句,
    String sql="select * from table";
    Statement st=connection.createStatement();
    ResultSet rs=st.executeQuery(sql);
    这里需要明白一点:Statement 并不执行SQL语句,只是将SQL语句
    发送给数据库,由数据库来执行SQL语句。

    4.处理SQL执行结果,并得到结果集,
    执行SQL语句后返回一个结果集ResultSet对象。
    处理结果集使用ResultSet对象的next()方法判断结果集是否包含数据。
    在结果集部位空的情况下调用ResultSet的getXxx()方法得到记录中字段
    对应的值。
    while(rs.next()){
    int id=rs.getInt("id");
    String name=rs.getString("name");
    }

  5. 释放资源
    1.先创建的后释放,后创建的先释放。
    2.将释放资源放在finally块中,确保程序最终执行释放资源的语句。
    if(rs!=null){
    rs.close();
    }
    if(st!=null){
    st.close();
    }
    if(connection!=null){
    connection.close();
    }
    这里需要try..catch..

㈣ java中使用JDBC完成数据库操作的基本步骤是什么

创建一个以JDBC连接数据库的程序,包含7个步骤: x0dx0a 1、加载JDBC驱动程序: x0dx0a 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), x0dx0a 这通过java.lang.Class类的静态方法forName(String className)实现。 x0dx0a 例如: x0dx0a try{ x0dx0a //加载MySql的驱动类 x0dx0a Class.forName("com.mysql.jdbc.Driver") ; x0dx0a }catch(ClassNotFoundException e){ x0dx0a System.out.println("找不到驱动程序类 ,加载驱动失败!"); x0dx0a e.printStackTrace() ; x0dx0a } x0dx0a 成功加载后,会将Driver类的实例注册到DriverManager类中。 x0dx0a 2、提供JDBC连接的URL x0dx0a •连接URL定义了连接数据库时的协议、子协议、数据源标识。 x0dx0a •书写形式:协议:子协议:数据源标识 x0dx0a 协议:在JDBC中总是以jdbc开始 x0dx0a 子协议:是桥连接的驱动程序或是数据库管理系统名称。 x0dx0a 数据源标识:标记找到数据库来源的地址与连接端口。 x0dx0a 例如:(MySql的连接URL) x0dx0a jdbc:mysql: x0dx0a //localhost:3306/test?useUnicode=true&characterEncoding=gbk ; x0dx0a useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为 x0dx0a gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。 x0dx0a 3、创建数据库的连接 x0dx0a •要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象, x0dx0a 该对象就代表一个数据库的连接。 x0dx0a •使用DriverManager的getConnectin(String url , String username , x0dx0a String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和 x0dx0a 密码来获得。 x0dx0a 例如: x0dx0a //连接MySql数据库,用户名和密码都是root x0dx0a String url = "jdbc:mysql://localhost:3306/test" ; x0dx0a String username = "root" ; x0dx0a String password = "root" ; x0dx0a try{ x0dx0a Connection con = x0dx0a DriverManager.getConnection(url , username , password ) ; x0dx0a }catch(SQLException se){ x0dx0a System.out.println("数据库连接失败!"); x0dx0a se.printStackTrace() ; x0dx0a } x0dx0a 4、创建一个Statement x0dx0a •要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3 x0dx0a 种类型: x0dx0a 1、执行静态SQL语句。通常通过Statement实例实现。 x0dx0a 2、执行动态SQL语句。通常通过PreparedStatement实例实现。 x0dx0a 3、执行数据库存储过程。通常通过CallableStatement实例实现。 x0dx0a 具体的实现方式: x0dx0a Statement stmt = con.createStatement() ; x0dx0a PreparedStatement pstmt = con.prepareStatement(sql) ; x0dx0a CallableStatement cstmt = x0dx0a con.prepareCall("{CALL demoSp(? , ?)}") ; x0dx0a 5、执行SQL语句 x0dx0a Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate x0dx0a 和execute x0dx0a 1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句 x0dx0a ,返回一个结果集(ResultSet)对象。 x0dx0a 2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或 x0dx0a DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等 x0dx0a 3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的 x0dx0a 语句。 x0dx0a 具体实现的代码: x0dx0a ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ; x0dx0a int rows = stmt.executeUpdate("INSERT INTO ...") ; x0dx0a boolean flag = stmt.execute(String sql) ; x0dx0a 6、处理结果 x0dx0a 两种情况: x0dx0a 1、执行更新返回的是本次操作影响到的记录数。 x0dx0a 2、执行查询返回的结果是一个ResultSet对象。 x0dx0a • ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些 x0dx0a 行中数据的访问。 x0dx0a • 使用结果集(ResultSet)对象的访问方法获取数据: x0dx0a while(rs.next()){ x0dx0a String name = rs.getString("name") ; x0dx0a String pass = rs.getString(1) ; // 此方法比较高效 x0dx0a } x0dx0a (列是从左到右编号的,并且从列1开始) x0dx0a 7、关闭JDBC对象 x0dx0a 操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 x0dx0a 明顺序相反: x0dx0a 1、关闭记录集 x0dx0a 2、关闭声明 x0dx0a 3、关闭连接对象 x0dx0a if(rs != null){ // 关闭记录集 x0dx0a try{ x0dx0a rs.close() ; x0dx0a }catch(SQLException e){ x0dx0a e.printStackTrace() ; x0dx0a } x0dx0a } x0dx0a if(stmt != null){ // 关闭声明 x0dx0a try{ x0dx0a stmt.close() ; x0dx0a }catch(SQLException e){ x0dx0a e.printStackTrace() ; x0dx0a } x0dx0a } x0dx0a if(conn != null){ // 关闭连接对象 x0dx0a try{ x0dx0a conn.close() ; x0dx0a }catch(SQLException e){ x0dx0a e.printStackTrace() ; x0dx0a } x0dx0a }

㈤ jdbc是什么

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。JDBC API提供了一个标准接口,用于与任何关系数据库管理系统(RDBMS)进行交互。

JDBC API包含以下主要组件:

1.JDBC Driver(JDBC驱动程序)

2.Connection(连接)

3.Statement(声明)

4.ResultSet(结果集)

下面我们简单的给大家介绍其组件。

JDBC驱动程序

JDBC驱动程序是一组Java类,它们实现JDBC接口以与特定数据库进行交互。几乎所有数据库供应商(如MySQL,Oracle,Microsoft SQL Server)都提供JDBC驱动程序。例如,MySQL提供了一个名为MySQL Connection / J的JDBC驱动程序,它允许您通过标准JDBC API使用MySQL数据库。

有三种类型的JDBC驱动程序,包括JDBC本机API驱动程序,JDBC-net驱动程序和JDBC驱动程序。

JDBC驱动程序是用纯Java编写的。它将JDBC调用转换为特定于MySQL的调用,并将调用直接发送到特定数据库。要使用JDBC驱动程序,您需要在应用程序中包含驱动程序JAR文件。MySQL Connector / J是JDBC驱动程序。

连接

JDBC的第一个也是最重要的组件是Connection对象。在Java应用程序中,首先加载JDBC驱动程序,然后建立与数据库的连接。通过Connection对象,您可以与数据库进行交互,例如,创建一个Statement来对表执行SQL查询。您可以一次打开多个数据库连接。

声明

要执行SQL查询,例如SELECT,INSERT,UPDATE,DELETE等,可以使用Statement对象。您可以通过Connection对象创建Statement 对象。JDBC提供了几种类型的不同用途,如语句PreparedStatement,CallableStatement 。

结果集

从数据库查询数据后,您将获得一个ResultSet对象。该ResultSet对象提供了一组API,允许您遍历查询结果。

使用JDBC的典型流程如下:

1.首先,加载JDBC驱动程序并创建与数据库的连接。

2.然后,创建Statement并执行查询以获取ResultSet。

3.接下来,遍历并处理ResultSet。

4.关闭ResultSet,Statement和Connection。

本篇文章我们向大家介绍了有关JDBC及其主要组件的一些基本信息:JDBC驱动程序,连接,语句和ResultSet。希望对需要的朋友有所帮助。

㈥ Java里面的JDBC是什么意思啊

Java数据库连接是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。

这种类型的驱动把所有JDBC的调用传递给ODBC,再让后者调用数据库本地驱动代码(也就是数据库厂商提供的数据库操作二进制代码库,例如Oracle中的oci.dll)。

API概述

JDBC API主要位于JDK中的java.sql包中(之后扩展的内容位于javax.sql包中),主要包括(斜体代表接口,需驱动程序提供者来具体实现):

DriverManager:负责加载各种不同驱动程序(Driver),并根据不同的请求,向调用者返回相应的数据库连接(Connection)。Driver:驱动程序,会将自身加载到DriverManager中去,并处理相应的请求并返回相应的数据库连接(Connection)。Connection:数据库连接,负责与进行数据库间通讯,SQL执行以及事务处理都是在某个特定Connection环境中进行的。

可以产生用以执行SQL的Statement。Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)。CallableStatement:

用以调用数据库中的存储过程。SQLException:代表在数据库连接的建立和关闭和SQL语句的执行过程中发生了例外情况(即错误)。

㈦ 什么是JDBC

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。

(7)java的jdbc扩展阅读:

jdbc的组件框架:

JavaSoft提供三种JDBC产品组件,它们是Java开发工具包(JDK)的组成部份:JDBC驱动程序管理器、JDBC驱动程序测试工具包和JDBC-ODBC桥。

JDBC驱动程序管理器是JDBC体系结构的支柱。它实际上很小,也很简单;其主要作用是把Java应用程序连接到正确的JDBC驱动程序上,然后即退出。

JDBC驱动程序测试工具包为使JDBC驱动程序运行您的程序提供一定的可信度。只有通过JDBC驱动程序测试的驱动程序才被认为是符合JDBC标准TM的。

JDBC-ODBC桥使ODBC驱动程序可被用作JDBC驱动程序。它的实现为JDBC的快速发展提供了一条途径,其长远目标提供一种访问某些不常见的DBMS(如果对这些不常见的DBMS未实现JDBC)的方法。

参考资料来源:网络—jdbc

热点内容
c语言定义函数数组 发布:2024-10-28 19:09:49 浏览:599
算法的艺术 发布:2024-10-28 19:08:58 浏览:833
安卓手机为什么不能用苹果有线耳机 发布:2024-10-28 18:36:06 浏览:208
mvc脚本 发布:2024-10-28 18:29:33 浏览:649
安卓怎么修改版本号 发布:2024-10-28 18:23:39 浏览:728
面向接口编程的理解 发布:2024-10-28 18:18:56 浏览:597
服务器存储备份 发布:2024-10-28 18:15:59 浏览:789
解压整理 发布:2024-10-28 18:10:57 浏览:697
在线源码转换 发布:2024-10-28 18:03:07 浏览:883
吃鸡ios系统怎么转安卓系统 发布:2024-10-28 17:48:31 浏览:412