为了使用存储过程修改 SQL Server 数据库中的数据,Microsoft SQL Server 2005 JDBC Driver 提供了 SQLServerCallableStatement 类。通过使用 SQLServerCallableStatement 类,可以调用修改数据库中所包含数据的存储过程,然后返回受影响的行数计数(也称为更新计数)。
使用 SQLServerCallableStatement 类构建对存储过程的调用之后,可以使用 execute 或 executeUpdate 方法中的任意一个来调用此存储过程。executeUpdate 方法将返回一个 int 值,该值包含受此存储过程影响的行数,但 execute 方法不返回此值。如果使用 execute 方法,并且希望获得受影响的行数计数,则可以在运行存储过程后调用 getUpdateCount 方法。
如果要让 JDBC 驱动程序返回所有更新计数,包括任何可能已不再使用的触发器所返回的更新计数,请将 lastUpdateCount 连接字符串属性设置为“false”。有关 lastUpdateCount 属性的详细信息,请参阅设置连接属性。
作为实例,在 SQL Server 2005 AdventureWorks 示例数据库中创建以下表和存储过程:
在下面的实例中,将向此函数传递 AdventureWorks 示例数据库的打开连接,并使用 execute 方法调用 UpdateTestTable 存储过程,然后使用 getUpdateCount 方法返回受存储过程影响的行计数。