- 浏览: 978493 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
Mr.Cheney:
去掉 UUID字符串中的“-” 直接replaceAll(&q ...
JAVA生成全局唯一ID 使用 java.util.UUID -
呜哩喵:
楼主nice
java中的时间操作 -
zxs6587:
Thinking inJava我读着好像说要建立基类对象啊!请 ...
创建子类的对象时也要创建其所有父类的对象? -
just_Word:
getFullYear
date.getyear -
JamesQian:
我觉得楼上的synchronized(this),notify ...
notify() wait()
1 JDBC概述
JDBC(Java DataBase Connectivity)称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成,有了JDBC就可以用同一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。换言之,有了JDBC,就不必为访问Mysql数据库专门写一个程序,为访问Oracle又专门写一个程序等等,只需用 JDBC写一个程序就够了,它可以向相应数据库发送sql语句。
JDBC提供了一组类和接口用于对数据库的访问,用JDBC访问数据库基本要经历一下几个步骤
1 于数据库建立连接
2 执行sql语句以便对数据库进行各种操作,返回操作数据库的结果
3 关闭数据库连接
JDBC API既支持数据库访问的两层模型,也支持三层模型
在两层模型中,Java API或应用程序直接与数据库进行对话,这将需要一个JDBC驱动程序来与所访问的特定数据库管理系统进行通信,用户的SQL语句被送往数据库,而其结果将被送回给用户。
在三层模型中,命令首先是发送到服务的中间价,然后由它将sql语句发送给数据库,数据库对sql语句进行处理并将结果送回到中间件,中间件再将结果发送给用户。
Java操作数据库都是通过JDBC来实现的,而JDBC的一个很大的优点在于实现了接口的统一,也就是说与数据库的无关性,但在具体运用中,往往由于数据库的不同需要去修改数据库的链接代码。
针对不同的数据库,具体的JDBC驱动包是不一样的,所以在使用不听的数据库时,需要对好入入座。
2 JDBC的常用接口和类
JDBC是一个规范,遵循JDBC几口规范,各个数据库厂家各自实现自己的驱动程序,应用在获取数据库连接时,需要以URL 的方式制定是那种类型的驱动,在或得特定的链接之后,可按照固定的接口操作不同类型的数据库
在JDBC中提供了四个类进行数据库管理的操作
(1) DriverManager类用来装载驱动程序,它所有的成员都是静态成员,所以在程序中无须对它进行实例化,直接通过类名就可以访问.DriverManager是JDBC 的管理层,作用于用户和驱动程序间加载驱动程序,DriverManager类跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接
当DriverManager调用getConnection()方法来建立于数据库的链接时,DriverManager类首先从它已加载的驱动程序池中找到一个可以接受该数据库URL的驱动程序,然后请求该驱动程序使用相关的数据库URL去连接数据库。
通过调用方法Class.forName(),将显式的加载驱动程序类。forName的参数应该是 “公司名.数据库名.驱动程序名”
当调用DriverManager.getConnection()发出连接请求时,DriverManager将检查每一个驱动程序,看它是否可以建立连接
Connection getConnection(String url.String usr,String password)
url表示指向数据库的URL它的大致格式如下,jdbc:(subprotocol):(subname)
其中subprotrol表示子协议,制定连接何种数据库或使用什么方式连接数据库,subname表示确定一个连接,可以使一个数据源名,也可以指向一个网上的数据库
(2)Connection类
Connection 类是指向一个数据库的连接,作用是管理指向数据库的连接,连接过程中包含所执行的sql语句和在该链接上返回的结果,一个应用程序可以与单个数据库有一个或多个连接,也可以与许多数据库有链接。在完成同数据库连接的所有任务之后关闭该链接
常用的方法有
(1)close().用于关闭和数据库的链接,当一个Connection使用后,并没有被关闭,系统会将此连接保留一段时间,知道超时。使用方法如下
conn.close()
(2)isClosed()判断一个连接是否已经关闭,返回一个布尔值,关闭时返回true。反之
(3)commit()。提交对数据库的更改,使其生效,只有在禁止自动提交时,(setAutoCommit(false))需要使用这个方法,否则对数据库的更改会自动提交到数据库。
(4)getAutoCommit().检测该链接是否处于自动提交状态,自动状态时为true反之false
(5)isReadOnly()检测该链接是否是只读状态,返回一个布尔值。
(6)setAutoCommit()设置操作是否自动提交到数据库,默认情况是true,即新建的链接处于自动提交模式。
(7)setReadOnly可以把一个连接设置为只读
(8)createStatement .用于创建一个Statement,Statement用于执行SQL语句,使用方法
Statement stm=conn.createStatement();
createStatement()还可以带一些参数
如 Statement stm=conn.createStatement(type,concurrency);
其中type有以下几种情况
ResultSet.TYPE_FORWARD_ONLY,表示结果集记录指针只能向前移动
ResultSet.TYPE_SCROLL_INSENSITIVE表示结果集可以向前后移动,但数据库内容发生变化时结果集不变。
ResultSet.TYPE_SCROLL_SENTIVITY表示结果集可以前后移动,但数据库内容发生变化时结果集同步改变
参数concurrency决定是否可以用结果集更新
ResultSet.CONCUR_READ_ONLY,表示结果集只读,不能跟新数据表中的数据
ResultSet.CONCUR_UPDATE,表示是否可以通过结果集跟新数据库数据
(9)prepareCall(String sql)创建一个CallableStatement用于执行存储过程、
(10)prepareStatement()一条带有或不带IN
参数的sql语句可以被预编译并存放在PrepareStatement对象中,该对象用于有效的多次执行该语句。
(11)rollback。回滚当前的操作,并释放当前连接保存的任何数据锁,只有在禁止自动提交后才能使用该方法
3.Statement类
Java.sql.Statement用于在基层连接上运行sql语句,并且访问结果。Connection接口提供了生成Statement的方法,一般情况下通过connection.createStatement方法就可以得到Statement对象的实例
在使用中有三种Statment对象,分别是Statement,PrepareStatement和CallableStatement.
Statement对象用于执行不带参数的基本的sql语句,他的典型使用
Connection conn=DriverManager.getConnection(……);
Statement stm=conn.createStatement();
ResultSet rs=stm.executeQuery("sql");
……
PrepareStatement对象是从Statement继承过来的。用于执行带或不带IN参数的预编译的SQL语句,它的典型使用是
Connection conn=DriverManager.getConnection("url");
PrepareStatement pstm=conn.prepareStatement(" insert into person values(?,?,?,?)");
pstm.setInt(1,1);
pstm.setString(2,"twm");
pstm.setString(3,"boy");
pstm.setInt(4,25);
pstm.executeUpdate();
…………
CallableStatement对象是PrepareStatement继承过来的用于执行对数据库存储过程的调用
Statement对像还提供许多方法,其中常用的方法有
(1)execute().运行sql语句,返回一个是否有结果集的布尔值,使用方法如下
stm.execute(String sql);
其中参数是一条sql语句
(2)executeQuery()执行一条返回ResultSet的sql语句,返回值室友查询产生的数据集合,使用方法如下
stm.executeQuery(String sql);
其中sql是静态的select语句
(3)executeUpdate(),执行INSERT.UPDATE.DELETE或一条没有返回数据集的sql语句,
该方法返回影星语句的条数,
executeUpdate(String sql);
(4)cancel()用于一个线程取消令一个线程正在执行的语句使用方法如下
stm.cancel();
(5)getResultSet()用于得到当前ResultSet的结果
stm.getResultSet();
4 ResultSet类
在Statement执行sql语句时,有时候会返回ResultSet结果集,ResultSet往往包含的是查询的结果集,并可以通过它的不同的方法提取出查询结果
此接口抽象了运行select语句的结果,提供了逐行访问结果的方法,通过他可以访问结果的不同字段,它通过next()方法将当前的指针向前移动一行,最初指针位于第一行之前,因此第一次条用next()方法,把指针置于第一行上,使他成为当前行,随着每次调用next()依次获得ResultSet行
JDBC(Java DataBase Connectivity)称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成,有了JDBC就可以用同一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。换言之,有了JDBC,就不必为访问Mysql数据库专门写一个程序,为访问Oracle又专门写一个程序等等,只需用 JDBC写一个程序就够了,它可以向相应数据库发送sql语句。
JDBC提供了一组类和接口用于对数据库的访问,用JDBC访问数据库基本要经历一下几个步骤
1 于数据库建立连接
2 执行sql语句以便对数据库进行各种操作,返回操作数据库的结果
3 关闭数据库连接
JDBC API既支持数据库访问的两层模型,也支持三层模型
在两层模型中,Java API或应用程序直接与数据库进行对话,这将需要一个JDBC驱动程序来与所访问的特定数据库管理系统进行通信,用户的SQL语句被送往数据库,而其结果将被送回给用户。
在三层模型中,命令首先是发送到服务的中间价,然后由它将sql语句发送给数据库,数据库对sql语句进行处理并将结果送回到中间件,中间件再将结果发送给用户。
Java操作数据库都是通过JDBC来实现的,而JDBC的一个很大的优点在于实现了接口的统一,也就是说与数据库的无关性,但在具体运用中,往往由于数据库的不同需要去修改数据库的链接代码。
针对不同的数据库,具体的JDBC驱动包是不一样的,所以在使用不听的数据库时,需要对好入入座。
2 JDBC的常用接口和类
JDBC是一个规范,遵循JDBC几口规范,各个数据库厂家各自实现自己的驱动程序,应用在获取数据库连接时,需要以URL 的方式制定是那种类型的驱动,在或得特定的链接之后,可按照固定的接口操作不同类型的数据库
在JDBC中提供了四个类进行数据库管理的操作
(1) DriverManager类用来装载驱动程序,它所有的成员都是静态成员,所以在程序中无须对它进行实例化,直接通过类名就可以访问.DriverManager是JDBC 的管理层,作用于用户和驱动程序间加载驱动程序,DriverManager类跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接
当DriverManager调用getConnection()方法来建立于数据库的链接时,DriverManager类首先从它已加载的驱动程序池中找到一个可以接受该数据库URL的驱动程序,然后请求该驱动程序使用相关的数据库URL去连接数据库。
通过调用方法Class.forName(),将显式的加载驱动程序类。forName的参数应该是 “公司名.数据库名.驱动程序名”
当调用DriverManager.getConnection()发出连接请求时,DriverManager将检查每一个驱动程序,看它是否可以建立连接
Connection getConnection(String url.String usr,String password)
url表示指向数据库的URL它的大致格式如下,jdbc:(subprotocol):(subname)
其中subprotrol表示子协议,制定连接何种数据库或使用什么方式连接数据库,subname表示确定一个连接,可以使一个数据源名,也可以指向一个网上的数据库
(2)Connection类
Connection 类是指向一个数据库的连接,作用是管理指向数据库的连接,连接过程中包含所执行的sql语句和在该链接上返回的结果,一个应用程序可以与单个数据库有一个或多个连接,也可以与许多数据库有链接。在完成同数据库连接的所有任务之后关闭该链接
常用的方法有
(1)close().用于关闭和数据库的链接,当一个Connection使用后,并没有被关闭,系统会将此连接保留一段时间,知道超时。使用方法如下
conn.close()
(2)isClosed()判断一个连接是否已经关闭,返回一个布尔值,关闭时返回true。反之
(3)commit()。提交对数据库的更改,使其生效,只有在禁止自动提交时,(setAutoCommit(false))需要使用这个方法,否则对数据库的更改会自动提交到数据库。
(4)getAutoCommit().检测该链接是否处于自动提交状态,自动状态时为true反之false
(5)isReadOnly()检测该链接是否是只读状态,返回一个布尔值。
(6)setAutoCommit()设置操作是否自动提交到数据库,默认情况是true,即新建的链接处于自动提交模式。
(7)setReadOnly可以把一个连接设置为只读
(8)createStatement .用于创建一个Statement,Statement用于执行SQL语句,使用方法
Statement stm=conn.createStatement();
createStatement()还可以带一些参数
如 Statement stm=conn.createStatement(type,concurrency);
其中type有以下几种情况
ResultSet.TYPE_FORWARD_ONLY,表示结果集记录指针只能向前移动
ResultSet.TYPE_SCROLL_INSENSITIVE表示结果集可以向前后移动,但数据库内容发生变化时结果集不变。
ResultSet.TYPE_SCROLL_SENTIVITY表示结果集可以前后移动,但数据库内容发生变化时结果集同步改变
参数concurrency决定是否可以用结果集更新
ResultSet.CONCUR_READ_ONLY,表示结果集只读,不能跟新数据表中的数据
ResultSet.CONCUR_UPDATE,表示是否可以通过结果集跟新数据库数据
(9)prepareCall(String sql)创建一个CallableStatement用于执行存储过程、
(10)prepareStatement()一条带有或不带IN
参数的sql语句可以被预编译并存放在PrepareStatement对象中,该对象用于有效的多次执行该语句。
(11)rollback。回滚当前的操作,并释放当前连接保存的任何数据锁,只有在禁止自动提交后才能使用该方法
3.Statement类
Java.sql.Statement用于在基层连接上运行sql语句,并且访问结果。Connection接口提供了生成Statement的方法,一般情况下通过connection.createStatement方法就可以得到Statement对象的实例
在使用中有三种Statment对象,分别是Statement,PrepareStatement和CallableStatement.
Statement对象用于执行不带参数的基本的sql语句,他的典型使用
Connection conn=DriverManager.getConnection(……);
Statement stm=conn.createStatement();
ResultSet rs=stm.executeQuery("sql");
……
PrepareStatement对象是从Statement继承过来的。用于执行带或不带IN参数的预编译的SQL语句,它的典型使用是
Connection conn=DriverManager.getConnection("url");
PrepareStatement pstm=conn.prepareStatement(" insert into person values(?,?,?,?)");
pstm.setInt(1,1);
pstm.setString(2,"twm");
pstm.setString(3,"boy");
pstm.setInt(4,25);
pstm.executeUpdate();
…………
CallableStatement对象是PrepareStatement继承过来的用于执行对数据库存储过程的调用
Statement对像还提供许多方法,其中常用的方法有
(1)execute().运行sql语句,返回一个是否有结果集的布尔值,使用方法如下
stm.execute(String sql);
其中参数是一条sql语句
(2)executeQuery()执行一条返回ResultSet的sql语句,返回值室友查询产生的数据集合,使用方法如下
stm.executeQuery(String sql);
其中sql是静态的select语句
(3)executeUpdate(),执行INSERT.UPDATE.DELETE或一条没有返回数据集的sql语句,
该方法返回影星语句的条数,
executeUpdate(String sql);
(4)cancel()用于一个线程取消令一个线程正在执行的语句使用方法如下
stm.cancel();
(5)getResultSet()用于得到当前ResultSet的结果
stm.getResultSet();
4 ResultSet类
在Statement执行sql语句时,有时候会返回ResultSet结果集,ResultSet往往包含的是查询的结果集,并可以通过它的不同的方法提取出查询结果
此接口抽象了运行select语句的结果,提供了逐行访问结果的方法,通过他可以访问结果的不同字段,它通过next()方法将当前的指针向前移动一行,最初指针位于第一行之前,因此第一次条用next()方法,把指针置于第一行上,使他成为当前行,随着每次调用next()依次获得ResultSet行
发表评论
-
表连接详解
2010-12-02 14:56 1210转载(http://www.cnblogs.com/mac_a ... -
having子句的用法
2010-12-02 14:28 1666转载(http://dev.csdn.net/htmls/81 ... -
视图与表的区别与联系
2010-10-30 20:30 2685区别: 1、视图是已经编译好的sql语句,是基于 SQL 语句 ... -
sql语句中出现关键字
2010-01-04 14:54 1737在sql server中关键字用 中括号 "[]&q ... -
查询数据库中不同字段的命令
2009-12-31 20:37 1213select count(distinct item) fro ... -
source 命令使用时出现的问题
2009-12-09 13:19 1068使用source命令时经常出错 出错原因 1 没有指定当前使用 ... -
MySQL 消除出错时的声音
2009-12-09 13:11 974MySQL -u root -b -p -
mysql导入导出命令
2009-10-14 13:51 2344mysqldump命令的输入是在bin目录下. 1.导出整个数 ... -
关于MySQL的AUTO_INCREMENT(自动递增)的设置
2009-10-13 23:27 3777CREATE TABLE test ( id INT UNSI ... -
mysql中文乱码的问题
2009-09-24 21:19 1107在使用数据库的时候遇到了中文乱码的问题 在网上搜索之后发现方法 ... -
mysql重启
2009-09-24 17:06 2110参考自:http://www.yaiba.net/blog/r ... -
mysql 常用操作
2009-09-19 19:47 1540MySQL使用CREATE TABLE语句创建表,简单语法如下 ... -
MySQL数据库中的Show命令具体用法
2009-09-19 19:44 1504SQL中有很多的基本命令,show命令也是其中之一,在很多使用 ... -
在MySQL数据库中应当如何关闭错误提示音
2009-09-13 14:53 1180使用MySQL的命令终端时,如果输入SQL有误,将有beep ... -
java连接mysql实例
2009-09-13 14:42 8029/** * @(#)JDBCTest.java * * ... -
第一,第二,第三范式
2009-09-13 11:44 4703在创建一个数据库 ... -
查询记录条数
2009-09-01 13:56 1034select count(*) from dt ... -
MySQL模糊查询
2009-09-01 13:41 4072SELECT * FROM oneself WHERE nam ... -
mysql 导入sql文件
2009-09-01 13:34 1406C:\mysql\bin>mysql -u 用户名 ... -
mysql数据库支持中文
2009-04-21 21:46 1173打开终端:application - appendix - t ...
相关推荐
【JDBC概述】 Java Database Connectivity (JDBC) 是Java编程语言中用于访问关系数据库的API,它为开发者提供了一种标准化的方式来执行SQL语句并与多种数据库进行交互。JDBC是Java的一部分,允许开发者使用纯Java...
JDBC(Java Database Connectivity)是Java编程语言中用于与各种关系型数据库进行交互的一组标准API,它使得Java开发者能够通过...理解并熟练掌握JDBC的各种接口和类,对于任何Java数据库开发者来说都是至关重要的。
JDBC概述 JDBC的主要用途在于: - **连接数据库**:Java应用程序可以通过JDBC接口连接到不同的数据库,如MySQL、Oracle、SQL Server等。 - **执行SQL语句**:包括数据查询、插入、更新和删除操作。 - **处理结果...
- **组成部分**:主要由一系列接口和类组成,这些接口和类定义了如何与数据库进行交互的基本行为。 **JDBC原理** - **规范与实现**:JDBC本身只是一个接口规范,具体实现则由各个数据库厂商提供,称为驱动程序。这...
### 常用 JDBC 驱动名字和 URL 列表 #### 概述 在 Java 开发过程中,经常需要与各种类型的数据库进行交互。为了实现这一目标,Java Database Connectivity (JDBC) 提供了一种标准接口,允许 Java 应用程序通过标准...
在Java开发中,JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。本文将详细介绍JDBC中常用的数据库连接字符串及其...
JDBC由一组用Java编程语言编写的接口和类组成。 #### JDBC驱动类型 根据连接数据库的方式不同,JDBC驱动分为四种类型: 1. **基本JDBC-ODBC桥接驱动**:这是一种基于ODBC的驱动,它不是纯Java实现的。 2. **部分...
在JDBC中,有几种关键的接口和类,它们在数据库操作中扮演着核心角色: - `java.sql.Connection`:表示与数据库的连接。 - `java.sql.Statement`:用于执行简单的SQL语句。 - `java.sql.PreparedStatement`:用于预...
2. **javax.sql**:提供了一些高级接口和类,用于更复杂的数据库操作,如连接管理、分布式事务和旧有连接的改进等。主要包含以下对象和接口: - **Connection**:表示与特定数据库的连接,能够获取数据库的信息、...
2. **`javax.sql` 扩展功能**:这一包为高级数据库操作提供了接口和类,比如连接管理、分布式事务和对旧有连接的更好抽象。其中引入了容器管理的连接池、分布式事务和行集等概念。 接下来详细介绍这两个包中的一些...
本资源摘要信息主要介绍了 Java 数据库连接(JDBC)的相关知识,包括单例模式、JDBC 概述、JDBC 实现原理、JDBC 开发主要类和 JDBC 开发步骤等内容。 单例模式 单例模式是一种常用的软件设计模式,通过单例模式...
#### 一、JDBC概述 **1.1 ODBC与JDBC的区别** - **ODBC(Open Database Connectivity)**: 开放式数据库连接是一种开放标准的应用程序接口(API),用于实现数据库应用程序与不同数据库的连接。它是用C语言编写的...
#### 五、JDBC 常用类和接口详解 **DriverManager** - `java.sql.DriverManager` 类提供了用于注册 JDBC 驱动和创建数据库连接的方法。 - **注册驱动**: - 使用 `Class.forName("com.mysql.jdbc.Driver")` 来...
#### 一、JDBC概述 JDBC(Java Database Connectivity)是Java平台上的标准数据库连接技术,它提供了一套API(Application Programming Interface),允许Java程序与各种类型的数据库进行交互。通过JDBC,Java应用...
JDBC(Java Database Connectivity)是一种用于执行 SQL 语句的 Java API,可以为多种关系数据库提供统一访问,它由一组用 Java 编程语言编写的类和接口组成。JDBC 提供了一系列 API,使得开发人员能够方便地在 Java...
### JDBC概述 JDBC,全称为Java Database Connectivity(Java数据库连接),是一种用于执行SQL语句的Java API,它为多种关系数据库提供了统一的访问接口。JDBC由一系列用Java语言编写的类和接口组成,主要集成在`...
下面我们将详细探讨这些工具类在字符串、日期、JDBC和XML解析等方面的使用。 1. **字符串工具**: - `String`类:Java中最基础的数据类型之一,提供了大量的静态方法用于字符串操作,如`concat()`, `substring()`,...
### Java常用的JDBC连接数据库方法 #### 概述 本文档将详细介绍如何使用Java通过JDBC(Java Database Connectivity)连接到不同的数据库系统。JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一...
这两个包涵盖了从基础到高级的数据库操作接口和类。 1. **`java.sql`包**:主要负责提供基础的数据库编程服务。其中,`Connection`、`Driver`、`DriverManager`、`Statement`、`PreparedStatement`、`...
Java Database Connectivity(JDBC)是Java编程语言中用于与各种数据库进行交互的一种接口。这个"一头扎进JDBC视频教程源码"系列涵盖了从基础到高级的JDBC使用方法,帮助学习者深入理解和掌握JDBC技术。以下是根据...