当有多个用户并发向数据库执行写数据的操作时,
总会出现数据库只写入1,2条数据的情况,其它用户的数据并没有写入
请问这个需要将insert方法做同步处理吗
另外,是否所有的写入数据库的方法都需要作同步处理了
这样不就影响系统的性能吗环境:oracle9i+windows系统
程序结构:jsp + struts谢谢大家,请帮忙看看这个问题
总会出现数据库只写入1,2条数据的情况,其它用户的数据并没有写入
请问这个需要将insert方法做同步处理吗
另外,是否所有的写入数据库的方法都需要作同步处理了
这样不就影响系统的性能吗环境:oracle9i+windows系统
程序结构:jsp + struts谢谢大家,请帮忙看看这个问题
解决方案 »
- 求解~为什么界面repaint后之前画的东西都不见了
- 关于MouseAdapter非常大的疑问,是不是SUN搞错了。
- java线程数据获问题
- 简单问题:数据库连接什么时候关闭?
- 使用AWT如何给文字描边?
- 一个有难度的问题——反射机制与类的定义(500分相赠)
- 使用json-lib是报异常。请帮我看一下
- 关于《最新Java2核心技术(原理)》中的例子的问题,各位高手和看过此书的大虾看过来!!!
- 通过方法lookup("jndi-name")能够得到正确的home引用,但使用lookup("java:comp/env")来获得一个Context的引用时,却出现异常
- 该怎么学习流的内容 (scjp)?
- 富客户端程序,大家都用什么技术?有用Applet的吗?
- 一个关于反射的问题
但如果你用了一些自己的逻辑(如取最大的ID+1等),可以考虑同步.
Oracle加锁: lock table tableA in XXX mode nowait
其实更好的是自己在前端程序中进行同步,最好不要用数据库的锁,要不很可能造成死锁.
触发器里是这样用的吗?要不把问题先简单化,先不要这个自增主键.就是简单的insert,看看还有这个问题没有?
如果没有了,那就说明是在取这个mySeq的值出问题了.
但不起作用,还是有其它人的数据没有写入到数据库中,
程序如下:
synchronized (threadCounterLock)
{
if ( -1 != db.executeSql(sql))
{
opFlag = true;
}
else
{
throw new Exception();
}
}
为什么亚
数据库本身就支持并发执行,不需要自己干预,你可以将要写入的数据用同一事务提交,出错可以回滚。可能是你的jdbc读写有问题这是正解,只要放到同一个事务里就不会有并发的问题
但我的是单表操作,也需要用事务吗