永发信息网

spring jdbctemplate 使用 AOP管理事务,但是无效,具体的配置文件如下:

答案:2  悬赏:40  手机版
解决时间 2021-02-08 21:35



























我在Service层定义一个查询方法:

@Override
public List queryAllUsers() {
return userDao.queryAllUsers();
}

在相应的Dao层

@Override
public List queryAllUsers() {
User user = new User();
user.setUsername("test");
user.setAge(32);
user.setEmail("123456@qq.com");
user.setPassword("123");
// 这里可以做修改操作,并没有像配置文件那样,Spring有控制只读事务,而且抛异常也不会回滚
getJdbcTemplate().update(UPDATE_USER_INFO, new Object[]{user.getPassword(),user.getAge(),user.getEmail(),user.getUsername()}, new int[]{Types.VARCHAR,Types.INTEGER,Types.VARCHAR,Types.VARCHAR});
return getJdbcTemplate().query(USER_ALL_SQL, new UserMapper());
}
所以请问一下这是怎么回事,我的Mysql上的表是ENGINE=InnoDB,应该不是数据库不支持事务导致的。
下面是测试类:
public class TestService {
ApplicationContext context = null;

@Before
public void init(){
context = new ClassPathXmlApplicationContext("applicationContext.xml");
}

@Test
public void testUserService() throws Exception {
UserService service = context.getBean(UserService.class);
service.queryAllUsers();
}

}
最佳答案
在serice实现类上添加@Transactional,在spring的配置文件里添加

这样就可以了。
全部回答
这个包应该是 笔者自己创建获取bean的包 实际datasource 来自 applicationcontext里面的datasource 所以你也可以自定义获取datasource 方法 通过applicationcontext获取datasource
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
联想的什么型号笔记本玩英雄联盟不卡,¥3800
中国移动通信(文慧专营店)地址有知道的么?有
准备来一个饭店,做便当,取一个有诗意的饭店
我国的中小企业以()企业为主。A.国有B.国营C.
伊人秀家纺窗帘在哪里啊,我有事要去这个地方
严重的胆囊结石需要手术吗
安广网络北斗星城营业厅地址在什么地方,想过
快捷宾馆在哪里啊,我有事要去这个地方
中国联通(钟鸣中心卫生院东北)地址在哪,我要
世纪金榜中考总复习英语作业答案!!! 老师要改
喜欢的人都已经订婚了,可是我却连祝福的话都
沃营业厅(长江西路营业厅)地址在哪,我要去那
新时代电子城地址在什么地方,想过去办事
中国电信(汇景新城营业厅)地址在什么地方,想
香港轩辕国际有限公司在哪里 ?
推荐资讯
和瑞第二小学地址在什么地方,想过去办事
长乐二一村地址在哪,我要去那里办事
杭州高翔汽车修理有限公司怎么去啊,有知道地
动感地带歌场怎么去啊,我要去那办事
斜塔披萨我想知道这个在什么地方
什么牌子/型号的球比较适合多球训练用?(羽毛
工作比挽起袖子做事更重要。这句话什么意思?
出纳员需要出差吗?
东方红农牧科技发展公司在哪里啊,我有事要去
王者荣耀好号和好密码
香飘飘羊肉米线地址有知道的么?有点事想过去
停车场(绿洲西路)地址有知道的么?有点事想过
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?