使用spring+hibernate的修改的问题

问题描述

刚刚开始学习spring,持久层用hibernate,在程序里面我需要修改用户信息的密码字段,(User)this.getHibernateTemplate().get(User.class, userNo);user.setPassword(newPassword);this.getHibernateTemplate().merge(user);如果我不想先把用户信息全取出来,然后修改密码字段放进去,有什么其他的方法吗?给点建议 呵呵问题补充:谢谢wangxuliangboy session.createQuery(sql).setString("password",password).setString("userNo",userNo).executeUpdate();这一句里面如果传入用户的变量无法通过public class UserInfoDAO extends HibernateDaoSupport{       public void updateUserInfo(User user){         String sql="update User set password = :password where userNo = :userNo"; Query query=this.getSession().createQuery(""); query.setString("password",user.getPassword()).          query.setString("userNo",user.getUserNo()). query.executeUpdate();}}如果这样写需要在方法里面加这个吗Transaction t=session.beginTransaction();

解决方案

如果传入用户的变量无法通过 ,为什么无法通过..如果是在内问类调用的话..你要申明成FINAL的才行
解决方案二:
你继承了HibernateDaoSupport,但是不知道你有没有配置spring的声明式事务..如果声明了,被正确的配置了..就可以不要用Transaction t=session.beginTransaction();
解决方案三:
如果你只是想更新的话...你没必要查询出这个User对象.Session session =sessionFactory.openSession();Transaction t=session.beginTransaction();String sql="update User set password = :password where userNo = :userNo";session.createQuery(sql).setString("password",password).setString("userNo",userNo).executeUpdate();hibernateTemplate可以这样用: return this.hibernateTemplate.execute(new HibernateCallback() { public Object doInHibernate(Session session) { Transaction t=session.beginTransaction();String sql="update User set password = :password where userNo = :userNo";session.createQuery(sql).setString("password",password).setString("userNo",userNo).executeUpdate(); } };

时间: 2024-07-29 00:46:21

使用spring+hibernate的修改的问题的相关文章

浅谈如何结合JDBC事务与Spring+Hibernate

问题:客户在其数据库操作过程中需要调用我们的工作流接口,这样就需要将我们的工作流操作与他 们的业 务操作置于同一个事务中.我们的服务采用的都是spring的声明式事务,而客户采用的是对 connection进行事务处理. 如何保证JDBC事务的一致性? 想到的解决方案一:使用jta事务,用tomcat+jotm提供事务管理器.为什么一开始就想到要使用jta事 务??实际上我们和客户都是使用的同一个数据库,为了方便,各自使用了不同的数据库连接方式,使用 jta的话确实有bt的意思在里面.但是事实上

spring hibernate 动态数据源 同步所有库的表结构问题

问题描述 spring hibernate 动态数据源 同步所有库的表结构问题 采取spring + hibernate 组成动态多数据源(每个库的表结构相同). 现程序升级需要对数据库表结构进行更改,将hibernate 的hibernate.hbm2ddl.auto 配置为update,结果只能修改defaultTargetDataSource 所连接的一个库. 求有可以使hibernate.hbm2ddl.auto 自动更新所有的库解决方案. 补充:是一个sessionFactory(or

无法通过spring+Hibernate删除和更新bean,但是可以插入,有谁遇到过这种情况吗?

问题描述 无法通过spring+Hibernate删除和更新bean,但是可以插入,有谁遇到过这种情况吗? 控制台没有报错 控制台没有报错 控制台没有报错 控制台没有报错 控制台没有报错 解决方案 修改了Spring配置文件的事物管理bean,然后就好了 解决方案二: 看下hibernate的配置对不对,什么报错

Spring,hibernate,struts经典面试笔试题(含答案)_java

本文讲述了Spring,hibernate,struts经典面试笔试题及其参考答案.分享给大家供大家参考,具体如下: 1.Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: ① . 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代

SSH---集成Struts2+Spring+Hibernate(一)

SSH---集成Struts2+Spring+Hibernate(一)           本方案让Spring创建Struts2的Action,不让Spring完全管理Struts2的Action,Struts2Action中的依赖对象,默认会根据名称自动装配           1.创建web项目           2.引入Struts2的依赖包,将依赖包拷贝到WEB-INF/lib下 *commons-logging-1.0.4.jar *freemarker-2.3.15.jar *o

ExtJS+SpringMVC+Spring+Hibernate的一种实现(蒋锋代码分析)

今天以前我写的java环境下web应用都是这种形式:1--自己写的@Controller中的handler方法采用Spring+Hibernate的方式读取数据,读取到我们自定义的PO中(从硬盘读取到内存中).2--然后采用SpringMVC的ModelAndView的方法addObject()将得到的PO或者PO的List放入ModelAndView的实例中.3--然后handler方法中setViewName(),return.相当于返回string或者4--ModelAndView给Spr

java-关于spring+hibernate 注入sessionFactory为null的问题

问题描述 关于spring+hibernate 注入sessionFactory为null的问题 最近一个项目需要用到struts2+spring+hibernate组合框架,我在一点一点的做配置,但做到注入SessionFactory时,一直不成功,在网上搜的一些解决方案也都不适用.故在此发布,希望高手们不吝赐教.web.xml的配置为: <?xml version=""1.0"" encoding=""UTF-8""

Struts+Spring+Hibernate实现上传下载

上传|下载 引言 文件的上传和下载在J2EE编程已经是一个非常古老的话题了,也许您马上就能掰着指头数出好几个著名的大件:如SmartUpload.Apache的FileUpload.但如果您的项目是构建在Struts+Spring+Hibernate(以下称SSH)框架上的,这些大件就显得笨重而沧桑了,SSH提供了一个简捷方便的文件上传下载的方案,我们只需要通过一些配置并辅以少量的代码就可以完好解决这个问题了. 本文将围绕SSH文件上传下载的主题,向您详细讲述如何开发基于SSH的Web程序.SS

spring+hibernate避免延迟加载异常

在hibernate中,延迟加载是1个非常大的优点,但有时候却给我们带来一些小麻烦,在后台查询结束后,session已经关闭,但在前台显示的时候,如果存在关联关系就会产生延迟加载异常. 解决办法是客户端每次请求就分配1个session,将请求结果返回给客户端,并完成展现后关闭session. 实现这个功能非常简单,在web.xml中加入以下配置 <filter> <filter-name>hibernateFilter</filter-name> <filter-