JDBC的全称是Java DataBase Connectivity,是一套面向对象的应用程序接口(API),制定了统一的访问各种关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现。这东西能够实现软件的扩平台性。
JDBC是一种底层API,在访问数据库是需要在业务逻辑中直接嵌入SQL语句。
JDBC不能够直接访问数据库,必须依赖数据库厂商提供的JDBC驱动程序完成以下三步工作1.同数据库建立连接;2.向数据库发送SQL语句;3.处理从数据库返回的结果。
*JDBC驱动
1.JDBC-ODBC桥连是指通过本地的OBDC Driver连接到RDBMS上。
2.JDBC-Native桥连通过调用本地的native程序实现数据库连接,这种类型的驱动程序把客户机API上的JDBC调用转为Oracle,Sybase,Informix,DB2或者其它DBMS的调用。
3.JDBC网络驱动是一种完全利用Java语言编写的JDBC驱动。
4.本地协议驱动是一种完全利用Java语言编写的JDBC驱动,这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。
#JDBC中常用接口
-Driver接口
每种数据库的驱动程序都应该提供一个实现java.sql.Driver接口的类,简称Driver类。
加载JDBC-ODBC驱动:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
-DriverManager类
java.sql.DriverManager类负责管理JDBC驱动程序的基本服务,是JDBC的管理层,作用于用户和驱动程序之间,负责跟踪可用的驱动程序,并在数据和驱动程序之间建立连接。
(静态方法)getConnection(String url,String user,String password)用来建立数据库连接。
setLoginTimeout(int seconds)用来设置每次连接数据库的最长时间
println(String message)用来输出指定消息到当前的JDBC日记流
-Connection接口
java.sql.Connection接口代表与特定数据库的连接,在接连的上下文中可以执行SQL语句并返回结果,还可以通过getMetaData()方法获得由数据库提供的相关信息。
createStatement()创建并返回一个Statement 实例,通常在执行无参数的SQL语句是创建实例。
-Statement接口
java.sql.Statement接口用来执行静态SQL语句,并返回执行结果。
对于INSERT,IPDATE和DELETE语句,调用executeUpdate(String sql)方法;对于SELECT语句,则调用executeQuery(String sql)方法,并返回一个永远不能为null的ResultSet实例。
-PreparedStatement接口
java.sql.PreparedStatement接口继承并扩展了Statement接口,用来执行动态的SQL语句,即包含参数的SQL语句。
通过setXxx()方法为SQL语句中的参数赋值时,建议利用与参数类型匹配的方法,也可以利用setObject()为各种类型赋值。
PreparedStetement ps=connection.preparedStatement("select * from table_name where id>? and (name=? or name=?)");
ps.setInt(1,6);
ps.setString(2,"马先生");
ps.setObject(3,"李先生");
ResultSet rs=ps.executeQuery();
clearParameters()清除当前参数的值。
-CallableStatement接口
java.sql.CallableStatement接口继承并扩展PreparedStatement接口,用来执行SQL的存储过程。
-ResultSet接口
java.sql.ResultSet接口类似于一个数据表,通过该接口的实例可以获得检索结果集,以及对应数据表的相关信息,ResultSet实例通过执行查询数据库的语句生成。
next()方法可以将指针移动到下一行,返回bool类型。只能迭代一次!
getXxx()方法均有两个重载方法,分别根据列的索引号和列的名称检索列值。
first(),返回bool值
last(),返回bool值
previous()将指针移动到上一行,返回bool值
beforeFirst()
afterLast()
absolute()移动到指定行,int>0向下移动,int<0,向后移动
relative()相对当前位置移动到指定行,int>0向下移动,int<0,向后移动
getRow()当前行索引编号
findColumn()查看指定列名的索引编号
isBeforeFirst()查看指针是否处于实例开头,返回bool
isFirst()查看指针是否处于第一行,返回bool
deleteRow()删除当前行,执行该方法后,在执行close()之后才会同步到数据库
http://www.cnblogs.com/rond/articles/1907133.html
JDBC数据库编程常用接口(转)的更多相关文章
-
Java JDBC数据库编程
课程 Java面向对象程序设计 一.实验目的 掌握数据库编程技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境,Microsoft SQL ...
-
ADO+MFC数据库编程常用语句
设在OnInitDialog()函数中,已经完成了初始化COM,创建ADO连接等操作,即 // 初始化COM,创建ADO连接等操作 if (!AfxOleInit()) { AfxMessageBox ...
-
JDBC数据库编程:PreparedStatement接口
使用PreparedStatement进行数据库的更新及查询操作. PreparedStatement PreparedStatement是statement子接口.属于预处理. 使用statemen ...
-
JDBC数据库编程:ResultSet接口
掌握ResultSet接口 使用ResultSet接口进行查询 ResultSet接口 在JDBC操作中,数据库所有查询记录将使用ResultSet进行接收,并使用ResultSet显示内容. 常用方 ...
-
JDBC数据库编程:callableStatement接口
了解MySQL存储过程建立, 了解存储过程中参数传递的三种方式 了解callablestatement调用存储过程操作. 因为在现在开发中,使用存储过程的地方越来越少,所以,对于存储过程使用,只需要了 ...
-
JDBC数据库编程
常识名词:ODBC ,JDBC,JDBC API ,JDBC Driver API 数据准备,续上节: JDBC编程流程 最基本的JDBC操作 本段内容主要完成JDBC的增删查改操作 packa ...
-
Java高级篇(三)——JDBC数据库编程
JDBC是连接数据库和Java程序的桥梁,通过JDBC API可以方便地实现对各种主流数据库的操作.本篇将介绍一下如何使用JDBC操作数据库(以MySQL为例). 一.JDBC JDBC制定了统一访问 ...
-
Java ——JDBC数据库编程
数据库分类 关系型数据库:以表来存放数据的,数据与数据之间的关系通过表之间的连接体现 面向对象的数据库:保存的是对象本身 其它 数据库:数据库管理系统中创建一个个的保存数据的单位 数据是保存在数据库的 ...
-
JDBC数据库编程基本流程
1.加载驱动类 Class.forName(""); 2.创建数据库连接 Connection con = DriverManager.getConnection(url, u ...
随机推荐
-
重构if...else...或者switch程序块
我们在开发asp.net时,经常有使用if...else...或者是使用switch来进行多个条件判断.如下面这篇<用户控件(UserControl) 使用事件 Ver2>http://w ...
-
【TOMCAT】Tomcat gzip压缩传输数据
概述 由于我们项目的三维模型文件非常大,为了提高传输速度,在服务端对其做zip压缩处理非常有必要,能够极大的提高传输速度. 配置 首先需要修改web.xml中请求的数据文件的mime类型的mappin ...
-
数位DP入门Ural1057
CF一战让我觉得很疲倦,所以今天感觉很慢. 昨天解D题时候,因为太累,根本连题目都没看,今天看了之后感觉不会做,听闻是数位DP问题. 有某神说过,DP的功力建立在刷过的题上,我真的毫无功力可言. 介绍 ...
-
Linux下使用JNI的常见问题及解决方案
JNI是java和C/C++混合编程的接口,可以很方便地实现java调用C/C++语言.具体的使用方法,网上有很多教程,在此不做过多介绍.本博客只关注在使用JNI的过程中的常见问题. 1. 生 ...
-
Xcode 添加pch 文件
搜索prefix 找到 APPle Clang Language ---> 将precompile Prefix Header 改为YES ----> 再输入$(SRCROOOT)/Ot ...
-
Win10无法访问网上邻居电脑共享的文件夹怎么办
Win10无法访问网上邻居电脑共享的文件夹怎么办 现在许多电脑上装的都是Win系统,Win10无法访问网上邻居电脑共享的文件夹怎么办呢?下面小编为大家介绍下解决的方法吧! 1点击桌面上的“此电脑”图标 ...
-
js数组的实例方法sort() 排序方法的运用,不再只是.sort()
1, sort() 不传回调函数的话,默认按照字母顺序(字符编码)的顺序进行排序. 2, sort() 通过传回调函数来控制从小到大的排序还是从大到小的排序: var arr = [1,23,5,6, ...
-
[python] ThreadPoolExecutor线程池 python 线程池
初识 Python中已经有了threading模块,为什么还需要线程池呢,线程池又是什么东西呢?在介绍线程同步的信号量机制的时候,举得例子是爬虫的例子,需要控制同时爬取的线程数,例子中创建了20个线程 ...
-
dojo小代码
RunSource Using event delegation on an HTML table to highlight rows and columns. ------------------- ...
-
Windows Service 项目中 Entity Framework 无法加载的问题
Windows Service 项目引用了别的类库项目,别的项目用到了 Entity Framework(通过Nuget引入),但是我的 Windows Service 无法开启,于是我修改了 App ...