问下数据库一次操作多个表的问题

一次操作一个表还比较简单,但是如果要一次操作多个表就比较麻烦了。
比如说要执行一次更新操作:在update A表的同时,还要insert B表。如果insert B表失败了,那么A表也不应该被更新。
我记得这应该是个事务操作吧,有一个表操作失败了就执行rollback,都成功了才commit提交。
现在的问题就是在dao里面该怎么写事务操作的代码呢?
另外如果有多个session同时访问同一个表,比如说用户a正在查询或更新某条数据,用户b在这同时又准备删除或更新这条数据,怎么进行锁表操作呢(即要a操作完毕后b才能操作)?
求源码。。。。求指点。。。谢谢!
补充一下哈:不要涉及到hibernate和spring的知识,我现在只是单纯的使用struts。

3个回答

ls的代码有问题的,还需要设置setAutoCommited(false);还有connection.commit();

[code="java"]
try {
Class.forName(this.driver);
connection = DriverManager.getConnection(connectionUrl, dbUser, dbPass);

        statement = connection.createStatement();
                    for (String sql : sqlList) {
            statement.executeUpdate(sql);
                    }

    } catch (SQLException e) {
        if (connection != null) {
            connection.rollback();
        }
        throw e;
    } finally {
        if (statement != null) {
            statement.close();
        }
        if (connection != null && connection.isClosed() == false) {
            connection.close();
        }
    }

[/code]

多用户的情况数据库自己会处理,代码里不用去特别处理了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐