`
sogotobj
  • 浏览: 662891 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

通过JDBC操作ORACLE数据库实例详解

阅读更多

通过JDBC操作ORACLE数据库实例详解

此例子采用JDBC2.0,和ORACLE9i数据库。数据库位于本机上。采用数据库自带的SCOTT模式。

内附有详细的注释,我想我应该不用多讲了吧

importjava.sql.*;
importoracle.sql.*;
importoracle.jdbc.pool.OracleDataSource;

publicclassJdbcOracle{
publicstaticvoidmain(String[]args){

/**URL格式:drivername:@driver_information
1,drivername主要有以下两种
jdbc:oracle:thin(thin驱动程序)
jdbc:oracle:oci(oci驱动程序)
2,driver_information
host_nameort:database_sid
*/

Connectionconn=null;
Statementstmt=null;
ResultSetrs=null;
Stringurl="jdbc:oracle:thin:@localhost:1521:ORADB";
Stringusername="scott";
Stringpassword="tiger";
try{

/**一、注册驱动程序
方法一Class.forName("oracle.jdbc.OracleDriver";
*/

DriverManager.registerDriver(neworacle.jdbc.OracleDriver());

//二、打开数据库连接
/**方法一,使用oracle数据源对象?
oracle.jdbc.pool.OracleDataSourceds=neworacle.jdbc.pool.OracleDataSource();
ds.setServerName("localhost";
ds.setDatabaseName("ORADB";//数据库存名
ds.setDriverType("oci";//要使用的JDBC驱动程序(OracleDatasore的扩展)
ds.setURL("jdbc:oracle:thin:@localhost:1521:ORADB";//指定数据库的URL(OracleDataSource的扩展)
ds.setDataSourceName("";//底层数据源的名称
ds.setNetworkProtocol("tcp";//用于数据库通信的协议
ds.setPortNumber(1521);//端口号
ds.setUser("scott";
ds.setPassword("tiger";
Connectionconn=ds.getConnection();
*/
//方法二、使用Drivermanger

conn=DriverManager.getConnection(url,username,password);

//设置事务提交模式
//conn.setAutoCommit(true);
//若禁止了自动提交模式,那么在关闭Connection对象时会执行一次自动隐式提交,以保证还没有提交的所有DML语句被自动提交

conn.setAutoCommit(false);

//三、创建JDBCStatement对象

stmt=conn.createStatement();

//PreparedStatementpstmt=conn.prepareStatement("带有参数的SQL语句";
//CallableStatementcstmt=conn.prepareCall("调用存储过程的语句";
//四、从数据库获取行
/**select语句用executeQuery()
insert,update,delete语句用executeUpdate()
若预先不知道要执行的SQL语句类型,那么用execute()
*/

rs=stmt.executeQuery("selectid,name,age,sex,birthfromemployee";

//五、从数据库获取行

while(rs.next()){
intid=rs.getInt("id";
Stringname=rs.getString("name";
intage=rs.getInt("age";
Stringsex=rs.getString("sex";
Datebirth=rs.getDate("birth";
}
//rs.close();
//六、向数据库中添加行(注:月份的编码是从0开始的,因此月份1代表2月)

java.sql.Datedate=newjava.sql.Date(82,10,05);
inti=stmt.executeUpdate("insertintoemployeevalues"+
"(1,'qds',22,'1',TO_DATE(date,'YYYY,MM,DD'))";
//七、修改数据中的行

intj=stmt.executeUpdate("updateemployeesetage=21whereid=1";
//八、从数据库中删除行

intk=stmt.executeUpdate("deletefromemployeesetid=1";
//九、处理数据库的NULL值方法一:使用结果集对象的wasNull方法判断

conn.commit();
rs=stmt.executeQuery(
"selectid,type_id,prod_namefromproductwhereid=1";

//此次假设type_id列为Null值
System.out.println("id="+rs.getInt("id");
System.out.println("type_id="+rs.getInt("type_id");
if(rs.wasNull()){
System.out.println("type_idwasnull!";
}
System.out.println("prod_name="+rs.getString("prod_name");

//九、处理数据库的NULL值方法二:使用JAVA包装器类.因为JAVA包装器类可以赋于NULL值
//java.lang.IntegertypeId=(java.lang.Integer)rs.getObject("type_id";
//System.out.println(typeId);此时typeId的值为Null
//在向数据库插入或更新某一行为NULL值时,也可以使用JAVA包装器对象
//java.lang.Doubleprice=null;
//intii=stmt.executeUpdate("updateproductssetprice="+price+"whereid=12";

rs.close();

//十,执行数据定义语言语句(DDL:CREATE,ALTER,DROP)----采用execute()方法执行DDL语句
//执行DDL语句会导致一次隐式提交,因此,如果你在发出DDL语句之前执行了一些未提交的DML语句,那么这些DML语句将被提交

booleanresult=stmt.execute("createtablecustomers("+
"idintegerconstraintcustomers_pKprimarykey,"+
"first_namevarchar2(10)notnull,"+
"last_namevarchar2(10)notnull,"+
"dobdate,"+
"phonevarchar2(15)"+
""
;
if(result==true){
System.out.println("ThetablehasCreated!";
}
else{
System.out.println("Thetablehasn'tCreate";
}
//-------------------------------------------------------------------------
}
catch(Exceptione){
System.out.println("error:"+e);
try{
conn.rollback();
}
catch(SQLExceptionsqle){}
}
finally{

try{
if(rs!=null)
rs.close();
}
catch(SQLExceptionsqle){
System.out.println("SQLState:"+sqle.getSQLState());
System.out.println("SQLErrorCode:错误代码"+sqle.getErrorCode());
System.out.println("SQLErrorMessage:错误情况的字符串"+sqle.toString());
}

try{
if(stmt!=null)
stmt.close();
}
catch(SQLExceptionsqle1){
System.out.println("SQLState:"+sqle1.getSQLState());
System.out.println("SQLErrorCode:错误代码"+sqle1.getErrorCode());
System.out.println("SQLErrorMessage:错误情况的字符串"+sqle1.toString());
}

try{
if(conn!=null)
conn.close();
}
catch(SQLExceptionsqle2){
System.out.println(sqle2.toString());
System.out.println(sqle2.getSQLState());
System.out.println(sqle2.getErrorCode());
}

}

}
}

分享到:
评论

相关推荐

    JDBC方式连接oracle数据库实例详解

    JDBC方式连接oracle数据库适合学生,初学者,学习java编程的基础

    Jdbc连接oracle远程数据库中文乱码解决

    本文将深入探讨如何通过JDBC(Java Database Connectivity)连接Oracle远程数据库时,解决中文乱码的困扰。 首先,我们需要理解的是,中文乱码通常源于字符集不一致或配置不当。在Java应用中,数据在JVM(Java...

    JDBC连接各种数据库字符串大全

    ### JDBC连接各种数据库字符串大全详解 #### 一、Oracle数据库(Thin模式) 在Java中使用JDBC连接Oracle数据库时,通常采用的是thin模式。这种方式直接通过JDBC驱动与Oracle数据库进行交互,不需要额外的中间层...

    jdbc-oracle-thinjdbc-oracle-thin

    ### JDBC-Oracle-Thin 驱动介绍与配置详解 #### 一、JDBC-Oracle-Thin 概述 在数据库连接技术中,Java Database Connectivity (JDBC) 是一种用于执行 SQL 语句的标准 Java API,可以为多种关系数据库提供统一访问...

    JDBC连接数据库各种数据库参数大全

    ### JDBC连接数据库各种数据库参数详解 #### 一、Oracle8/8i/9i数据库(thin模式) 在Java中通过JDBC访问Oracle数据库时,通常采用thin驱动方式。thin驱动是一种纯Java驱动,无需依赖任何非Java代码即可完成与...

    java连接Oracle数据库详解

    ### Java连接Oracle数据库详解 #### 一、引言 在现代软件开发中,Java与数据库的结合是非常常见的技术栈之一。对于使用Java进行后端开发的程序员来说,掌握如何使用Java来连接并操作Oracle数据库是一项必备技能。...

    Jdbc第五章数据库实例

    **JDBC第五章数据库实例详解** 在Java编程中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的一组接口和类。JDBC提供了一种标准的API,使得Java开发者能够连接、查询和操作数据库,无论是Oracle...

    JDBC连接数据库实例+附源码

    **JDBC连接数据库实例详解** Java Database Connectivity (JDBC) 是Java编程语言中用于规范客户端程序如何访问数据库的应用程序接口(API),它为开发者提供了一种标准的、面向对象的方式来访问和操作各种数据库系统...

    lotusscript连接oracle数据库脚本实例

    ### LotusScript连接Oracle数据库脚本实例详解 #### 标题:LotusScript连接Oracle数据库脚本实例 #### 描述: 本文将详细介绍一个经过验证的具体实例,该实例展示如何在Domino Designer环境中通过Java代理程序连接...

    Android通过jsp连接Oracle数据库 -- 实例.docx

    《Android通过jsp连接Oracle数据库实例详解》 在移动应用开发中,有时我们需要将Android客户端与后端数据库进行交互,以实现数据的存取和更新。本文将详细介绍如何使用JavaServer Pages (JSP) 作为中间层,连接...

    Java中JDBC连接数据库详解

    Java中JDBC连接数据库详解是指Java程序使用JDBC(Java Database Connectivity)来连接和操作数据库的过程。JDBC是一种Java API,用于连接和操作数据库,它提供了一套标准化的接口,允许Java程序连接各种类型的数据库...

    jdbc连接各种数据库方式列表.txt

    ### JDBC 连接各种数据库的方式详解 #### 一、引言 Java Database Connectivity (JDBC) 是 Java 平台上的数据库访问技术,它为开发者提供了一种标准的方式来访问关系型数据库。通过 JDBC,开发者可以使用 SQL 语句...

    JAVA 使用数据库连接池连接Oracle数据库全代码

    通过上述步骤,我们可以在Java应用中高效地管理和使用Oracle数据库连接。使用DBCP数据库连接池不仅可以减少频繁创建和销毁数据库连接所带来的开销,还可以更灵活地根据应用程序的需求动态调整连接池的大小,从而提高...

    domino采用JDBC与关系数据库集成

    《Domino采用JDBC与关系数据库集成详解》 在IT领域,尤其是在企业级应用开发中,数据集成是至关重要的一个环节。Domino作为一款强大的协作软件,常常需要与其他系统进行数据交互,特别是在需要利用关系数据库(如...

    Java连接操作Oracle数据库代码详解

    本文将详细讲解如何使用Java连接并操作Oracle数据库,通过示例代码帮助理解这一过程。 首先,我们需要在Java代码中引入Oracle JDBC驱动,这通常通过`import`语句完成,如`import oracle.jdbc.driver.OracleDriver;`...

    Oracle JDBC连接字符串

    ### Oracle JDBC连接字符串详解 在Java开发环境中,与Oracle数据库进行交互时,通常会使用Java Database Connectivity (JDBC)技术来实现。本文将详细介绍如何通过JDBC连接Oracle数据库,并解释连接字符串及相关配置...

    zabbix_oracle_plugin zabbix oracle数据库监控插件

    此插件不仅监控数据库性能,同时涵盖服务器性能指标,通过有效的数据采集机制,能够从多个Oracle实例中获取信息,并将其整合至Zabbix服务器中,用于监测和性能度量。用户可利用Zabbix的强大功能对收集到的数据进行...

    jsp连接oracle数据库代码

    ### JSP连接Oracle数据库知识点详解 #### 一、前言 在Web开发中,Java Server Pages (JSP) 是一种广泛使用的服务器端脚本技术,它允许开发者将动态内容嵌入到HTML页面中。JSP可以与各种类型的数据库进行交互,以...

    jdbc数据库连接写法

    通过JDBC,Java程序可以连接多种类型的数据库,如MySQL、PostgreSQL、Oracle等。本文将详细介绍如何使用JDBC连接不同的数据库,并提供具体的代码示例。 #### 二、JDBC连接不同数据库的方法 ##### 1. MySQL **描述...

    mysql、oracle 数据库生成文档源码

    【MySQL与Oracle数据库生成文档源码详解】 在数据库管理和开发过程中,记录和维护数据库结构的文档至关重要,这有助于团队协作,提升代码可读性,并在系统升级或迁移时提供参考。本文将详细介绍如何使用提供的...

Global site tag (gtag.js) - Google Analytics