首页 > 数据库 > mysql教程 > 在Java中使用Oracle的merge语法

在Java中使用Oracle的merge语法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-07 17:09:42
原创
1807 人浏览过

如果不使用Oracle提供的merge语法的话,可能先要上数据库select查询一下看是否存在,然后决定怎么操作,这样的话需要写更多的代码,

在JAVA开发中通常碰到这样的需求,如果一条数据在表中已经存在,对其做update,如果不存在,将新的数据插入.

如果不使用Oracle提供的merge语法的话,可能先要上数据库select查询一下看是否存在,然后决定怎么操作,这样的话需要写更多的代码,

同时性能也不好,要来回数据库两次.

使用merge的话则可以一条SQL语句完成.


下面是JAVA代码的示例:(这里简单起见,没有对异常下连接关闭做处理)


    private static void testMerge() throws SQLException {

        // create table testtb(id int,val varchar2(10))
       
        String sqlstr = "merge into testtb "
                + "using (select ? as newid,? as newval from dual) newData "
                + "ON (testtb.id=newData.newid) "
                + "WHEN NOT MATCHED THEN "
                + "INSERT VALUES (newid,newval) "
                + "WHEN MATCHED THEN " + "UPDATE SET testtb.val=newData.newval";

        Connection conn = NONXADBUtil.getConnection("jdbc:oracle:thin:@147.151.100.19:1521:orcl", "user", "pwd");

        PreparedStatement sta = conn.prepareStatement(sqlstr);
       
        sta.setInt(1, 1);
        sta.setString(2, "new value");
       
        sta.executeUpdate();

        sta.close();
        conn.commit();
        conn.close();

    }

linux

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
TP6教程问题
来自于 1970-01-01 08:00:00
0
0
0
TP5.1首发教程和独孤九剑的TP5教程区别
来自于 1970-01-01 08:00:00
0
0
0
有什么经典的symfony1.2教程
来自于 1970-01-01 08:00:00
0
0
0
求教程课件下载
来自于 1970-01-01 08:00:00
0
0
0
没有bootstrap自定义的视频教程
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板