`

Oracle_12.1_JDBC开发者指南_2013.7(2)

 
阅读更多

Savepoints 只能用于局部事物,全局事物不支持

 Connection.setSavepoint 返回一个java.sql.Savepoint对象

 getSavepointName 用于有名字的, getSavepointId用于没名字的,互换会报错

 

 Connection.rollback(Savepoint svpt) 返回到回滚点Connection.releaseSavepoint(Savepoint svpt) 释放掉

一旦commit或rollback,这个事物中的所有回滚点都自动释放

rollback到某个回滚点后,这个回滚点之后的那些将自动释放

 

获取自动生成的key值功能,只支持insert语句

/** SQL statements for creating an ORDERS table and a sequence for generating the
  * ORDER_ID.
  *
  * CREATE TABLE ORDERS (ORDER_ID NUMBER, CUSTOMER_ID NUMBER, ISBN NUMBER,
  * DESCRIPTION NCHAR(5))
  *
  * CREATE SEQUENCE SEQ01 INCREMENT BY 1 START WITH 1000
  */
// Create a PreparedStatement for inserting a row into the ORDERS table.
OraclePreparedStatement pstmt = (OraclePreparedStatement)
conn.prepareStatement("INSERT INTO ORDERS (ORDER_ID, CUSTOMER_ID, ISBN,  
DESCRIPTION) VALUES (SEQ01.NEXTVAL, 101,//用序列自动生成主键
 966431502, ?)", cols);
String s = new String(c);
pstmt.setNString(1, s);
pstmt.executeUpdate();
ResultSet rset = pstmt.getGeneratedKeys();//获得自动生成的值,返回结果集对象

 但批更新时不可用

返回的ResultSet只能用序号得到里面的内容

如果显示指明了Statement.RETURN_GENERATED_KEYS 标志,则要用"rowid"列名访问

 

Oracle只支持 HOLD_CURSORS_OVER_COMMIT模式

 

 

从数据库中取出的数据到底要用什么java类型表示呢?

1.通常来说,尽量使用java标准类型

2.要保留浮点的准确值,用oracle.sql.NUMBER,不要用java.lang.Double

3.为了提高性能时,用oracle.sql.NUMBER,不要用java.math.BigDecimal

4.JDK6以后,用java.sql.Date和java.sql.Timestamp表时间

5.Oracle特有的就用Oracle的,符合规范的就用java的

 

sql里的null会转为java的null,所以不要使用原始类型获取null值,会变成0

 

PreparedStatement pstmt = conn.prepareStatement(
  "SELECT * FROM EMPLOYEES WHERE COMMISSION_PCT = ?"); //这里无法处理null的传入,会报错
pstmt.setNull(1, java.sql.Types.VARCHAR); 

 

ResultSet rset = stmt.executeQuery("SELECT employees.department_id,
department.department_id FROM employees, department");
rset.getInt("employees.department_id");//这个不能用全名,或者用序号,或者起个别名

 getBoolean会在底层等于0时返回false,其他值都返回true

 

void setNull(int parameterIndex, int sqlType)不能用于REF, ARRAY, or STRUCT

void setNull(int parameterIndex, int sqlType, String sql_type_name) 这个可以

 

 

分享到:
评论

相关推荐

    Navicat_12.1.0.2.0_Oracle_OCI.dll

    Oracle Call Interface(OCI)是Oracle公司提供的一个C语言编程接口,允许开发者用C或C++编写能够直接操作Oracle数据库的应用程序。OCI提供了全面的功能,包括SQL执行、事务处理、游标管理、数据类型映射以及高级...

    Navicat_Premium_12.1.13-Mac版

    Navicat Premium是一款强大的数据库管理工具,专为多种数据库系统设计,...总的来说,Navicat Premium 12.1.13-Mac版是一个强大且全面的数据库管理解决方案,尤其适合那些需要跨平台、多数据库管理的开发者和管理员。

    weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 类型转换解决办法

    2. **反射调用**:对于 `weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB` 类型的对象,使用 Java 反射机制调用 `getVendorObj()` 方法,该方法返回一个 `oracle.sql.CLOB` 类型的对象。 3. **CLOB 数据读取**:无论是...

    Oracle Database 12.1.0.1 JDBC Driver

    Oracle Database 12.1.0.1 JDBC Driver是一款用于Java应用程序与Oracle数据库之间通信的驱动程序,它基于Java Database Connectivity (JDBC) API。JDBC是Java平台上的标准接口,允许开发者用Java语言访问各种类型的...

    oracle 12c JDBC驱动 UCP 下载 版本12.1.0.2

    import oracle.jdbc.pool.OracleDataSource; public class UCPExample { public static void main(String[] args) { OracleDataSource ods = new OracleDataSource(); ods.setURL("jdbc:oracle:thin:@//hostname...

    oracle-instantclient12.1-jdbc-12.1.0.2.0-1.x86_64.rpm

    oracle-instantclient12.1-jdbc-12.1.0.2.0-1.x86_64.rpm

    Oracle Database 12.1.0.1 JDBC Driver 驱动多种

    ojdbc6.jar ojdbc6_g.jar ojdbc6dms.jar ojdbc6dms_g.jar ojdbc7.jar ojdbc7_g.jar ojdbc7dms.jar ojdbc7dms_g.jar ons.jar orai18n.jar simplefan.jar ucp.jar xdb6.jar 文件合集

    jdbc--drivers.zip_ jdbc oracle_JDBC ORACLE_oracle

    标题中的"jdbc--drivers.zip_ jdbc oracle_JDBC ORACLE_oracle"表明这是一个关于JDBC驱动程序的压缩包,特别关注的是Oracle数据库的JDBC驱动。JDBC,全称Java Database Connectivity,是Java语言中用于与各种数据库...

    Oracle_10g_10.2.0.4_JDBC_ojdbc14.jar

    Oracle_10g_10.2.0.4_JDBC_ojdbc14.jar 是Oracle数据库的一个重要组件,它是Oracle JDBC驱动程序的一部分。JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库交互的一套标准API。ojdbc14.jar ...

    Oracle_11g_JDBC_ojdbc6.rar

    "Oracle_11g_JDBC_ojdbc6.rar"这个压缩包包含了用于与Oracle 11g数据库交互的JDBC驱动,具体为`ojdbc6.jar`文件,这是Oracle为Java 6及更高版本提供的驱动程序。 在Java应用中,我们通常使用`Class.forName()`方法...

    jdbc-oracle.rar_JDBC ORACLE_java JDBC orac_java jdbc oracle_jdbc

    这个驱动类是`oracle.jdbc.driver.OracleDriver`。在Java代码中,我们可以通过以下方式注册驱动: ```java Class.forName("oracle.jdbc.driver.OracleDriver"); ``` 接着,我们通过`DriverManager.getConnection()...

    MySQL_for_JDBC,Oracle9i_for_JDBC,SQL_2000_for_JDBC,SQL_2005_for_JDBC数据库驱动架包.rar

    标题和描述中提到的"MySQL_for_JDBC"、"Oracle9i_for_JDBC"、"SQL_2000_for_JDBC"以及"SQL_2005_for_JDBC"都是针对不同数据库系统的Java JDBC驱动程序。JDBC(Java Database Connectivity)是Java编程语言中的一个...

    oracle_instantce_windows.x64-12.1.0.2.0.zip

    1. "instantclient-basic-windows.x64-12.1.0.2.0.zip":这是Oracle Instant Client的基础组件,包含oci.dll、sqlplus.exe等核心库和工具,使得开发者可以编写连接Oracle数据库的应用程序,而无需安装完整的Oracle...

    Jdbc.zip_JDBC程序_oracle_oracle jdbc

    标题中的“Jdbc.zip_JDBC程序_oracle_oracle jdbc”表明这是一个关于使用Java数据库连接(JDBC)与Oracle数据库交互的程序示例。在描述中提到,“一段Jdbc连Oracle的程序,并实现数据查询”,这暗示我们将探讨如何...

    oracle.jdbc.driver.oracledriver Oracle JDBC驱动包 ojdbc6

    Oracle JDBC驱动包是Oracle数据库与Java应用程序之间进行通信的关键组件,它使得Java程序员能够通过编写Java代码来操作Oracle数据库。标题中的"ojdbc6"指的是Oracle JDBC驱动的一个特定版本,适用于Java SE 6环境。...

    oracle-jdbc-12.2.0.1.zip

    2. **DataSource接口**: Oracle JDBC驱动支持使用`javax.sql.DataSource`接口来管理数据库连接池,这能提高性能并优化资源使用。通过配置数据源,可以在应用服务器中实现连接池的管理。 3. **JDBC URL**: Oracle ...

    jdbc.rar_oracle_oracle jdbc

    这通常通过`Class.forName()`方法完成,例如:`Class.forName("oracle.jdbc.driver.OracleDriver")`。 2. **建立数据库连接**:使用`DriverManager.getConnection()`方法,提供数据库URL、用户名和密码来创建数据库...

    ojdbc14-10.2.0.2.0.rar

    oracle.jdbc.Const.class oracle.jdbc.OracleCallableStatement.class oracle.jdbc.OracleConnection.class oracle.jdbc.OracleConnectionWrapper.class oracle.jdbc.OracleDatabaseMetaData.class oracle.jdbc....

    64-bit Oracle ODBC Driver 12.1.0.2.0

    64-bit ODAC 12c Release 4 (12.1.0.2.4) for Windows x64 [Released October 5, 2015] Download ODAC121024_x64.zip - 287 MB (301,348,751 bytes) ... 64-bit Oracle Instant Client 12.1.0.2.0

Global site tag (gtag.js) - Google Analytics