JDBC相关的类介绍
JDBC
背景:1996年,Sun公司推出了Java数据库连接(Java Database Connectivity JDBC)工具包的第一个版本.该工具包使得程序员可以使用结构化语言SQL连接到一个数据库,对数据库进行操作 JDBC是Java程序连接和存取数据库的应用程序借口API ,是Java核心API的一部分.
13.1 JDBC的结构
13.1.1 JDBC数据库应用模型
JDBC是由两层组成,上面一层是JDBC API,下面一层是JDBC驱动程序API
1:Java应用程序
Java程序包括应用程序.Applet和Servlet,这些类型的程序都可以利用JDBC方法完成对数据库的访问和操作.其完成的主要任务有:请求与数据库建立连接,向数据库发送SQl请求,为结果集定义存储应用和数据类型,查询结果,处理错误,提交及关闭等操作.
2 JDBC驱动程序管理器
JDBC驱动程序管理器能够动态地管理和维护数据库查询所需要的所有厂商或第三方所提供的驱动程序对象,实现Java任务与特定的驱动程序的连接,从而体现JDBC与平台无关的这一特点.他完成的主要任务有:为特定的数据库选择驱动程序,处理JDBC初始化调用,为每一个驱动程序提供JDBC功能的入口,为JDBC调用执行参数等
3:驱动程序:
一般由数据库厂商或第三方提供,JDBC是独立于DBMS 的.
4:数据库
这里的数据库是指Java程序需要的数据库以及数据库管理系统
13.2 通过JDBC访问数据库
13.2.1 基本流程
1:建立ODBC数据源
2:装入JDBC驱动程序
为了要连接到数据库,必须要有相应数据库的JDBC驱动程序,并将驱动程序的.jar文件加入到Classpath的设置中.此后再在程序中通过DriverManager类加载JDBC驱动类
DriverManager类管理各种数据库驱动程序,建立新的数据库连接,以便Java应用程序能够使用正确的JDBC驱动
3:建立连接
与数据库建立连接的标准方法时调用方法
DriverManger.getConnection(String url,String user,String password)
4:执行SQL语句
连接一旦建立,就可用来向它所涉及的数据库传送SQL语句.JDBC 提供了三个类,用于向数据库发送SQL语句.Connection接口中的三个方法可用于创建这些类的实例.
1:Statement 由方法createStatement所创建.Statement对象用于发送简单的SQL语句.
2:PreparedStatement,由方法prepareStatement所创建.PreparedStatement对象用于发送带有一个或多个输入参数的SQL语句.PrepareStatemt拥有一组方法,用于设置输入参数的值.执行语句时,这些参数将被送到数据库中. PreparedStatement 对象扩展了Statement,因此他们都包含了Statement的方法. PreparedStatement的效率更高,因为它已经被预编译过并放在那里以供将来使用
5:检索结果
SQL语句发送以后,返回的结果通常存放在一个ResultSet类的对象中,ResultSet对象可以看做一个表,这个表包含由SQL返回的列名和相应的值,ResultSet类的对象中维持了一个指向当前行的指针,通过一系列的get***方法,可以检索当前行的各个列,并显示出来.
6:关闭连接
在对象使用完毕后,应当使用close()方法解除与数据库的连接,并关闭数据库
13.2.2常用的JDBC API
Java.sql包中的主要类和接口
类或接口名称 |
说明 |
Java.sql.CallableStatement |
用于执行SQL存储过程 |
Java.sql. Connection |
表示与一个特定数据库的会话.在一个Connection的上下文中,执行SQL语句并返回结果 |
Java.sql.DataTruncation |
截断一个数据的值产生的异常 |
Java.sql.Date |
对日期的处理类 |
Java.sql.Driver |
数据库驱动程序类 |
Java.sql.DriverManager |
提供管理JDBC驱动器设置的基本服务 |
Java.sql.DriverPropertyInfo |
程序员与驱动器交互的类,以发现和提供链接特性 |
Java.sql.PreparedStement |
用于有效次地多次执行编译的SQL语句 |
Java.sql.ResultSet |
提供了通过执行一条语句访问所生成的数据表的功能 |
Java.sql.SQLException |
提供了关于数据库访问错误的信息 |
Java.sql.Statement |
用于执行一条静态的SQL语句并获取它产生的结果 |
Java.sql.Time |
处理时间 |
.
1:DriverManager类
该类是JDBC的管理类,负责管理JDBC驱动程序,跟踪可用的驱动程序并在数据库中和相应的驱动程序之间建立连接.如果要使用JDBC驱动程序,必须加载JDBC驱动程序并向DriverManager注册之后才能使用.加载和注册驱动程序可以使用Class.forName()这个方法来完成.该类的主要方法有:
public static synchronized Connection getConnection(String url) throws SQLException 这个方法的作用是使用指定的数据库URL创建一个连接,使DriverManager从注册的JDBC驱动中选择一个适当的驱动程序
public static synchronized getConnection(String url, Properties infor) throws SQLException方法,相比上一个多了一个infor参数用于存储用户名,用户密码等信息.
public static synchronized getConnection(String url, String user, String password) throws SQLException 它使用指定的数据库URL,用户名,密码创建一个连接
public static synchronized getDriver(String url,) throws SQLException 它定位在给定的URL下的驱动程序
public static void deregisterDriver(Driver driver) throws SQLException 这个方法是从DriverManaber类表中删除指定的驱动的程序
public static int getLoginTimeout() 它用来获取链接数据库时驱动程序可以等待的最大的时间,以秒为单位
public static PrintStream getLogStream() 它用来获取DriverManager和所有驱动程序使用的日志PrintStream
2:Connection类
该类负责建立与指定数据库的连接 其主要方法有
Public Statement createStatement() throws SQLException方法,用来创建Statement类的对象
Public StatementcreateStatement(int resultSetType, int resultSetConcurrency) throws SQLException,用来指定的参数创建Statement类的对象
Public PreparedStatement prepareStatement(String sql) throws SQLException ,用来创建PreparedStatement对象.
Public CallableStatement prepareCall(String sql) throws SQLException 用来创建CallableStatement类对象,执行存储过程.
Public void commit throws SQLException 用来提交对数据库执行添加,删除或修改记录的操作
Public Boolean getAutoCommit(Boolean autoCommit) throws SQLException 用来设置Connection类对象的Auto_Commit自动提交的状态,若设置为true,则它的每个SQL语句将作为袷单独的事务被执行和提交
Public void rollback() throws SQLException 用来取消对数据库执行过的添加,删除,修改记录等操作,将数据库恢复到执行这些操作前的状态
Public void close() throws SQLException 用于断开Connection对象与数据库的连接
Public Boolean isClosed() throws SQLException 用来测试是否已经关闭连接了
3:Statement类
该类的主要功能是将SQL命令传送给数据库,并将SQL命令的执行结果返回.Statement类提供的常用方法如下
Public ResultSet executeQuery(String sql) throws SQLException 方法用来执行自动的SQL查询语句,返回查询结果
Public int executeUPdate(String sql) throws SQLException 用来执行SQL的插入 更新 删除 语句,返回值是插入 修改 或删除的记录数 或者是0
Public Boolean execute(String sql) throws SQLException 如果执行结果为一个结果集对象,则返回true,否则返回false
Public ResultSet getResultSet() throws SQLException 用于获取ResultSet对象当前的结果集.对于每一个结果只鞥调用一此
Public int getUpdateCount() throws SQLException 用于获取当前结果的更新的记录数,如果结果集是一个ResultSet对象或没有更多的结果,则返回-1.对于每一个结果只调用一次
Public void close() throws SQLException 用户释放Statement对象的数据库和JDBC资源.
4:PreparedStatement 类
该类对象可以代表一个与编译的SQL语句,它是Statement 接口中的子接口.效率高
5:ResultSet类
表示从数据库中返回的结果集,当使用Statement 和PreparedStatement 类提供的executeQuery()方法来下达Selet命令以查询数据库时,方法将会把数据库响应查询的数据放在ResultSet类对象中供用户使用 常用的方法如下
Public Boolean avsolute(int row) throws SQLException 方法,用来移动指针到指定记录
Public boolean first() throws SQLException 方法,用来移动记录指针到第一个记录
Public boolean last() throws SQLException 方法,用来移动记录指针到最后一个记录
Public void afterLast() throws SQLException 方法,用来移动记录指针到最后一个记录之后
Public boolean previous() throws SQLException 方法,用来移动记录指针到上一个记录
Public boolean next() throws SQLException 方法,用来移动记录指针到下一个记录
Public void insertRow() throws SQLException,用来插入一个记录到数据表中
Public void updateRow() throws SQLException,用来修改数据表中的一个记录
Public void deleteRow() throws SQLException,用来删除记录指针指向记录
12.2.3 事务
事务是由一个或者多个这样的语句组成:这些语句已被执行,完成并被提交或还原.当调用方法commit或rollback时,当前事务结束,另一个事务开始
JDBC相关的类介绍的更多相关文章
- JDBC常用接口、类介绍
JDBC常用接口.类介绍 JDBC提供对独立于数据库统一的API,用以执行SQL命令.API常用的类.接口如下: DriverManager 管理JDBC驱动的服务类,主要通过它获取Connectio ...
- Spring4相关jar包介绍(转)
Spring4相关jar包介绍 spring-core.jar(必须):这个jar 文件包含Spring 框架基本的核心工具类.Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,当 ...
- spring学习二:jdbc相关回顾以及spring下dao
目录: Part一:回顾java web部分的jdbc.事务.连接池和dbutils工具等 : Part二:spring的JdbcTemplate使用: Part三:spring的事务处理: Part ...
- 模拟在内存中的数据库DataSet相关的类
这篇连着上一篇DataReader相关类. 下面两段话是在msdn官网摘下来: .NET Framework 数据提供程序是专门为数据操作以及快速.只进.只读访问数据而设计的组件.Conn ...
- android中与SQLite数据库相关的类
为什么要在应用程序中使用数据库?数据库最主要的用途就是作为数据的存储容器,另外,由于可以很方便的将应用程序中的数据结构(比如C语言中的结构体)转化成数据库的表,这样我们就可以通过操作数据库来替代写一堆 ...
- shiro中CacheManager相关的类结构介绍,提供redis Cache实现
cacheManager主要用于对shiro中的session.realm中的认证信息.授权信息进行缓存. 1.类结构 2.接口及类介绍 CacheManager 提供根据名字获取cache的作用. ...
- 使用Photon引擎进行unity网络游戏开发(二)——Photon常用类介绍
使用Photon引擎进行unity网络游戏开发(二)——Photon常用类介绍 Photon PUN Unity 网络游戏开发 Photon常用类介绍: IPunCallback PUNGIPunCa ...
- IO流分类详细介绍和各种字节流类介绍与使用 过滤流 字节流
Java基础笔记 – IO流分类详细介绍和各种字节流类介绍与使用 过滤流 字节流本文由 arthinking 发表于627 天前 ⁄ Java基础 ⁄ 评论数 1 ⁄ 被围观 2,036 views+ ...
- Spring源码分析(1)容器的基本实现——核心类介绍
bean是Spring中最核心的东西,因为Spring就像是个大水桶,而bean就像是容器中的水,水桶脱离了水便也没什么用处了,那么我们先看看bean的定义. public class MyTestB ...
随机推荐
- HTML5零基础学习Web前端需要知道哪些?
HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...
- Android四大核心组件之BroadCastReceiver
实验内容 实现BroadCast发送和接受 通过BroadCast传递信息 动态注册和注销BroadCast 实验要求 实现BroadCast发送和接受 通过BroadCast传递信息 动态注册和注销 ...
- 组件封装:es6转es5
1.先全局安装babel-cli,输入命令 npm install babel-cli -g 2.输入 cd d:\es6 ; ---进入文件夹路径 3.输入 npm init: 一路回车键 ---( ...
- SpringMVC参数自动绑定
SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似):Controller代码: @RequestMapping("saysth.do") publi ...
- Infinite V1 Release Note
游戏地址 PLAY 玩法说明 WASD 控制角色移动 更新内容 - 初步完成了角色移动(攻击状态) 开发心得 独立做游戏 其实最耽误时间的就是在自己的短板上, 对于我来说 就是3D建模和动作制作. ...
- 五种常见的 PHP 设计模式
设计模式 一书将设计模式引入软件社区,该书的作者是 Erich Gamma.Richard Helm.Ralph Johnson 和 John Vlissides Design(俗称 “四人帮”).所 ...
- 浅谈js回调函数
回调函数原理: 我现在出发,到了通知你”这是一个异步的流程,“我出发”这个过程中(函数执行),“你”可以去做任何事,“到了”(函数执行完毕)“通知你”(回调)进行之后的流程 例子 1.基本方法 ? 1 ...
- 第一次写这么长的js
是公司一个项目,要求显示不同的sku,然后根据sku组合显示不同的价格区间,根据填写的数量落在哪个价格区间,然后进行计算.实际截图如下: 前端JS如下: <script type="t ...
- C#调用WebService (转)
1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...
- HTTP标头
HTTP头信息 头信息由“键:值”组成.它们描述客户端或者服务器的属性.被传输的资源以及应该实现连接. 四种不同类型的头标 通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关 ...