当前位置:编程学习 > JAVA >>

Java对数据库sql/hql操作实现同步

--------------------编程问答-------------------- 读取的时候(getMoney()不限制,在对银行转账进行写入操作的方法(setMoney())前,添加上一个 synchronize关键字,这样就能实现基本的同步了。 --------------------编程问答-------------------- 楼主表达的意思貌似是需要事务管理吧 --------------------编程问答-------------------- // 打开事务
con.setAutoCommit(false);
// 提交事务
con.commit();
不知是否有用
--------------------编程问答-------------------- 楼主这个需求应该要用事务吧 --------------------编程问答-------------------- LZ的意思是事务吧 --------------------编程问答-------------------- 建议点:

1、在dao方法进行数据操作是,防止并发问题,特别是银行方面的系统,所以要加synchronized同步关键字。

2、在对数据表进行增删改时,我们也应该进行事务控制,从而保持数据的一致性。

如:
// 打开事务
 con.setAutoCommit(false);
 // 提交事务
 con.commit(); --------------------编程问答-------------------- 用事务~~~~ --------------------编程问答--------------------  仅仅是事务好像还不够
我对同步的思想理解的不是很透彻 ,我这样说不知道是不是现实应用中我们需要的同步,比如一个业务量比较大的用户,每天有很多的人往他账户里转账,就会碰到这样的情况,某一时刻有两人或两人以上的人同时给他转账(或者刚好有人给他转账的时候 他在取钱、存钱或者转账给别人)可能会出现数据混乱  我们就必须让服务器对这一操作一个个的实现 --------------------编程问答--------------------
引用 6 楼 sssskd 的回复:
建议点:

1、在dao方法进行数据操作是,防止并发问题,特别是银行方面的系统,所以要加synchronized同步关键字。

2、在对数据表进行增删改时,我们也应该进行事务控制,从而保持数据的一致性。

如:
// 打开事务
 con.setAutoCommit(false);
 // 提交事务
 con.commit();


加了synchronized   后是针对一个对象 还是说针对所有的对象一起同步或者说是对某一账户的那些对象一起同步

--------------------编程问答--------------------
引用 6 楼 sssskd 的回复:
建议点:

1、在dao方法进行数据操作是,防止并发问题,特别是银行方面的系统,所以要加synchronized同步关键字。

2、在对数据表进行增删改时,我们也应该进行事务控制,从而保持数据的一致性。

如:
// 打开事务
 con.setAutoCommit(false);
 // 提交事务
 con.commit();


正解~
--------------------编程问答--------------------
引用 9 楼 qinglo_ 的回复:
引用 6 楼 sssskd 的回复:建议点:

1、在dao方法进行数据操作是,防止并发问题,特别是银行方面的系统,所以要加synchronized同步关键字。

2、在对数据表进行增删改时,我们也应该进行事务控制,从而保持数据的一致性。

如:
// 打开事务
 con.setAutoCommit(false);
 // 提交事务
 con.comm……


加上synchronized关键字,表示这个方法(行为)同时只能由一个用户去操作,其它的用户需要去等待。只有当这个用户执行完这个方法时,释放同步锁由下一个用户继续操作此方法。从而保证数据的一致性。 --------------------编程问答-------------------- update account set money+=? where account_Id=? --------------------编程问答--------------------
引用 11 楼 sssskd 的回复:
引用 9 楼 qinglo_ 的回复:
引用 6 楼 sssskd 的回复:建议点:

1、在dao方法进行数据操作是,防止并发问题,特别是银行方面的系统,所以要加synchronized同步关键字。

2、在对数据表进行增删改时,我们也应该进行事务控制,从而保持数据的一致性。

如:
// 打开事务
 con.setAutoCommit(false);
 // 提交事务
 ……
那这样效率是不是太低了  这时间段只能为一个用户服务  那其他的用户就不能为其他的账户操作  貌似不符合实际吧 --------------------编程问答-------------------- 那如果你有更好的方法,咱们可以相互讨论下。

我以前做银行系统就是这么弄的。

同步方法有两种形式:

一、方法同步。

二、方法内部对数据进行CRUD时,采用同步块进行同步。 --------------------编程问答--------------------
引用 14 楼 sssskd 的回复:
那如果你有更好的方法,咱们可以相互讨论下。

我以前做银行系统就是这么弄的。

同步方法有两种形式:

一、方法同步。

二、方法内部对数据进行CRUD时,采用同步块进行同步。
不是说你这方法不行,你的思路是目前我能想到或者别的渠道获得方案中最好的了  以上说的效率问题只是我个人的理解,或许综合servlet的线程问题 这个效率问题就不再是问题了  个人想法
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,