关于jdon 中SequenceDaoSql 的使用和原理 和jta 使用

07-06-22 sezelee
Long nextid = null;

try {

List list = jdbcTempSource.getJdbcTemp().queryMultiObject(queryParams, sql);

Iterator iter = list.iterator();

if (iter.hasNext()) {

Map map = (Map) iter.next();

nextid = (Long)map.get("id");

}

if (nextid == null) {

throw new SQLException("Error: A null sequence was returned from the database (could not get next " + idType + " sequence).");

}

nextid = new Long(nextid.longValue() + 1);//

String updatesql = "update jiveID set id = ? where idType = ?";

queryParams.clear();

queryParams.add(nextid);

queryParams.add(new Integer(idType));

jdbcTempSource.getJdbcTemp().operate(queryParams, updatesql);

nextid = new Long(nextid.longValue() + 1);//

String updatesql = "update jiveID set id = ? where idType = ?";

假如有多人同时取nextid,是否可能取回相同的值。

是否应该加上同步?

另外我想问一问,jdon有没有提供“事务”处理。[我在代码中没找到]

如果要使用jta [jotm] ,那么jta放在哪一层比较好。[放在action中可以吗]

谢谢!

banq
2007-06-22 16:21
>假如有多人同时取nextid,是否可能取回相同的值。是否应该加上同步?

不建议加同步,通过数据库事务来完成,还需要设置不同取值范围。比较复杂了。

>如果要使用jta [jotm] ,那么jta放在哪一层比较好。[放在action中可以吗]

jta已经在messageService中使用,应该在业务层使用,action只是MVC的controller,起到前后调度作用,与业务无关,不能放在action中。

猜你喜欢