`

getHibernateTemplate().save和super.getHibernateTemplate().merge

 
阅读更多
代码1_save:

super.getHibernateTemplate().save(user);
        System.out.println(":"+user.getId());
输出1:
Hibernate: insert into user (userid, userpwd, userques, userans, usermail, integral, grade, sex, realname) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
:9


代码2_merge:
super.getHibernateTemplate().merge(user);
        System.out.println(":"+user.getId());
输出2:
Hibernate: insert into user (userid, userpwd, userques, userans, usermail, integral, grade, sex, realname) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
:0

代码3_merge:
user = (User)super.getHibernateTemplate().merge(user);
        System.out.println(":"+user.getId());
输出3:
Hibernate: insert into user (userid, userpwd, userques, userans, usermail, integral, grade, sex, realname) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
:11

当我们使用merge的时候,执行完成,我们提供的对象A还是脱管状态,hibernate或者new了一个B,或者检索到
一个持久对象B,并把我们提供的对象A的所有的值拷贝到这个B,执行完成后B是持久状态,而我们提供的A还是托管状态


继续看代码:
super.getHibernateTemplate().save(user);
        user.setUserans("杭州BST");
        System.out.println(":"+user.getId());输出:
Hibernate: insert into user (userid, userpwd, userques, userans, usermail, integral, grade, sex, realname) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
:13
Hibernate: update user set userid=?, userpwd=?, userques=?, userans=?, usermail=?, integral=?, grade=?, sex=?, realname=? where id=?


super.getHibernateTemplate().merge(user);
        user.setUserans("杭州BST");
        System.out.println(":"+user.getId());

-------------------------
Hibernate: insert into user (userid, userpwd, userques, userans, usermail, integral, grade, sex, realname) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
:0




其实,我们也可以这样显示修改状态。
user = (User)super.getHibernateTemplate().merge(user);
        user.setUserans("杭州BST");
        System.out.println(":"+user.getId());

--------------------

Hibernate: insert into user (userid, userpwd, userques, userans, usermail, integral, grade, sex, realname) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
:16
Hibernate: update user set userid=?, userpwd=?, userques=?, userans=?, usermail=?, integral=?, grade=?, sex=?, realname=? where id=?
转载:
[url]http://www.blogjava.net/beijing2008/articles/317924.html[/url]
分享到:
评论

相关推荐

    gethibernatetemplate的find方法

    gethibernatetemplate的find方法,find(String queryString);find(String queryString , Object value);find(String queryString, Object[] values);findByExample(Object exampleEntity);findByExample(Object ...

    getHibernateTemplate()有模糊查询和 分页

    在给定的标题和描述中,提到的是`getHibernateTemplate()`的两个主要应用:模糊查询和分页。以下是这两个概念的详细解释: 1. **模糊查询**: 在Hibernate中,我们通常使用HQL(Hibernate Query Language)或SQL来...

    hibernate保存不到数据1

    当使用Hibernate的`getHibernateTemplate().save()`方法尝试保存数据时,如果数据没有被保存到数据库,可能有以下几个原因: 1. **事务管理**:在默认情况下,Hibernate不会自动开启和提交事务。如果在代码中没有...

    getHibernateTemplate()使用方法

    List<User> users = this.getHibernateTemplate().find("from bean.User u where u.name=?", "test"); ``` 该代码执行了一个条件查询,即获取名字为"test"的所有用户。 ### 3. `find(String queryString, Object[]...

    getHibernateTemplate

    在Spring MVC(S2SH,即Struts2、Spring和Hibernate的组合)架构中,`getHibernateTemplate()`常用于数据访问层(DAO,Data Access Object)以简化对数据库的操作。它提供了事务管理、异常转换等特性,使得开发更加...

    getHibernateTemplate分页-模糊查询

    getHibernateTemplate().save(info); } public Info getInfoById(String id) throws Exception { Info info = (Info) getHibernateTemplate().load(Info.class, id); return info; } // ...其他方法... } ...

    getHibernateTemplate()查询

    this.getHibernateTemplate().find("from bean.User"); ``` 这条查询会返回数据库中所有`User`对象的集合。 #### 二、`find(String queryString, Object value)` 该方法允许通过一个HQL查询字符串及一个参数值来...

    hibernate模板类详解

    List<User> users = this.getHibernateTemplate().find("from bean.User"); ``` 这条代码会执行一个简单的HQL查询,即“从User表中选择所有记录”,并返回一个包含所有用户对象的列表。 #### 二、find(String ...

    jsp中调用dao的getHibernateTemplate()时,报空指针

    本文将讲解这个问题的原因和解决方法。 在 SSH 框架中,DAO(Data Access Object)是负责与数据库交互的对象,而 HibernateTemplate 则是 Hibernate 框架提供的一个模板类,用于简化数据库操作。通常情况下,我们在...

    HibernateTemplate及generator用法.docx

    - 保存:`super.getSession().save()`, `super.getSession().update()`, `super.getSession().delete()` - Query的用法:除了基本的查询外,Query还支持更新、删除操作,并能进行分页。例如,使用`createQuery()`...

    三大框架实例

    在这里,`getHibernateTemplate().save(xs)`利用Hibernate的模板方法,将对象保存到数据库。HibernateTemplate是Spring对Hibernate的封装,使得操作数据库更加简洁。 在Action层,我们看到`private XsService ...

    JspWeb开发CRUD 操作

    getHibernateTemplate().save(address); } public void insertUser(User user){ getHibernateTemplate().saveOrUpdate(user); } ``` 这里的`save()`方法用于保存新对象到数据库,而`saveOrUpdate()`则更为灵活,...

    hibernateTemplate和HibernateDaoSupport

    getHibernateTemplate().save(entity); return entity; } // 更新一条记录 public void update(Entity entity) throws Exception { getHibernateTemplate().update(entity); } // 删除一条记录 public ...

    手机充值卡充值

    return (Card)this.getHibernateTemplate().get(Card.class, cardPass); } @Override public void updateCard(Card card) { // TODO Auto-generated method stub this.getHibernateTemplate().update(card...

    HibernateTemplate及generator用法.doc

    1. 直接调用`super.getSession()`获取Session并进行操作,如`getSession().find()`等。 2. 使用`getHibernateTemplate()`,然后调用其提供的方法,如`getHibernateTemplate().find()`等。 通常推荐使用`...

    Spring+Hibernate实现增删改查的两种方法

    getHibernateTemplate().save(user); } // 其他对应的方法实现 } ``` **对比分析** 1. **灵活性**:HibernateTemplate提供了预定义的CRUD方法,使用更简单,但可能不够灵活;而HibernateDaoSupport则更灵活,...

    spring_MVC源码

    07. public Object save(final Object model); 08. public void update(final Object model); 09. public void delete(final Object model); 10.} [java] view plaincopy 01.package com.mvc.dao; 02...

    客户关系管理系统框架搭建(二)

    this.getHibernateTemplate().save(entity); } @Resource(name="sessionFactory") //注入sessionFactory public void setSessionFactoryDI(SessionFactory sessionFactory) { ...

    hql语言中的一些常用的方法

    list = this.getHibernateTemplate().findByExample(u, start, max)`,这里将返回所有名字为“bb”且密码为“123”的用户记录,并支持分页,其中`start`和`max`分别表示起始位置和最大返回记录数。 #### 3. ...

    Spring 和hibernate集成自学笔记

    // 示例:List<User> users = this.getHibernateTemplate().find("from bean.User u where u.name like ?", "%test%"); ``` - **多个参数查询** ```java List<User> find(String queryString, Object[] values)...

Global site tag (gtag.js) - Google Analytics