首页 > 语言 > 关键词  > SQL最新资讯  > 正文

sql server2005 jdbc解决自动增长列统一处理问题纪实

2007-05-17 09:39 · 稿源:blog.csdn.net/fbysss

背景:系统要支持多种数据库,统一insert的时候获取自动增长列的处理方式

问题1:insert+select方案

sqlserver2000可以使用insertSql + SELECT @@IDENTITY AS 'Identity'的方式来获得,但是mysql则只能使用executeUpdate(insertSql);

executeQuery('SELECT last_insert_id() ')这样的方式,否则会抛出异常:java.sql.SQLException: Can not issue data manipulation statements with executeQuery()

而两句话分开处理,总让人感觉不放心,如果并发操作比较多,存在潜在的危险。

问题2:getGeneratedKeys方案

mysql的驱动支持jdbc3.0,实现了getGeneratedKeys(),但sqlserver2000 jdbc驱动不支持getGeneratedKeys()

解决思路:

google了一下,据说2005是支持的,所以下下来看看

下载地址:url:https://download.microsoft.com/download/2/8/9/289dd6a3-eeeb-46dc-9045-d0c6b59bfbc1/sqljdbc_1.1.1501.101_chs.exe

使用小结:

1.2005jdbc驱动是支持jdbc 3.0 的。也就是说,的确支持getGeneratedKeys()方法。

2.2005jdbc驱动url和包组织变动较大。

举例对比:

================
2000
================
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb;SelectMethod=cursor"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
================
2005
================
url="jdbc:sqlserver://localhost:1433;DatabaseName=mydb;SelectMethod=cursor"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
如果没注意这点,必将出现异常:Cannot load JDBC driver class'com.microsoft.jdbc.sqlserver.SQLServerDriver'
做好第二步,出现

3.包的位置:环境变量CLASSPATH不是必须的。但sqljdbc.jar必须放置在tomcat/common/lib中(如果是租用空间,可能得跟对方商量了,看是否支持2005的驱动)。

否则会发生异常:Cannot load JDBC driver class'com.microsoft.sqlserver.jdbc.SQLServerDriver'

测试示例方法:

public String executeUpdate(String sql) throws SQLException ...{
Connection conn = getConnection();
PreparedStatement pstmt = null;
try ...{
/**//*注意:jdbc3.0提供了Statement.RETURN_GENERATED_KEYS"用来指明需要从Statement中获得自动增长列值,
如果不设置该参数,在执行getGeneratedKeys()时会抛出异常:"只有运行该语句,生成的键才会可用。"*/
pstmt = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
pstmt.executeUpdate();
ResultSet rs = pstmt.getGeneratedKeys();//为了insert准备
if (rs.next())...{
return rs.getString(1);
}
return "-1";
} catch (SQLException ex) ...{
throw new SQLException(
"执行SQL语句失败。" +
ex.toString() +
" sql:"+sql);


} finally ...{
freeConnection(conn,pstmt);
}
}

举报

  • 相关推荐
  • 销售易 X 腾讯乐享:构建企业统一知识网络,为业务跟进客户提供有力支撑

    文章探讨了企业业务人员在客户跟进过程中面临的信息分散问题,并介绍了销售易CRM与腾讯乐享的整合解决方案。主要内容包括:1)传统模式下销售人员需手动整合内外部资料,效率低下;2)销售易CRM通过AI助手"百事通"打通多源知识,实现智能搜索和精准推送;3)四大应用场景展示如何提升拜访准备、方案制作、复盘跟进和客服应答效率;4)解决方案通过权限管理确保信息安全,并实时更新知识库。该整合方案将企业沉淀的专业知识转化为业务团队的底层能力,帮助提升响应速度和服务专业性。

  • 重回两位数增长、小游戏站上C位,游戏行业引擎变了

    ​变化巨大是从业者的体感,而产业数据验证了这一点。 2025年7月31日,中国国际数字娱乐产业大会(CDEC)在上海浦东嘉里酒店召开,对外发布《2025年1-6月中国游戏产业报告》。2025年上半年,国内游戏市场实际销售收入1680亿元,同比增长14.08%,上一次两位数的增长还要回到2020年。

  • 理想i8宣布统一版本:标配即顶配 并降价1万元

    理想汽车宣布对其首款纯电SUV车系i8进行重大策略调整。理想汽车方面透露,自i8上市以来,该车型迅速吸引了市场的广泛关注,其中超过98%的用户倾向于选择理想i8Max和Ultra两款高配车型,这一选择比例远超公司预期。 为回应市场关切,理想汽车决定对i8车系进行配置优化。公司宣布,将统一配置版本,以理想i8Max作为全系标准配置,并将售价从原先的34.98万元下调至33.98万元�

  • 李想回应理想i8统一配置版本:此前陷入惯性思维

    理想汽车创始人李想随后通过微博公开反思此次调整背后的逻辑。他坦言,此前理想i8延续了理想L8的三版本配置策略,属于惯性思维,未充分考量用户实际需求。近期通过收集用户及行业伙伴建议后,决定回归理想ONE的价值定义逻辑,简化版本选择。李想特别强调,调整后的i8将标配VLA司机大模型、CLTC续航720公里、铂金音响等核心配置,其中VLA大模型可实现语音交互控制车辆�

  • 小米15推送HyperOS 2.0 Beta更新:新增长按电源键与超级小爱持续对话功能

    小米昨日晚间面向小米15用户推送了HyperOS 2.0.230.18.WOCCNXM Beta版系统更新,更新包大小约为360MB。本次更新主要针对电源键功能和设备重启体验进行了优化。这也是小米15自从7月3日以来推送的第三版基于安卓16的HyperOS Beta版推送。

  • 千匠网络跨境出海B2B商城解决方案:助力制造业海外市场增长

    千匠网络推出跨境出海B2B商城解决方案,为企业提供一站式海外销售平台。该方案覆盖客户认证、询盘报价、交易履约等全业务流程,支持多站点多语言架构,实现商品与价格灵活管理。系统提供丰富营销玩法、高效订单支付管理及强大数据分析功能,帮助企业应对海外市场挑战。基于互联网中台架构和AI赋能,方案已成功服务林氏家居、宇视科技等企业,实现业务数字化和全球化拓展。

  • 盒马CEO:打通88VIP后会员数实现100%增长 今年计划新开100家门店

    今日盒马举办十周年开放日。 盒马CEO百何表示,盒马会坚持持续增长的策略,今年计划新开100家门店,并在原有城市的基础上,新增50个城市。 据她透露,盒马最近打通了和淘宝88VIP的合作,短短几天之内,盒马实现会员数100%增长。 据悉,从8月4日起,淘宝88VIP新增一项会员权益,淘宝88VIP用户可领取一张有效期为90天的盒马X会员体验卡,本次活动时间从8月4日持续到9月10日�

  • 从“被看见”到“被推荐”:小渔夫GEO让外贸增长加速

    文章概述了AI搜索革命正在重塑全球流量格局。相比传统关键词搜索,AI能直接提供结构化答案和供应商推荐,如ChatGPT能精准推荐中国金属木纹家具制造商。数据显示全球AI搜索用户量从2024年1月的3.1亿激增至2025年2月的19.8亿,预计全球1/4人口正在使用AI搜索。文章提出GEO(全球引擎优化)新概念,强调要通过结构化知识嵌入、多模态内容优化和EEAT(专业性、权威性、可信度)评估体系来抢占AI推荐入口。最后分享了GEO三大实施策略:优化问答式内容、建立品牌权威体系、布局全渠道信息矩阵。

  • 登顶!华为OceanStor A系列存储再登MLPerf全球性能之巅

    2025年8月5日,华为OceanStor A系列存储联合济南超算研究院在MLPerf® Storage v2.0基准测试中斩获多项全球第一。在3D U-Net训练场景下,OceanStor A800以698GiB/s带宽刷新全球记录,支持255张H100 GPU;A600每U带宽达108GiB/s。新增的Checkpointing测试中,华为存储在Llama3模型场景下读写带宽领先。该测试涵盖26家厂商,验证了存储系统对大规模AI算力的支撑能力。华为通过架构创新实现EB级扩展、99.999%高可靠,并推出128TB大容量SSD,能效低至0.7W/TB,持续推动AI大模型训练与推理场景的技术突破。

  • 告别“数据录入机器”:ToB智能体如何让CRM回归业务本质

    2025年腾讯全球数字生态大会上,销售易推出首款AI CRM产品NeoAgent,基于大模型技术重构企业销售流程。该产品通过语音指令自动完成客户拜访规划、关联历史数据并生成策略建议,实现从菜单点击到自然对话的交互变革。销售易通过"三阶跃迁"模式:解放双手的语音转结构化记录、突破菜单层级的智能检索、结合销售方法论的场景赋能,深度重构CRM系统。产品依托统一数据平台,实现多模态信息整合与权限管控,采用混合模型架构平衡响应速度与决策质量。目前已在米其林等企业应用中显著提升销售转化率,并通过"用户+流量"混合收费模式验证商业化路径。这标志着ToB领域AI正从效率工具向"数字同事"进化,其核心价值在于理解业务、适配场景并创造增量。

今日大家都在搜的词: