`
robinsoncrusoe
  • 浏览: 747084 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

JDBC笔记

    博客分类:
  • JAVA
阅读更多
好久没博一把了,今天总结一下这两天学习JDBC的内容吧!
JDBC API包含在JDK中,被分为两个包:java.sql和javax.sql。java.sql包定义了访问数据库的接口和类,其中一些接口由驱动程序提供商来实现。

1、Driver接口

jdbc.sql.Driver是所有JDBC驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同的厂商实现该接口的类名是不同的,下面列出主要数据库的JDBC驱动的类名。

    * com.microsoft.jdbc.sqlserver.SQLServerDriver,这是sqlserver2000的JDBC驱动类名,它要单独下载,安装完毕后会看到三个包:msbase.jar包,mssqlserver.jar包和 msutil.jar包。
    * orcle.jdbc.driver.OracleDriver,Oracle的JDBC驱动不需要单独下载,在Oracle数据库产品的安装目录下就可以找到。具体在%oracle_home%\ora92\jdbc\lib目录下就可以找到。
    * com.mysql.jdbc.Driver,以前的Mysql驱动类是:org.gjt.mm.mysql.Driver,新的MySql JDBC驱动程序版本为了向后兼容,保留了这个类,这个驱动也需要单独下载。

在具体的程序中不需要直接去访问这些实现了Driver接口的类,而是由驱动程序管理器去调用这些驱动。我们通过JDBC驱动管理器注册每个驱动程序,使用驱动程序管理器类提供的方法来建立数据库的连接,而驱动程序管理器类的连接方法则调用驱动程序类的连接方法connect()来建立数据库的连接。

加载JDBC驱动是调用Class类的静态方法forname(),向其传递要加载的JDBC驱动的类名。在运行时,类加载器从classpath环境变量中定位和加载JDBC驱动类。

2 、建立到数据库的连接

DriverManager类的getConnection()方法建立到数据库的连接,返回一个Connection对象。在DriverManager类中提供了3个重载的getConnection()方法。

    * public static Connection getConnection(String url) throws SQLException
    * public static Connection getConnection(String url,String urer,String password) throws SQLException
    * public static Connection getConnection(String url,Properties) throws SQLException  ,该方法需要数据库的URL和java.util.Properties对象。Properties包含了用于特定数据库所需要的参数,以键-值对的方式指定连接参数。通常情况下,至少需要指定user和password属性。

数据库URL用于标示一个被注册的驱动程序,驱动程序管理器通过这个URL选择正确的驱动程序,从而建立到数据库的连接,jdbc URL的语法如下:

jdbc:subprotocol:subname,整个URL分为三个部分:协议(只有jdbc一种):子协议:子名称。下面给出常用数据库的JDBC URL的形式。

    * SQL Server200

     jdbc:microsoft:sqlserver://localhost:1433;database=数据库名

    * Oracle

    jdbc:oracle:thin:@localhost:1521:ORCL

    * MySql

    jdbc:mysql://localhost:3306/datasource_name

  书接上文。上篇说到与数据库建立连接了。下面是之后的工作。数据库连接被用于向数据库服务器发送命令和SQL语句,在建立连接之后,需要对数据库进行访问,执行SQL语句。在java.sql包中给我们提供了三个接口,分别定义了对数据库调用的不同方式,这三个接口是:Statement、 PreparedStatement和CallableStatement。
访问数据库
1、Statement

    得到Connection对象后,该对象调用它的createStatement()方法创建了一个Statement对象。Statement对象用于执行静态SQL语句,返回执行的结果。Statement接口中定义了下列方法用于执行SQL语句。

   (1)ResultSet executeQuery(String sql) throws SQLException

   (2)int extcuteUpdate(String sql) throws SQLException ,该方法用于执行参数指定的SQL语句:INSERT、UPDATE或者DELETE语句。另外,该方法也可以执行SQL DDL语句,例如:create table

    (3)boolean execute(String sql) throws SQLException ,该方法用于执行多个结果集的SQL语句。

     (4)int [] executeBatch() throws SQLExecption ,该方法允许我们向数据库提交一批命令,然后一起执行。如果执行成功,返回值是一个更新行数的数组。可以通过Statement对象的addBatch()方法将Sql语句加入到命令列表中。如:

Statement stmt=conn.createStatement();

stmt.addBatch("具体的sql语句1");

stmt.addBatch("具体的sql语句2");

stmt.addBatch("具体的sql语句3");......

stmt.addBatch("具体的sql语句n");

stmt.executeBatch();

2、ResultSet

   Statement中的方法返回ResultSet对象。ResultSet对象以逻辑表格的形式封装了执行数据库操作的结果集,ResultSet接口由数据库厂商实现。ResultSet对象维护了一个指向当前数据行的游标,初始的时候,游标在第一行之前,可以通过ResultSet对象的next方法移动到下一行。该方法为:

boolean next() throws SQLException ,ResultSet接口中定义了很多方法来获得当前行中列的数据,根据字段类型的不同,采用不同的方法来获取数据。如:getArray(),getString(),getInt,getObject().....

这些方法中,又提供了两种形式的调用,一种是以列的索引作为参数(从1开始),一种是以列名作为参数,例如,对于getString()方法,两种形式为:

1 、 String getString(int columnIndex) throws SQLException

2 、 String getString(String columnName) throws SQLException

如果不知道要获取的列的数据类型,可以一律采用getString()方法来得到String类型的数据。

3、PreparedStatement

  该接口用于执行不同参数,同一个SQL语句的情况。PreparedStatement接口从Statement接口继承而来。调用Connection 对象的prepareStatement方法得到PreparedStatement对象。PreparedStatement对象所代表的sql语句中的参数用问号(?)来表示,调用PreparedStatement对象的setXXX方法来设置这些参数。该方法有两个参数,第一个要设置的是参数的索引(从1开始),第二个参数要设置是参数的值。看下面一段代码:

  String sql="select * from student where stuID=? and stuname=?";

  conn=DriverManager.getConnection(url);

  PreparedStatement pstmt=cnn.prepareStatement(sql);

  pstmt.setInt(1,2067502009);

  pstmt.setString(2,"liwei");

  stmt.executeUpdate();

4、CallableStatement

该接口对象用于执行SQL存储过程。CallableStatement接口从 PreparedStatement接口继承而来,可以通过调用Connection对象的prepareCall()方法来得到 CallableStatement对象。在执行存储过程前,凡是存储过程中类型为OUT的参数必须注册,可以通过CallableStatement对象的registerOutParameter()方法来完成。对于类型为IN的参数,可以利用setXXX()方法来设置参数的值,我们看下面这段代码:

CallableStatement cstmt=conn.prepareCall("call 存储过程名a(?,?)");

cstmt.registerOutParameter(2,java.sql.Types.INTEGER);

cstmt.setInt(1,2563);

cstmt.execute();

int param =cstmt.getInt(2);

存储过程名a有两个参数,第一个为IN类型,第二个参数为OUT类型。因为有一个OUT类型的参数,所以在执行这个存储过程之前,我们调用 registerOutParameter()方法注册存储过错的第二个参数。registerOutParameter()方法的第二个参数用于指定存储过程参数的JDBC类型,该类型在java.sql.Types中定义。在执行存储过程后,可以直接调用CallableStatement对象的 getXXX()方法取出OUT参数的值。
分享到:
评论

相关推荐

    JDBC笔记JDBC笔记JDBC笔记

    **JDBC(Java Database Connectivity)简介** JDBC是Java编程语言中用来规范客户端程序如何访问数据库的应用程序接口,由Sun ...在提供的压缩包文件中,`JDBC笔记.doc`可能包含了更详细的讲解和示例,建议参考学习。

    很详细的jdbc笔记 决定经典

    这份"很详细的jdbc笔记 决定经典"显然是一个珍贵的学习资源,它涵盖了JDBC的基础和高级概念,对于想要深入理解数据库操作的Java开发者来说极具价值。下面我们将详细探讨JDBC的一些关键知识点。 1. **JDBC驱动程序**...

    JDBC笔记 李勇

    **JDBC笔记 李勇** JDBC(Java Database Connectivity)是Java编程语言中用来规范应用程序如何访问数据库的应用程序编程接口,提供了诸如连接数据库、发送SQL语句、处理结果集等功能。李勇老师的JDBC学习笔记主要...

    JDBC笔记.pdf

    本篇JDBC笔记详细介绍了JDBC编程的相关知识点,包括数据库连接、SQL语句执行、事务处理等,同时也涉及到了对MySQL数据库的增删改查操作和事务的ACID属性等重要概念。 首先,笔记中提到了JDBC驱动的概念。JDBC驱动是...

    jdbc笔记(自写)

    Day1–JDBC概述+JDBC完成CRUD+DAO设计 1.JDBC概述 1.1 什么是持久化(persistence): 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。 ​ 保存数据: ​ 内存中: 掉电之后,数据就没了. ​ 磁盘...

    JDBC笔记.docx

    "JDBC 笔记" 本资源摘要信息主要介绍了 Java 数据库连接(JDBC)的相关知识,包括单例模式、JDBC 概述、JDBC 实现原理、JDBC 开发主要类和 JDBC 开发步骤等内容。 单例模式 单例模式是一种常用的软件设计模式,...

    JDBC笔记 方立勋

    **JDBC笔记 方立勋** JDBC(Java Database Connectivity)是Java编程语言中用来规范应用程序如何访问数据库的应用程序接口(API),它为开发者提供了一种标准的、面向对象的方式来访问各种不同类型的数据库系统。...

    JDBC笔记 JDBC笔记

    ### JDBC核心知识点详解 #### 一、概述 JDBC(Java Database Connectivity)是Java语言访问数据库的标准接口集合,实质上是调用者(通常是开发者或应用程序)与数据库供应商之间的一种协议。这种协议允许开发者...

    JAVA 中JDBC笔记

    JAVA 中JDBC笔记

    JDBC笔记.md

    JDBC笔记.md

    jdbc笔记(简单易懂)

    自己整理jdbc笔记,跟大家共享下。。 自己整理jdbc笔记,跟大家共享下。。 自己整理jdbc笔记,跟大家共享下。。

    JSP JDBC 学习笔记(基础)

    在学习过程中,阅读提供的"jsp 基础教程.doc", "jsp学习 笔记.doc", "JDBC 笔记.doc", "jsp 笔记二.doc"文档,将有助于你深入理解JSP和JDBC的使用方法和最佳实践。这些笔记详细阐述了相关概念、示例代码和常见问题,...

    达内学习用的jdbc与struts笔记.pdf

    【JDBC笔记】 JDBC(Java Database Connectivity)是Java编程语言与各种数据库进行交互的一组标准接口和类库。它是Sun Microsystems为Java开发者定义的一套规范,允许Java应用程序通过Java API来连接和操作数据库。...

    达内,tarena,jdbc笔记,jdbcPPT课件,达内jdbc笔记

    【JDBC基础概念】 JDBC(Java Database Connectivity)是Java编程语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。由Sun Microsystems公司开发并随Java SDK发布,...

    JDBC笔记_JDBC学习笔记_

    在本篇JDBC学习笔记中,我们将深入探讨JDBC的基础知识、核心概念以及实际应用。 一、JDBC基础 1. JDBC驱动程序:JDBC驱动是连接Java应用程序和数据库之间的桥梁。根据实现方式,JDBC驱动分为四种类型:类型1(JDBC...

    java JDBC综合笔记

    Java JDBC综合笔记详细介绍了使用Java语言通过JDBC操作数据库的基本方法和技巧,包括数据库的创建、表的操作、数据的增删改查、SQL语句的使用等。 在数据库的创建方面,笔记中提到了如何创建数据库以及如何设置...

    JDBC笔记,初学者的笔记

    Java JDBC(Java Database Connectivity)是Java编程语言与各种数据库之间通信的标准接口,它允许Java应用程序连接到数据库并执行SQL操作。对于初学者来说,理解JDBC的基本概念和使用方法是至关重要的。 首先,JDBC...

Global site tag (gtag.js) - Google Analytics