姚强 2018-12-20
公司框架操作数据库用到三个核心类,BaseDao、HibernateBaseDao、JdbcBaseDao,实际在用到和数据库打交道时,都是由控制器到服务层再到持久层,spring配置事务传播作用在服务层,如果直接在控制器调用持久层的话,经过测试这3个核心类,发现BaseDao 不保存到数据库且不报错,HibernateBaseDao不保存到数据库且报错提示只读不可写,JdbcBaseDao可正常保存到数据库,以下是测试的样例代码!
public void saveLog(){ BaseDao baseDao = AppliactionContextHelper.getBean(BaseDao.class); RoleDao roleDao = AppliactionContextHelper.getBean(RoleDao.class); JdbcBaseDao jdbcBaseDao = AppliactionContextHelper.getBean(JdbcBaseDao.class); BaseLog baseLog = null; try { baseLog = SystemUtil.getBaseLog(LogType.LEVEL_INFO, LogType.SYSTEM_LOG, "baseDao>测试日志保存内容", "127.0.0.1"); baseDao.save(baseLog); } catch (Exception e) { log.error("baseDao>测试日志保存内容异常",e); } try { baseLog.setLogDesc("roleDao>测试日志保存内容"); roleDao.getHibernateTemplate().save(baseLog); } catch (Exception e) { log.error("roleDao>测试日志保存内容异常",e); } try { baseLog.setLogDesc("jdbcBaseDao>测试更新"); jdbcBaseDao.updateOrDeleteDataForSql("update base_user set user_name='系统管理员' where user_id = 1"); } catch (Exception e) { log.error("jdbcBaseDao>测试更新异常",e); } }