ssh项目问题:更新数据写到了内存里但不能正确存入数据库 50

在内存中有更新过的数据,比如用户密码更改过后,用新密码才能登陆。但是数据不能正确写入数据库。比如,用户密码更改过后,数据库用户登录数据表打不开,而且重启之后更改过的数据消... 在内存中有更新过的数据,比如用户密码更改过后,用新密码才能登陆。
但是数据不能正确写入数据库。比如,用户密码更改过后,数据库用户登录数据表打不开,而且重启之后更改过的数据消失。即没有存入数据库中。
没有配置声明式事务,配置声明式事务之后就无法获得输入;
用了getHibernateTemplate()事务应该是自动提交的,我也手动进行了事务提交,但还还是不行。结果一样。是不是spring的配置文件写的不对?
代码:
<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

<tx:advice id="txAdvice" transaction-manager="txManager">
<!-- 用于配置详细的事务语义 -->
<tx:attributes>
<!-- 所有以'get'开头的方法是read-only的
<tx:method name="get*" propagation = "REQUIRED"/>
--><!-- 其他方法使用默认的事务设置 -->
<tx:method name="*" propagation = "REQUIRED"/>
</tx:attributes>
</tx:advice>
<aop:config>
<!-- 配置一个切入点 -->
<aop:pointcut id="Pointcut"
expression="bean(*passwordchanAction)"/>
<!-- 指定在leePointcut切入点应用txAdvice事务增强处理 -->
<aop:advisor advice-ref="txAdvice"
pointcut-ref="Pointcut"/>
</aop:config>
展开
 我来答
爱乾永0E
2013-05-08 · TA获得超过189个赞
知道小有建树答主
回答量:230
采纳率:0%
帮助的人:163万
展开全部
您好,您的这个原因已经说的很明了了。您的数据库没反应,是因为,在此之间,中断过操作,然而,数据库自带一个回滚事务,没有成功,就还原成原来的那个样子,这也是数据库为了自己本身的安全和性能着想,所有没有存入数据库中。。
更多追问追答
追问
没看懂 怎么改?改哪里?
追答
改您applicationContext.xml中的事务。看您逻辑实现的那一块有没有被事务进行管理。。方便的话,能将您的事务处理那一块贴出来吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-09
展开全部
晕,你贴的spring配置不是声明式事物么????expression对吗????。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaotao_king
2013-05-08 · TA获得超过2455个赞
知道大有可为答主
回答量:863
采纳率:0%
帮助的人:1144万
展开全部
检查一下,更新操作是否提交了事务!
也可贴出你代码,看一眼!
更多追问追答
追问
没有配置声明式事务,配置声明式事务之后就无法获得输入;
用了getHibernateTemplate()事务应该是自动提交的,我也手动进行了事务提交,但还还是不行。结果一样。是不是spring的配置文件写的不对?
追答

你的数据库连接类,继承的是org.springframework.orm.hibernate3.support.HibernateDaoSupport吧?

示例:注入sessionfactory

import javax.annotation.Resource;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class MyHibernateDaoSupport extends HibernateDaoSupport {
                                                                                                                                 
    @Resource(name="sessionFactory") //为父类HibernateDaoSupport注入sessionFactory的值
    public void setSuperSessionFactory(SessionFactory sessionFactory) {
        super.setSessionFactory(sessionFactory);
    }
}

你的数据库操作类,只需继承MyHibernateDaoSupport即可。

如:

/**
 *  ……省略引用包
 */
public class BaseDao extends MyHibernateDaoSupport {
        /**
     * 保存实体 包括添加和修改
     * @param t - 实体对象
     */
    public void saveOrUpdate(T t) {
        getHibernateTemplate().saveOrUpdate(t);
    }
}


事务的贴不上,超长了,你再追问次!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式