Statement 对象执行静态 SQL 语句。您可使用 Statement 对象的 executeUpdate 方法执行 INSERT、UPDATE 和 DELETE 等 SQL 语句,这些语句不返回结果集。诸如 CREATE TABLE 的语句及其它数据定义语句也可通过使用 executeUpdate 来执行。
使用 iAnywhere JDBC 驱动程序执行成批插入时,建议使用较小的列大小。建议不要使用成批插入方式向 long binary 或 long varchar 列中插入大的二进制或字符数据,这样可能会导致性能下降。这是因为 iAnywhere JDBC 驱动程序只有分配较大的内存大小才能保存成批插入的各行。在所有其它情况下,与逐个插入相比,成批插入会提供更佳的性能。
如果不希望您的应用程序使用成批插入方式向 long binary 或 long varchar 列中插入大数据,则任何成批插入列的缺省最大字段大小为 256K。如果您的应用程序需要成批插入的列数据超过 256K,则必须先在 Statement.setMaxFieldSize() 方法中指定更大的最大字段大小,然后再执行成批插入。
以下代码段说明如何执行 INSERT 语句。它将已传递到 InsertStatic 方法的 Statement 对象用作一个参数。
public static void InsertStatic( Statement stmt ) { try { int iRows = stmt.executeUpdate( "INSERT INTO Departments (DepartmentID, DepartmentName)" + " VALUES (201, 'Eastern Sales')" ); // Print the number of rows inserted System.out.println(iRows + " rows inserted"); } catch (SQLException sqe) { System.out.println("Unexpected exception : " + sqe.toString() + ", sqlstate = " + sqe.getSQLState()); } catch (Exception e) { e.printStackTrace(); } } |
此代码段是位于 samples-dir\SQLAnywhere\JDBC 目录中的 JDBCExample 类的一部分。
executeUpdate 方法返回一个用于反映操作所影响到的行数的整数。在此情况下,成功的 INSERT 会返回值 1。
作为服务器端的类运行时,System.out.println
的输出会显示在数据库服务器消息窗口中。
使用 Interactive SQL,以 DBA 身份连接到示例数据库。
确保已安装 JDBCExample 类。
有关安装 Java 示例类的详细信息,请参见准备示例。
定义一个名为 JDBCExample 的存储过程,该存储过程充当类中 JDBCExample.main 方法的包装:
CREATE PROCEDURE JDBCExample( IN arg CHAR(50) ) EXTERNAL NAME 'JDBCExample.main([Ljava/lang/String;)V' LANGUAGE JAVA; |
如下所示调用 JDBCExample.main 方法:
CALL JDBCExample( 'insert' ); |
参数字符串 'insert'
用以调用 InsertStatic 方法。
确认 Departments 表中已添加一行。
SELECT * FROM Departments; |
示例程序会在数据库服务器消息窗口中显示 Departments 表的更新内容。
在示例类中有一个称为 DeleteStatic 的类似方法,用于显示如何删除刚刚添加的行。如下所示调用 JDBCExample.main 方法:
CALL JDBCExample( 'delete' ); |
参数字符串 'delete'
用以调用 DeleteStatic 方法。
确认该行已从 Departments 表中删除。
SELECT * FROM Departments; |
示例程序会在数据库服务器消息窗口中显示 Departments 表的更新内容。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |