0 0

用jdbc怎么得到sql server 2000中表的主键3

最近在学习jdbc,发现在用jdbc在sql server 2000中想要获得刚插入的数据主键时总提示如下异常:
 
Exception in thread "main" java.lang.AbstractMethodError: com.microsoft.jdbc.sqlserver.SQLServerConnection.prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatement;

 

public String getPrimaryKey(){
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		Users users = null;
		String primaryKey = null;
		try {
			conn = SinglJdbcUtil.getIntance().getConnection();
			conn.setAutoCommit(false);
			String sql = "insert into tmp (columnz) " +
					"values( ? )" ;
			ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
			ps.setString(1, "XKGS_000016");
			
			ps.executeUpdate();
			
			rs = ps.getGeneratedKeys();
			while(rs.next()){
				primaryKey = rs.getString(1);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			SinglJdbcUtil.getIntance().free(rs, ps, conn);
		}
		return primaryKey;
	}

 表就长着模样 create table tmp(ids int IDENTITY , columnz varchar(20)  constraint pk_ids primary key (ids) )

请问我要怎么修正代码才能得到在用jdbc,进行insert时的那条数据的主键啊


问题补充:我指的是使用jdbc获取刚插入的数据的主键,不通过任何数据库的方式;jdbc提供了这样一个东西Statement.RETURN_GENERATED_KEYS,我就是在使用时出了问题
OO 
2010年11月26日 16:46

3个答案 按时间排序 按投票排序

0 0

如果你调用jdbc提供的这个方法报错的话,如果还是用纯jdbc我觉得只有这样做了。
首先为了确保获得的主键是对应当前用户的,执行插入操作的时候事务上锁,然后调用@@identity 全局函数,获得最后插入的主键。
不过这样貌似性能降低了很多。

2010年11月27日 01:33
0 0

插入后返回的主键值这样获取:
INSERT INTO tableName (fieldname ...) values (value ...) SELECT @@IDENTITY AS returnName;  在sql语句中加入SELECT @@IDENTITY AS returnName;用来获取主键的值  在程序中获取返回值: 
public int sqlexecutereader(string sql){         
    DBopen();         
    SqlCommand myComm = new SqlCommand(sql, Connection);         
    int newID = Convert.ToInt32(myComm.ExecuteScalar());
    DBclose();
    return newID;     
}

2010年11月26日 17:12
0 0

你是要取insert之后的主键值,还是在这条要insert的数据的主键值?

2010年11月26日 17:10

相关推荐

    都市供求信息网JSP+SQL Server 2000

    3. **数据库设计**:在SQL Server 2000中,通常会设计几个核心表,如用户表(user)用于存储用户信息,商品表(product)存储商品详情,分类表(category)定义不同类型的供求信息。此外,还可能存在其他辅助表,如订单...

    sqljdbc42 jdbc for java

    String url = "jdbc:sqlserver://服务器地址:端口号;databaseName=数据库名"; String username = "用户名"; String password = "密码"; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")...

    《SQL Server 2000数据库管理与开发实用教程》课件

    1. **数据库设计**:在SQL Server 2000中,理解关系数据库模型至关重要。包括实体关系模型(ER模型)、范式理论(1NF, 2NF, 3NF等),以及如何通过设计表结构、定义主键、外键来确保数据的一致性和完整性。 2. **...

    jsp课程设计学生成绩管理系统(sqlserver2000)

    4. **数据访问**:使用JDBC(Java Database Connectivity)API连接SQLServer2000数据库,执行SQL语句进行增删改查操作。例如,通过PreparedStatement预编译SQL语句,防止SQL注入攻击。 SQLServer2000作为后台数据库...

    数据库SQLserver java课程 设计-SQL Server代码类资源

    在本课程设计中,我们将深入探讨如何利用SQL Server数据库系统和Java编程语言来构建一个学生信息管理系统。这个项目旨在帮助学生掌握SQL Server的基本操作以及Java与数据库交互的技能,为今后的实际开发工作打下坚实...

    计算机软件-编程源码-SQL Server 2000数据库管理.zip

    在SQL Server 2000中,这涉及表的创建、字段定义、主键和外键约束、索引设计等。良好的数据库设计可以避免数据冗余,保证数据一致性,并优化查询性能。 10. **故障排查与监控** SQL Server 2000提供了一系列工具,...

    SQL Server 2000简明培训教程

    SQL Server 2000支持与各种应用程序和服务的集成,如ASP.NET、XML、ODBC/JDBC等,学习如何在这些环境中部署和使用SQL Server。 通过深入学习SQL Server 2000,你将具备构建和管理高效、安全的企业级数据库系统的...

    SQL Server ppt教学

    本教程旨在帮助学习者深入理解数据的基本概念,并熟悉SQL Server的基本操作,包括数据库、表的创建,以及T-SQL语言的使用,为后续的Java、.NET数据库开发奠定坚实的基础。 首先,我们从数据的基本概念开始。数据是...

    jsp留言板,sqlserver2000

    【标题】"jsp留言板,sqlserver2000"是一个基于Java Server Pages(JSP)技术的简单留言板应用,它需要与SQL Server 2000数据库配合使用。JSP是一种动态网页开发技术,允许开发者在HTML代码中嵌入Java代码,以便...

    使用hibernate对sqlserver 2005进行增删改查

    这个文件定义了数据库连接参数,例如数据库URL("jdbc:sqlserver://localhost:1433; DatabaseName=test"),用户名("sa"),密码("518168"),驱动类("com.microsoft.sqlserver.jdbc.SQLServerDriver"),以及...

    sqlserver2sqlite_converter

    2. 数据库结构转换:工具会分析SQL Server的表结构,包括字段名、数据类型、约束(如主键、外键)、索引等,并将这些信息转换为SQLite兼容的格式。 3. 数据迁移:在结构转换完成后,工具会将SQL Server中的数据导出...

    Sql server教程 郑阿奇主编书籍ppt+源码

    9. **程序开发接口**:介绍如何使用T-SQL进行编程,以及使用ADO.NET、ODBC、JDBC等接口与SQL Server交互。 配合源码部分,学习者可以实际动手操作,理解如何在项目中应用上述知识。源码涵盖了不同的应用场景,例如...

    数据库SQLserver+java课程设计

    在“数据库SQLserver+java课程设计”中,我们主要探讨的是如何使用SQL Server数据库与Java编程语言协同工作,构建一个学生信息管理系统。这个系统能够帮助管理和处理学生的基本信息,包括添加、删除、修改和查询等...

    mybatis spring sqlserver mysql

    在IT行业中,数据库管理和数据查询优化是至关重要的环节。MyBatis、Spring和SQL Server、MySQL这...在提供的压缩包文件“sqlserver分页”中,可能包含的是针对SQL Server分页查询的示例代码或配置,供开发者参考学习。

    21天学通SQL Server中部分习题答案

    在《21天学通SQL Server》这本书中,学习者会遇到各种习题来巩固对SQL Server的理解。以下是对部分习题答案的解析,旨在帮助读者深入理解SQL Server的关键概念和功能。 第一章主要介绍了数据库的基本概念,包括关系...

    实现java sqlserver学生信息管理系统

    3. **数据库连接**: 要使Java程序能与SQLServer通信,我们需要使用JDBC(Java Database Connectivity)API。JDBC是一个Java接口,它允许Java应用程序通过Java代码来访问各种类型的数据库。开发者需要编写代码来建立...

    SQLServer课程设计-论坛管理系统

    在本项目中,"SQLServer课程设计-论坛管理系统"是一个基于SQL Server数据库技术与Java编程实现的课程设计项目。这个项目旨在让学生在学习SQL Server之后,能够将其理论知识转化为实际应用,通过构建一个论坛管理系统...

    JSP简单留言本(SQLserver2000版)

    【JSP简单留言本(SQLserver2000版)】是一个适合初学者研究和实践的Web应用程序,它演示了如何使用JSP(JavaServer Pages)技术与SQL Server 2000数据库进行交互,创建一个基本的在线留言功能。这个例子原本是基于...

    Java sqlserver 一个简单的教务管理系统

    【标题】:Java sqlserver 一个简单的教务管理系统 这个项目是使用Java编程语言与Microsoft SQL Server数据库构建的教务管理系统的实现。它提供了一个基础的框架,用于管理和操作教育机构的日常教学活动数据,例如...

Global site tag (gtag.js) - Google Analytics