- 浏览: 221521 次
- 性别:
- 来自: 湖南
文章分类
- 全部博客 (94)
- jQuery实例 (2)
- 数据库篇章 (13)
- Java杂谈 (5)
- SSH技术 (33)
- 工作流 (3)
- ajax技术 (2)
- Web前端 (13)
- Struts2 笔记 (1)
- Struts1 笔记 (0)
- 软件面试题目 (0)
- DWR技术篇章 (4)
- 智力题集 (4)
- 正则表达式 (3)
- C语言经典实例 (10)
- C语言学习 (1)
- ibatis and lucene (2)
- jsp_javascript (5)
- 单个功能模块实现源码 (2)
- jsp网站 (1)
- Linux (1)
- 文件解析 (5)
- 各种分页方法 (3)
- android (0)
- XML 技术 (1)
- HTTP通信 & XML (0)
- springMVC (0)
- 平台框架 (1)
最新评论
-
aiwei:
可不可以解释一下每个参数的意思?看不明白啊
Java 动态加载jsp页面 在div 刷新这么简单 就可以实现了 -
hzau_chen:
:i
很强大的jsp手写分页插件 实现json 等一些ajax技术 联合查询 模糊查询 条件查询 -
yzz9i:
你想怎么操作?这个是可以直接使用的
jsp里面实现 注册成功后 系统自动发送电子邮件 -
Zhang987526341:
我想请问在数据库里面还要加字段什么的吗,
jsp里面实现 注册成功后 系统自动发送电子邮件 -
tlk20071:
我现在要写一个类似的东西,但是一点都不熟悉,你能不能帮忙讲解一 ...
一个简单功能强大的Google Map 搜索源码 【我在CSDN上也有发布】
我想了好多种办法,一开始我想在dao层直接getHibernateTemplate().find("hql")但是结果是出错了,还有一种我之前可以用的那种:就是在业务成实现类里面创建类对象保存起来在缓存里面用set.属性值 保存,但是结果是给lock了。
现在的解决办法是在dao层:
String hqlString="update TbAds set state = " + 1 + " where adsId = " +id;
Query query=getSession().createQuery(hqlString);
query.executeUpdate();
对。我实现的功能是对每条信息的状态设置。 如果用的是merge, 它可以对单独的一条信息进行设置(如:运行、暂停 操作) 没问题,再进行另外一条信息操作时候就会 被锁住而报错.. 我也不知道是为什么..
我就在业务层这么写的:
之后我就把业务层调用该dao层方法 改在dao层写:
结果可以对任意一条信息进行状态的设置了。。
(--
为什么会被锁住 ?可能会是缓存的设置问题..?
是不是使用了事务读写缓存?
你们是按代码行数算绩效的吗?
来我们公司吧,给你看一天旧代码,你就会见怪不怪了!
你们是按代码行数算绩效的吗?
++1
你们是按代码行数算绩效的吗?
确实.
对。我实现的功能是对每条信息的状态设置。 如果用的是merge, 它可以对单独的一条信息进行设置(如:运行、暂停 操作) 没问题,再进行另外一条信息操作时候就会 被锁住而报错.. 我也不知道是为什么..
我就在业务层这么写的:
之后我就把业务层调用该dao层方法 改在dao层写:
结果可以对任意一条信息进行状态的设置了。。
(--
为什么会被锁住 ?可能会是缓存的设置问题..?
现在的解决办法是在dao层:
String hqlString="update TbAds set state = " + 1 + " where adsId = " +id;
Query query=getSession().createQuery(hqlString);
query.executeUpdate();
评论
14 楼
sidubi
2011-06-30
<pre name="code" class="java">this.getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException, SQLException {
session.createQuery("update TbAds set st........").executeUpdate();
return null;
}});
</pre>
<p> </p>
public Object doInHibernate(Session session) throws HibernateException, SQLException {
session.createQuery("update TbAds set st........").executeUpdate();
return null;
}});
</pre>
<p> </p>
13 楼
yizhilong28
2011-05-24
yzz9i 写道
jk19910410 写道
将update好的对象HibernateTemplate.merge("TableName",entity);就行了,更新操作怎么能用find()方法呢?
对。我实现的功能是对每条信息的状态设置。 如果用的是merge, 它可以对单独的一条信息进行设置(如:运行、暂停 操作) 没问题,再进行另外一条信息操作时候就会 被锁住而报错.. 我也不知道是为什么..
我就在业务层这么写的:
TbAds tbAds=tbAdsDAO.findById(id); if (sta==1) { tbAds.setState(0); tbAdsDAO.merge(tbAds); } else { tbAds.setState(1); tbAdsDAO.merge(tbAds); }
之后我就把业务层调用该dao层方法 改在dao层写:
if (sta==1) { String hqlString=" update TbAds set state = " + 0 + " where adsId = " + id; Query query=getSession().createQuery(hqlString); query.executeUpdate(); } else { String hqlString="update TbAds set state = " + 1 + " where adsId = " +id; Query query=getSession().createQuery(hqlString); query.executeUpdate(); }
结果可以对任意一条信息进行状态的设置了。。
(--
为什么会被锁住 ?可能会是缓存的设置问题..?
是不是使用了事务读写缓存?
12 楼
dsjt
2011-05-24
wenlongzh 写道
TbAds tbAds=tbAdsDAO.findById(id); if (sta==1) { tbAds.setState(0); tbAdsDAO.merge(tbAds); } else { tbAds.setState(1); tbAdsDAO.merge(tbAds); }
if (sta==1) { String hqlString=" update TbAds set state = " + 0 + " where adsId = " + id; Query query=getSession().createQuery(hqlString); query.executeUpdate(); } else { String hqlString="update TbAds set state = " + 1 + " where adsId = " +id; Query query=getSession().createQuery(hqlString); query.executeUpdate(); }
你们是按代码行数算绩效的吗?
来我们公司吧,给你看一天旧代码,你就会见怪不怪了!
11 楼
871656094
2011-05-23
回答主题:
HibernateTemplate.saveOrUpdate(Object instance)
HibernateTemplate.saveOrUpdate(Object instance)
10 楼
gaohenggaoheng
2011-05-23
不要直接操作session(getSession),使用spring提供的getHibernateTemplate是最好的.
如果使用了,需要release
如果使用了,需要release
9 楼
iday
2011-05-23
bulkupdate(hsql)
8 楼
skycray
2011-05-23
wenlongzh 写道
TbAds tbAds=tbAdsDAO.findById(id); if (sta==1) { tbAds.setState(0); tbAdsDAO.merge(tbAds); } else { tbAds.setState(1); tbAdsDAO.merge(tbAds); }
if (sta==1) { String hqlString=" update TbAds set state = " + 0 + " where adsId = " + id; Query query=getSession().createQuery(hqlString); query.executeUpdate(); } else { String hqlString="update TbAds set state = " + 1 + " where adsId = " +id; Query query=getSession().createQuery(hqlString); query.executeUpdate(); }
你们是按代码行数算绩效的吗?
++1
7 楼
zhao_chong
2011-05-23
Hibernate对象的三种状态
瞬时的(Transient)
由new操作符创建,且尚未与Hibernate Session关联的对象被认定为瞬时的(Transient)的。瞬时(Transient)对象不会被持久化到数据库中,也不会被赋予持久化标识(identifier)。如果瞬时对象在程序中没有被引用,它会被Java垃圾回收器(garbage collector)销毁。 使用Hibernate Session可以将其变为持久(Persistent)状态(Hibernate会自动执行必要的SQL语句)。
持久的(Persistent)
一个持久(Persistent)的实例在数据库中有对应的记录,并拥有一个持久化标识(identifier)。 持久(Persistent)的实例可能是刚被保存的,或刚被加载的,无论哪一种,按定义,它存在于相关联的Session的作用范围内。Hibernate会检测到处于持久状态的对象的任何改动,在当前操作单元执行完毕时将对象的状态同步到数据库,开发者不需要手动执行UPDATE语句。同样的,将一个对象变为瞬时(Transient)状态,也不需要手动执行DELETE语句。
分离的(Detached)
与持久对象关联的Session被关闭后,对象就变为分离的(Detached)的。 对分离对象的引用仍然是有效的,对象可以继续被修改。分离对象如果重新关联到某个新的Session上, 会再次转变为持久的(在Detached其间的改动将被持久化到数据库中)。
瞬时的(Transient)
由new操作符创建,且尚未与Hibernate Session关联的对象被认定为瞬时的(Transient)的。瞬时(Transient)对象不会被持久化到数据库中,也不会被赋予持久化标识(identifier)。如果瞬时对象在程序中没有被引用,它会被Java垃圾回收器(garbage collector)销毁。 使用Hibernate Session可以将其变为持久(Persistent)状态(Hibernate会自动执行必要的SQL语句)。
持久的(Persistent)
一个持久(Persistent)的实例在数据库中有对应的记录,并拥有一个持久化标识(identifier)。 持久(Persistent)的实例可能是刚被保存的,或刚被加载的,无论哪一种,按定义,它存在于相关联的Session的作用范围内。Hibernate会检测到处于持久状态的对象的任何改动,在当前操作单元执行完毕时将对象的状态同步到数据库,开发者不需要手动执行UPDATE语句。同样的,将一个对象变为瞬时(Transient)状态,也不需要手动执行DELETE语句。
分离的(Detached)
与持久对象关联的Session被关闭后,对象就变为分离的(Detached)的。 对分离对象的引用仍然是有效的,对象可以继续被修改。分离对象如果重新关联到某个新的Session上, 会再次转变为持久的(在Detached其间的改动将被持久化到数据库中)。
6 楼
wenlongzh
2011-05-23
TbAds tbAds=tbAdsDAO.findById(id); if (sta==1) { tbAds.setState(0); tbAdsDAO.merge(tbAds); } else { tbAds.setState(1); tbAdsDAO.merge(tbAds); }
if (sta==1) { String hqlString=" update TbAds set state = " + 0 + " where adsId = " + id; Query query=getSession().createQuery(hqlString); query.executeUpdate(); } else { String hqlString="update TbAds set state = " + 1 + " where adsId = " +id; Query query=getSession().createQuery(hqlString); query.executeUpdate(); }
你们是按代码行数算绩效的吗?
5 楼
duronshi
2011-05-23
楼主不会想表达的是批量修改操作吧?
原来有5条记录,现在修改成3条记录?
给你个笨方法,在一个事务里面,先删除,在插入,呵呵
原来有5条记录,现在修改成3条记录?
给你个笨方法,在一个事务里面,先删除,在插入,呵呵
4 楼
yzz9i
2011-05-23
aflyer 写道
... 基础很重要啊!
确实.
3 楼
yzz9i
2011-05-23
jk19910410 写道
将update好的对象HibernateTemplate.merge("TableName",entity);就行了,更新操作怎么能用find()方法呢?
对。我实现的功能是对每条信息的状态设置。 如果用的是merge, 它可以对单独的一条信息进行设置(如:运行、暂停 操作) 没问题,再进行另外一条信息操作时候就会 被锁住而报错.. 我也不知道是为什么..
我就在业务层这么写的:
TbAds tbAds=tbAdsDAO.findById(id); if (sta==1) { tbAds.setState(0); tbAdsDAO.merge(tbAds); } else { tbAds.setState(1); tbAdsDAO.merge(tbAds); }
之后我就把业务层调用该dao层方法 改在dao层写:
if (sta==1) { String hqlString=" update TbAds set state = " + 0 + " where adsId = " + id; Query query=getSession().createQuery(hqlString); query.executeUpdate(); } else { String hqlString="update TbAds set state = " + 1 + " where adsId = " +id; Query query=getSession().createQuery(hqlString); query.executeUpdate(); }
结果可以对任意一条信息进行状态的设置了。。
(--
为什么会被锁住 ?可能会是缓存的设置问题..?
2 楼
aflyer
2011-05-22
... 基础很重要啊!
1 楼
jk19910410
2011-05-22
将update好的对象HibernateTemplate.merge("TableName",entity);就行了,更新操作怎么能用find()方法呢?
发表评论
-
Java在项目中怎么让系统运行的更快,其实有好多方法 下面主要写到怎么运用系统级缓存
2012-02-08 17:11 0下面代码就已开发的系统为例子,也给自己学习学习。 ... -
(JAVA)未登录获取系统数据,例如一些公告之类的展示数据
2012-01-14 15:30 945在jsp页面上可以 通过Java代码得到 。 <% ... -
Java 中怎么发送 Email 邮件
2012-01-11 14:47 2598下面是我写的一段发生 ... -
Java 中实现定时服务 在ssh框架中跟普通工程里面创建的方式,区别
2012-01-11 14:33 1203闲话不多说 直接看下面代码 引用 网上这么说的: 1、 S ... -
Java 方便调用的工具类
2012-01-09 19:01 1768//时间格式化 (string型转date型 date转s ... -
Java 里面怎么发送XML数据请求 和怎么处理返回的XML数据
2012-01-04 15:33 0设计了几个关键地方:1 怎么发送请(发送有那些参数,参数怎么处 ... -
创建系统参数 (实例化参数)
2011-12-15 15:45 1260参数文件 引用qnr.properties 之中属性:ex ... -
Exception in thread "main":com/sun/mail/util/LineInputStream
2011-12-07 16:00 1033经过摸索,问题终于解决了。大家 MyEclipse6.5的j ... -
IO 流读取文件时候出现乱码 文件编码格式问题 怎么转换解决方法
2011-11-08 12:18 4511在使用下面这个写法时候UTF-8文件编码 在读取时候出现乱码问 ... -
很强大的jsp手写分页插件 实现json 等一些ajax技术 联合查询 模糊查询 条件查询
2011-10-13 10:02 11169这个插件里面分页功能很强大,调用者只需赋几个值就可以了。 下 ... -
Java 动态加载jsp页面 在div 刷新这么简单 就可以实现了
2011-09-29 17:43 11960引用 <script type="text/j ... -
注释方式 类生成数据库表
2011-09-21 17:24 970类对象: package com.pojos; im ... -
c:foreach 中jsp页面 中怎么对时间类型进行格式化问题
2011-09-14 12:00 7642具体实现很简单 就两步走: 引用 <%@ taglib ... -
给配置了c3p0的application.xml 配置一个单独的连接文件 applicationContext.xml 数据库连接就不要老是该来改去了
2011-09-09 17:52 2066原本的applicationContext.xml 部分配置( ... -
dao 分页方法
2011-09-01 16:05 1338看看这个类很简单实用: public Map feny ... -
ssh 整合 中怎么使用 c3p0 链接池 经测试已成功 不受 hibernate的8小时限制
2011-08-30 09:44 1418实现方式很简单,只操作 applicationContex ... -
怎么控制 显示 DIV 里面的 字数 只显示部分文字
2011-08-29 09:19 4273在 DIV 里面加如下 样式就可以了。 <div st ... -
FCKeditor 在jsp [ssh 框架中]中怎么调用 实现 图片上传/文件浏览【自己看文档摸索出来的】跟大家一块分享
2011-08-25 14:58 23191:下载 解压FCKeditor_2.6.4.1.zip ... -
使用 过滤器 filter处理session超时问题
2011-08-24 16:11 1541新建一个过滤器命名为:FilterDemo,该类继承自:jav ... -
最好用 最简单的日期时间javascript代码
2011-08-19 16:49 950<script>setInterval(&quo ...
相关推荐
在上面的代码中,我们使用 `HibernateCallback` 接口来执行原生 SQL 语句,该接口提供了一个 `doInHibernate()` 方法,该方法将在 Hibernate 事务中执行。我们可以在该方法中执行原生 SQL 语句,并使用 `Connection`...
"hibernatetools-Update-4.1.1.Final_2013-12-08_01-06-33-B605.zip" 是一个针对Eclipse的Hibernate工具集更新包,包含了对4.1.1.Final版本的增强和优化,为开发者提供了更加便捷的Hibernate操作界面和功能。...
- **数据库操作**:支持直接在IDE内执行SQL语句,查看和修改数据库数据,方便进行数据调试和管理。 - **HQL/SQL编辑器**:提供对Hibernate查询语言(HQL)和标准SQL的语法高亮和自动完成,有助于编写准确无误的...
开发者可以直接在IDE内进行Maven操作,无需离开开发环境,这在多模块大型项目中尤其重要。 还有就是代码生成工具,它可以根据设计模式自动生成符合规范的Java代码,如贫血模型或富模型,以及相应的持久化逻辑。在...
当你从数据库加载一个对象,修改其属性,然后调用`update()`方法,Hibernate会根据对象的状态自动执行相应的SQL UPDATE语句。然而,如果对象不在Session缓存中,`update()`方法可能会失效,因为Hibernate无法跟踪...
在Hibernate框架中,`merge`、`update`与`saveOrUpdate`这三个方法都是用于更新或保存实体对象到数据库中的,但它们之间存在着重要的区别,这些区别主要体现在对实体状态的处理方式上。 #### 1. `merge` 方法 `...
本篇文章将详细介绍在Hibernate中执行原生SQL的几种方式,以及它们各自的适用场景和优缺点。 1. **使用`Session.createSQLQuery()`** Hibernate的`Session`接口提供了`createSQLQuery()`方法,允许我们直接编写SQL...
在Java开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。它允许开发者使用面向对象的方式进行数据操作,而无需关注底层的SQL语句。本文将深入探讨Hibernate执行持久层访问的详细...
如果对象的ID已知且在Session缓存中不存在,那么它会被认为是需要更新的对象,执行`update`操作。 3. **事务处理**:在进行数据库操作时,`saveOrUpdate`通常需要在一个事务内执行,以确保数据的一致性。如果不在...
这个类展示了如何使用Hibernate的简单操作,如`get()`, `add()`, `del()`, 和 `update()`方法,这些方法调用了基类的抽象方法,进一步简化了DAO层的实现。 在Hibernate中,对象的状态分为瞬时状态、持久状态和脱管...
在IT行业中,Hibernate是一个非常流行的Java...总之,搭建Hibernate环境并进行基本操作封装是Java开发中的常见任务。通过理解并实践上述步骤,你可以有效地管理和操作数据库,同时享受到Hibernate带来的便捷和效率。
5. **CRUD操作**: Hibernate提供了便捷的方法进行创建(Create)、读取(Retrieve)、更新(Update)和删除/Delete)操作,如`save()`, `load()`, `update()`, `delete()`等。 6. **HQL与QBC**: Hibernate查询语言(HQL)...
在Java的持久化框架中,Hibernate是一个非常重要的工具,它简化了数据库操作,使得开发者能够更专注于业务逻辑而不是底层的数据存储。在这个主题“hibernate操纵实体对象”中,我们将探讨如何使用Hibernate来创建、...
3. 异步操作:通过使用Hibernate的异步API,可以在后台线程中执行数据库操作,不阻塞主线程。 4. 事件监听:可以注册监听器来响应特定的ORM事件,如对象的保存、更新或删除。 在“Hibernate中文文档 HTML格式”中,...
Hibernate是一款强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用中操作数据库的简便方法。通过使用Hibernate,开发人员可以避免直接编写SQL语句,而是通过面向对象的方式来管理和操作数据。本文将...
此外,Hibernate还提供了事件监听器和拦截器机制,允许自定义操作,如在对象加载、保存或删除前后执行特定逻辑。 总之,Hibernate中文API最新参考文档将帮助开发者掌握如何利用Hibernate的各类功能,实现高效、灵活...
在Hibernate中,我们可以便捷地进行这些操作。 1. **创建(Create)** - 在Hibernate中,我们首先需要配置Hibernate的主配置文件(hibernate.cfg.xml),包括数据库连接信息、方言、缓存等。 - 创建实体类,这个...
本教程将深入讲解如何使用Hibernate进行基本的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作,即CRUD操作。 ### 1. Hibernate环境搭建 首先,我们需要在项目中引入Hibernate的依赖库,通常...
在IT行业中,数据库操作是应用程序开发的核心部分,而Hibernate和MyBatis作为两个流行的Java持久层框架,都提供了与数据库交互的能力。本篇文章将详细探讨如何利用Hibernate来执行外部SQL文件,实现类似于MyBatis的...
在**Hibernate中的DAO模式**中,DAO类负责处理数据库的相关操作,如查询、插入、更新和删除数据。DAO类通常包含一组方法,每个方法对应一种数据库操作。例如,`save()`方法用于保存对象到数据库,`update()`方法用于...