|
我对java baas 进行了测试 调试代码中已经if(selfContext) context.rollback(); 执行了。可是。数据库依然没有回滚,前一句依然执行了代码如下:
public static JSONObject UpdateAction(JSONObject params, ActionContext context) throws SQLException, NamingException, java.sql.SQLException {
String sql1 = "update takeout_food set fStatus = 1 where fName like '%鱼%'";
String sql2 = "update takeout_foodf set fStatus = 1 where fNamef like '%鸡%'";
JSONObject rt = new JSONObject();
//Connection conn = DataUtils.getConnection(DATASOURCE_demo);
Connection conn = context.getConnection(DATASOURCE_demo);
//conn.getTransactionIsolation();
java.sql.PreparedStatement pstmt1 = null;
pstmt1 = conn.prepareStatement(sql1);
pstmt1.execute();
pstmt1 = conn.prepareStatement(sql2);
pstmt1.execute();
rt.put("state", "1");
//conn.commit();
// finally{
//
// conn.close();
// }
return null;
}
系统生成的代码如下
public static JSONObject UpdateAction(JSONObject params, ActionContext context) throws Exception{
boolean selfContext = null==context;
if(selfContext) context = new ActionContext(getDBConfig());
if(params.containsKey(ActionContext.REQUEST)) context.put(ActionContext.REQUEST, params.get(ActionContext.REQUEST));
if(params.containsKey(ActionContext.RESPONSE)) context.put(ActionContext.RESPONSE, params.get(ActionContext.RESPONSE));
byte[] privateParamBytes = {123,125};
JSONObject privateParams = JSONObject.parseObject(new String(privateParamBytes,"UTF-8"));
byte[] publicParamBytes = {123,125};
JSONObject publicParams = JSONObject.parseObject(new String(publicParamBytes,"UTF-8"));
//进行参数处理
initActionParams(privateParams,publicParams,params);
try{
try {
JSONObject ret = TransactionBaasDemo.UpdateAction(params, context);
if(selfContext) context.commit();
return ret;
}catch (Exception e){
try {
if(selfContext) context.rollback();
} catch (SQLException e1) {
}
throw e;
}
} finally {
if(selfContext) context.closeConnection();
}
}
请教教我怎么才能数据完整的回滚。 |
|