诗剑书生的专栏

我在灌江口上住,花开花落,不知流年度.雁过空遗秋色暮,抚琴细听梧桐雨. 轻舞残虹漫展书,云卷云舒,思愫万千缕.安得婵娟与共处,长作识字耕田夫.                   诗剑书生 于灌江口.听潮居

用户操作
[即时聊天] [发私信] [加为好友]
诗剑书生ID:axman
108405次访问,排名820好友0人,关注者14
一个男人. 一个写程序男人. 一个写程序并从程序中寻找快乐的男人. 一个写程序并从程序中寻找快乐又把快乐传递给大家的男人.
一个书生. 一个寂寞的书生. 一个寂寞的梅香竹影下敲声写韵的书生. 一个寂寞的梅香竹影下敲声写韵晨钟暮鼓中逸气扬剑的书生.
那个男人是位书生。没有人知道他的姓名,居无定所,行无定踪,亦耕亦读,或渔或樵。
axman的文章
原创 87 篇
翻译 0 篇
转载 0 篇
评论 161 篇
axman的公告
最近评论
ZangXT:醍醐灌顶
matay:能不能把这个打包mms的工程源代码共享一下?万分感谢!
mataym@gmail.com
axman:不用说明什么,一切都如我预料的那样.
在整个奥运开幕式期间,我一边看电视,一边访问
http://www.cctvolympics.com/main.php?type=vod这个地址,其间访问一百多次,没有一次成功.大多数时候是前端缓存的squid在报refuse(111).有时以过几分钟的等待,能出来页面,但Flash缓冲的进度条到了99%就一直停止在那儿.
……
myvicc:写得不错,等写下文
chinagavin:我是先读三位正向输出,然后再读三位反向输出来最终达到想要的结果。
文章分类
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 常见的几个数据库insert into操作的主键返回值收藏

    新一篇: JDBC高级应用三 | 旧一篇: Spring 调用ORACLE存储过程的结果

    这几天做管理工具,有一个操作很令人头痛.
     
    当插入一条记录时,我们很多时候都想马当前插入的主键返回出来.作为另一个操作的条件.如果主键是
    自动生成的(大多数时候是这样),那么取回主键是一种比较困难的事.可能对于一些特殊的数据库必须把
    insert into和select max(key)或什么序列当前值作为一个事务的原子来操作,但很多数据库(以及数据库操作环境)
    并不能为你提供事务并发控制.所以如果多人同时操作,那么select max(key)很可能就不是你刚才insert的
    那条记录.
     
    在JDBC3.0中,已经可以直接返回insert 语句的主KEY和其它值,但目前只有mysql支持.oracl和sqlserver
    的JDBC都不支持这个特性.而且如果离开JAVA平台就没有这个特性了.
     
    详细读了oacle,sqlserver,mysql的文档,对上面三种数据库找到了以下解决方案,在java和非java平台都适用:
     
    SQLServer:
     
    INSERT INTO tableName (fieldList ...) values (valueList ...) SELECT @@IDENTITY AS aliasName;
     
    这一句相当于执行查询操作,从结果集中getXXX(aliasName);就可以获取.
     
    Oracle:
     
    INSERT INTO tableName (fieldList ...) values (valueList ...) RETURNING [primaryKey INTO]:aliasName;
     
    同上的方法可以获取.这两种方法都是数据库支持的sql语句,原以根本不存在并发冲突.
     
     
    mysql:
    没有找到可以绝对保证原子性的语句(谁知道反馈一下)
     
    如果是在JAVA平台,可以直接利用 Statement的返回键特性.比较安全,在非java平台上,目前只能通过在同一会话中用
    LAST_INSERT_ID([columnName])来获取,注意一定要在同一会话中.

     

    发表于 @ 2006年07月07日 08:27:00|评论(loading...)|编辑

    新一篇: JDBC高级应用三 | 旧一篇: Spring 调用ORACLE存储过程的结果

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © axman