- 浏览: 216877 次
- 性别:
- 来自: 湖南
文章分类
- 全部博客 (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 900在jsp页面上可以 通过Java代码得到 。 <% ... -
Java 中怎么发送 Email 邮件
2012-01-11 14:47 2540下面是我写的一段发生 ... -
Java 中实现定时服务 在ssh框架中跟普通工程里面创建的方式,区别
2012-01-11 14:33 1150闲话不多说 直接看下面代码 引用 网上这么说的: 1、 S ... -
Java 方便调用的工具类
2012-01-09 19:01 1660//时间格式化 (string型转date型 date转s ... -
Java 里面怎么发送XML数据请求 和怎么处理返回的XML数据
2012-01-04 15:33 0设计了几个关键地方:1 怎么发送请(发送有那些参数,参数怎么处 ... -
创建系统参数 (实例化参数)
2011-12-15 15:45 1148参数文件 引用qnr.properties 之中属性:ex ... -
Exception in thread "main":com/sun/mail/util/LineInputStream
2011-12-07 16:00 988经过摸索,问题终于解决了。大家 MyEclipse6.5的j ... -
IO 流读取文件时候出现乱码 文件编码格式问题 怎么转换解决方法
2011-11-08 12:18 4465在使用下面这个写法时候UTF-8文件编码 在读取时候出现乱码问 ... -
很强大的jsp手写分页插件 实现json 等一些ajax技术 联合查询 模糊查询 条件查询
2011-10-13 10:02 11113这个插件里面分页功能很强大,调用者只需赋几个值就可以了。 下 ... -
Java 动态加载jsp页面 在div 刷新这么简单 就可以实现了
2011-09-29 17:43 11891引用 <script type="text/j ... -
注释方式 类生成数据库表
2011-09-21 17:24 909类对象: package com.pojos; im ... -
c:foreach 中jsp页面 中怎么对时间类型进行格式化问题
2011-09-14 12:00 7582具体实现很简单 就两步走: 引用 <%@ taglib ... -
给配置了c3p0的application.xml 配置一个单独的连接文件 applicationContext.xml 数据库连接就不要老是该来改去了
2011-09-09 17:52 2029原本的applicationContext.xml 部分配置( ... -
dao 分页方法
2011-09-01 16:05 1296看看这个类很简单实用: public Map feny ... -
ssh 整合 中怎么使用 c3p0 链接池 经测试已成功 不受 hibernate的8小时限制
2011-08-30 09:44 1365实现方式很简单,只操作 applicationContex ... -
怎么控制 显示 DIV 里面的 字数 只显示部分文字
2011-08-29 09:19 4204在 DIV 里面加如下 样式就可以了。 <div st ... -
FCKeditor 在jsp [ssh 框架中]中怎么调用 实现 图片上传/文件浏览【自己看文档摸索出来的】跟大家一块分享
2011-08-25 14:58 22771:下载 解压FCKeditor_2.6.4.1.zip ... -
使用 过滤器 filter处理session超时问题
2011-08-24 16:11 1475新建一个过滤器命名为:FilterDemo,该类继承自:jav ... -
最好用 最简单的日期时间javascript代码
2011-08-19 16:49 901<script>setInterval(&quo ...
相关推荐
//该方法将到classpath下解析hibernate.cfg.xml中的配置,如果不用Hibernate默认的配置文件名和路径,可在该方法中指定Hibernate配置文件的名称和路径 2.用Configuration对象获取SessionFactory和Session对象:...
10.4.1. 执行查询 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两...
10.4.1. 执行查询 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两...
10.4.1. 执行查询 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两...
10.4.1. 执行查询 10.4.1.1. 迭代式获取结果(Iterating results) 10.4.1.2. 返回元组(tuples)的查询 10.4.1.3. 标量(Scalar)结果 10.4.1.4. 绑定参数 10.4.1.5. 分页 10.4.1.6. 可滚动遍历(Scrollable iteration) ...
10.4.1. 执行查询 10.4.1.1. 迭代式获取结果(Iterating results) 10.4.1.2. 返回元组(tuples)的查询 10.4.1.3. 标量(Scalar)结果 10.4.1.4. 绑定参数 10.4.1.5. 分页 10.4.1.6. 可滚动遍历(Scrollable iteration) ...
博文链接:https://limaofa.iteye.com/blog/212727
10.4.1. 执行查询 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两...
hibernate 的基础 常用的主键生成策略 持久化对象的三种状态 一级缓存的常用操作(save/update/saveOrUpdate/delete)一对多关联映射 级联操作
Spring提供的持久层访问的方式,无须显式地打开和关闭Session,也无须在代码中执行任何的事务操作语句。 Spring提供了HibernateTemplate,用于持久层访问。它只要获得SessionFactory的引用,就可以智能地打开Session...
操作持久化数据(Manipulating Persistent Data) 9.1. 创建一个持久化对象 9.2. 装载对象 9.3. Querying 9.3.1. 标量查询(Scalar query) 9.3.2. 查询接口(Query interface) 9.3.3. 可滚动迭代...
2.4.1 Hibernate的核心接口 2.4.2 事件处理接口 2.4.3 Hibernate映射类型接口 2.4.4 可供扩展的接口 2.5 小结 2.6 思考题 第3章 第一个Hibernate应用 3.1 创建Hibernate的配置文件 3.2 创建持久化类...
1、触发器使 Session 的缓存中的持久化对象与数据库中对应的数据不一致:触发器运行在数据库中, 它执行的操作对 Session 是透明的 Session 的 解决方案: 在执行完 Session 的相关操作后, 立即调用 Session 的...
上述实体映射到数据库中的时候对应 Order 实体Bean, 其具有 id, lastUpdate, lastUpdater 三个属性。如果没有@MappedSuperclass 注解,则父类中属性忽略,这是 Order 实体 Bean 只有 id 一个属性。 映射实体Bean的...
11.4.1. 执行查询 11.4.1.1. 迭代式获取结果(Iterating results) 11.4.1.2. 返回元组(tuples)的查询 11.4.1.3. 标量(Scalar)结果 11.4.1.4. 绑定参数 11.4.1.5. 分页 11.4.1.6. 可滚动遍历(Scrollable ...
11.4.1. 执行查询 11.4.1.1. 迭代式获取结果(Iterating results) 11.4.1.2. 返回元组(tuples)的查询 11.4.1.3. 标量(Scalar)结果 11.4.1.4. 绑定参数 11.4.1.5. 分页 11.4.1.6. 可滚动遍历(Scrollable ...
执行查询 10.4.1.1. 迭代式获取结果(Iterating results) 10.4.1.2. 返回元组(tuples)的查询 10.4.1.3. 标量(Scalar)结果 10.4.1.4. 绑定参数 10.4.1.5. 分页 10.4.1.6. 可滚动遍历(Scrollable iteration) ...
所以要完成对Lob字段的操作,Hibernate必须执行两步数据库访问操作,先Insert再Update。 使用BlobByteArrayType字段类型后,为什么我们就可以象一般的字段类型一样操作Blob字段呢?可以确定的一点是:...
10.4.1. 执行查询 10.4.1.1. 迭代式获取结果(Iterating results) 10.4.1.2. 返回元组(tuples)的查询 10.4.1.3. 标量(Scalar)结果 10.4.1.4. 绑定参数 10.4.1.5. 分页 10.4.1.6. 可滚动遍历(Scrollable iteration) ...
strtus2+hibernate文件上传及连接数据库操作,使用模拟http请求测试的,验证类是updateTest类,文件上传类是uplodController,连接数据库的操作时productController类