TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
如果主键为自动增长类型,如何在应用程序中获取该增长值呢?以下简单程序回答了该问题。
/**
* @[#]JDBCTest.java 10.0 2007.01.21
* 一个JDBC编程示例
* 数据库为:SQL Server2005或者SQL Server2000
* 表 名:Users
* 字 段:id(int 自动增长),userName(nvarchar(10))
*/
package accp;
import java.sql.*;
public class JDBCTest
{
/**
* main函数:应用程序的入口
*
* @param args
*/
public static void main(String[] args)
{
try
{
// 加载SQL Server2005驱动
// 加载SQL Server2000的驱动为("com.microsoft.jdbc.sqlserverSQLServerDriver")
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//基于驱动程序管理器建立连接对象
Connection conn = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;databaseName=J2EE", "sa",
"");
//基于连接对象建立处理器对象
Statement stmt = conn.createStatement();
//创建sql命令语句
String sql = "insert into users values("Tom")";
//执行处理器的更新方法,返回受影响的行数
//第二个参数整形常量Statement.RETURN_GENERATED_KEYS指示自动产生的
//id值可被检索(The constant indicating that generated keys should be made available for retrieval.)
int i = stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
if (i == 1)
System.out.println("记录已成功保存!");
//通过处理器的getGeneratedKeys()方法将返回包含有自动产生的id值的ResultSet对象
ResultSet rs = stmt.getGeneratedKeys();
//从结果集中取出该值
if (rs.next())
i = rs.getInt(1);
System.out.println("key=" + i);
} catch (ClassNotFoundException e)
{
System.out.println(e.getMessage());
} catch (SQLException e)
{
System.out.println(e.getMessage());
}
}
} |
|