您的位置首页百科知识

JDBC访问数据库步骤详解

JDBC访问数据库步骤详解

的有关信息介绍如下:

JDBC访问数据库步骤详解

对于很多Java初学者来说,JDBC访问数据库是一个复杂的过程,本文为大家详细列举JDBC访问数据库步骤!

加载注册驱动

首先通过数据库厂商网站,获得JDBC驱动文件及驱动的文档说明,驱动文件通是一个jar文件(Java Archive Java归档文件),驱动文档中通常包含了驱动使用的说明和示例程序。

如果在Java程序中需要使用第三方(非JDK内置)的软件包,你必须把软件包添加到程序的classpath(类路径)中。在Eclipse中添加软件包的方法与项目类型有关。

1、 Java Web项目

直接将JDBC驱动的Jar文件复制到项目的web—inf/lib/下即可。

2、 Java Application项目

(1)在Elipse中点击菜单Project>Properties,打开项目属性窗口。

(2)点击Java Build>Libraries,点击Add External JARS按钮,打开JAR窗口。

(3)选择JDBC驱动的jar文件,完成驱动引入,驱动包显示在Project Explor视图中。

JDBC驱动包添加完成后,在程序中注册驱动的方法如下:

String driver=”customer jdbc driver classfull name”;

Class. forName(driver):

Driver参数是JDBC驱动类的完整类名称,可以通过查询JDBC驱动的文档获得,不同数据库驱动的驱动类名称是不一样的。例如Oracle驱动类名称为oracle.jdbc.driver.OracleDriver,JDBC-ODBC桥驱动类名称为:sun.jdbc.odbc.jdbcodbcdriver。

Java.lang.class 类的forname方法可以根据类名初始化类实例,从而实现JDBC驱动类注册。

建立数据连接

简历数据库连接时通过java.sql.DriverManager类实现的,代码示例

Connection conn=DriverManager.getConnerction(url,user,password);

Url:连接数据库的字符串

不同数据库的连接url由一些差异,请查询相应JDBC驱动文档或参见附录。

通常url中包含数据库的ip,端口,库名以及其他参数。例如Mysql数据库的连接url格式为:jdbc:mysql://192.168.1.1:3306/db-customer

User:连接数据库的用户名

Password:连接数据库的密码

Connection类别是数据库的具体连接,它的通用方法如下:

Statement createstatement():创建一个statement对象用来将SQL语句发送到数据库。

StatementCreatestatement(int resultsettype,Int resultsetconcurrency):创建具有指定查询结果集类型和并发性的statement。

Preparestatement preparestatement(string sql):创建一个preparestatement对象来将参数化的SQL语句发送到数据库。

Callablestatement preparecall(string sql):创建一个callablestatement 对象来调用数据库存储过程。

Void set auto commit(boolean autocommit):设置此链接的事务自动提交模式。

Void commit():提交事务。

Void rollback():回滚事务。

Void close():关闭当前连接。

databaseMetadata getmetadata():获得数据库元数数据信息。

注意:上述方法都会抛出SQLException

创建 statement

通过connection的createment方法可以创建statement对象:

Statement statement=conn.creatstatement();

Statement对象的主要作用是向数据发送SQL语句,它的常用方法如下:

Resultset executeQuery(String sql):执行一个查询SQL语句,获得结果集

Int executeUpdate(String sql):执行一个更新SQL语句,获得更新行数

Void close():关闭statement及其打开的结果集

Void setMaxrows(int max):设置返回的查询结果集最大行数

Void addBatch(String sql):向批处理中添加一条SQL

Int[]executeBatch():执行处理中的所有SQL,返回影响行数数组

获得数据库元数数据信息

操作Resultset 结果集

使用Statement 的excuteQuery 方法执行SQL查询语句,可以获得返回的结果集

Resuleset rs=Statement,executequery(“select*from userinfo”)

Resuleset对象表示数据库查询结果集的数据包,它包含符合SQL查询结果中的所有数据行。对Resultset对象我们通常只进行读取操作,不推荐对resultset进行更新或插入行,更新请使用statement的exeutrupdate方法。

Resultset对象与数据库中的表相似。它也有光标(游标)的概念。默认情况下光标志向Resultset第一数据之前,并且向光标仅能向下移动,如果需要可以滚动游标的结果集,必须在创建statement时使用指定参数。使用resultset的next()方法可以使光标下移一行,正常移动返回true,如果到达记录末尾则返回false。通常使用while(rs.net()){。。。。。。}遍历结果集。更多Java方面知识尽在准信软件培训:training.zhunxin.net

使用rs.getXXXargument) 方法可以取得光标所在行的字段值。

XXX表示数据类型:

Getint:以int型返回字段值

Getstring:以java.lang.string 类型返回字段值

Getfloat:以float 类型返回字段值

Getdate:以java.sal.date类型返回字段值

Argument 参数有两类值

使用字段序号(下标从1开始)的形式:intid=rs.getint(1)

使用字段名称:string name=rs.getsting(“username”)

资源释放

JDBC操作必须进行资源释放,因为JDBC驱动在底层通常是通过网络IO实现SQL命令与数据传输的。Connection、statement、resultset都提供了close方法用于释放资源。

大多数JDBC操作都会抛出SQLException,必须进行异常处理。

try{

try{

}finally{

rs.close();

St.close();

Conn.close();

} }catch(SQLException e) {