梦幻之旅
DEBUG - 天道酬勤
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
671 随笔 :: 6 文章 :: 256 评论 :: 0 Trackbacks
<
2009年6月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
公告
本博客中未注原创的文章均为转载,对转载内容可能做了些修改和增加图片注释,如果侵犯了您的版权,或没有注明原作者,请谅解
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(21)
给我留言
查看公开留言
查看私人留言
随笔分类
(644)
Android(10)
(rss)
ANT(4)
(rss)
C#(10)
(rss)
C/C++(16)
(rss)
CSS(3)
(rss)
DataBase(119)
(rss)
DB-DailyMmaintenance(16)
(rss)
Design Patterns(27)
(rss)
english
(rss)
Exceptions(7)
(rss)
EXT(39)
(rss)
FLASH(9)
(rss)
Hardware(20)
(rss)
Hibernate(13)
(rss)
Html(23)
(rss)
Java(143)
(rss)
java Net(10)
(rss)
JavaScript(39)
(rss)
Linux(26)
(rss)
php(5)
(rss)
Regular Exp(3)
(rss)
Spring(17)
(rss)
Struts(12)
(rss)
TOOL(43)
(rss)
VB/VBA/VBS(5)
(rss)
webservice(9)
(rss)
XML(2)
(rss)
我的梦幻旅途(14)
(rss)
随笔档案
(669)
2017年9月 (4)
2016年10月 (1)
2015年6月 (1)
2015年4月 (2)
2015年1月 (1)
2014年8月 (2)
2014年7月 (9)
2014年6月 (1)
2014年5月 (2)
2014年4月 (3)
2014年3月 (3)
2013年10月 (4)
2013年9月 (8)
2013年8月 (4)
2013年6月 (3)
2013年5月 (4)
2013年4月 (7)
2013年3月 (1)
2013年1月 (3)
2012年12月 (4)
2012年11月 (1)
2012年10月 (1)
2012年9月 (4)
2012年8月 (1)
2012年7月 (2)
2012年6月 (1)
2012年5月 (4)
2012年4月 (2)
2012年3月 (1)
2012年2月 (4)
2012年1月 (6)
2011年12月 (10)
2011年11月 (7)
2011年10月 (6)
2011年9月 (37)
2011年8月 (34)
2011年7月 (44)
2011年6月 (10)
2011年5月 (5)
2011年4月 (3)
2011年3月 (1)
2011年2月 (1)
2011年1月 (18)
2010年12月 (9)
2010年11月 (13)
2010年10月 (17)
2010年9月 (2)
2010年8月 (10)
2010年7月 (10)
2010年6月 (5)
2010年5月 (8)
2010年4月 (9)
2010年3月 (11)
2010年2月 (3)
2010年1月 (8)
2009年12月 (6)
2009年11月 (10)
2009年10月 (5)
2009年9月 (1)
2009年8月 (18)
2009年7月 (6)
2009年6月 (2)
2009年5月 (1)
2009年4月 (4)
2009年3月 (6)
2009年2月 (5)
2009年1月 (3)
2008年12月 (13)
2008年11月 (13)
2008年10月 (30)
2008年9月 (9)
2008年8月 (24)
2008年7月 (17)
2008年6月 (15)
2008年5月 (16)
2008年4月 (15)
2008年3月 (19)
2008年2月 (3)
2008年1月 (20)
2007年12月 (24)
2007年11月 (9)
文章档案
(6)
2008年4月 (1)
2008年3月 (1)
2008年1月 (2)
2007年11月 (2)
最新随笔
1. PP代码生成器(四) 使用解决方案生成代码
2. PP代码生成器(三) 设计freemarker模板, 创建解决方案
3. PP代码生成器(二) 解决方案, 生成任务, 辅助设计面板
4. PP代码生成器(一) 简介, 下载, 运行
5. PP持久层代码生成器
6. 比较好的博客
7. 系统集成项目管理工程师
8. 软件公司项目经理岗位职责
9. 联想笔记本 显示屏 键盘失灵 释放静电
10. eclipse maven
积分与排名
积分 - 953998
排名 - 37
最新评论
1. re: Myeclipse 快捷键大全(绝对全)
crl+向右箭头(输入法有问题打不出来)移到下一个参数的位置,然后crl+shift+向右箭头 选中该位置的参数即可
--红领巾
2. re: Log4j基本使用方法
555
--555
3. re: Myeclipse 快捷键大全(绝对全)[未登录]
很不错,谢谢
--银狐
4. re: Flex 表单
是谁这么无聊~呜~~~
--HUIKK
5. re: Spring AfterReturning 异常
具体是什么意思啊
--dingli
阅读排行榜
1. Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream(70015)
2. log4j.properties 使用说明(42070)
3. Myeclipse 快捷键大全(绝对全)(32711)
4. TNSNAMES.ORA 配置(24380)
5. oracle 树状查询(21351)
评论排行榜
1. Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream(53)
2. JMail 异常: java.lang.NoClassDefFoundError: javax/activation/DataSource(21)
3. javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first(14)
4. java 读取 excel 2003 或 excel 2007(14)
5. java.lang.UnsupportedClassVersionError: Bad version number in .class file(8)
Hibernate DAO 类
package
org.huy.fram.hibernate;
import
java.io.Serializable;
import
java.math.BigDecimal;
import
java.util.List;
import
org.hibernate.Query;
import
org.hibernate.Session;
/** */
/**
*
* <p>
* Title:[Hibernate Data Access Object Support]
* </p>
* <p>
* Description: [操作数据库支持类,其它DAO可能继承该类]
* </p>
* <p>
* Copyright 2009 Huyvanpull Co., Ltd.
* </p>
* <p>
* All right reserved.
* </p>
*
*
@version
1.0
*
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*/
public
class
HibDAOSupport
{
/** */
/**
DAO的操作po的类型
*/
private
Class
<?>
claz
=
null
;
/** */
/**
构造方法,且只应提供此种构造方法
*/
public
HibDAOSupport(Class
<?>
claz)
{
this
.claz
=
claz;
}
/** */
/**
*
* <p>
* Description:[加载对象,返回代理实例]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*
@param
id
*
@return
*/
public
Object load(Serializable id)
{
Object entity
=
null
;
try
{
Session session
=
HibernateSessionFactory.getSession();
entity
=
session.load(
this
.claz, id);
}
catch
(RuntimeException re)
{
throw
re;
}
return
entity;
}
/** */
/**
*
* <p>
* Description:[得到对象,返回实体类]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*
@param
id
*
@return
*/
public
Object get(Serializable id)
{
Object entity
=
null
;
try
{
Session session
=
HibernateSessionFactory.getSession();
entity
=
session.get(
this
.claz, id);
}
catch
(RuntimeException re)
{
throw
re;
}
return
entity;
}
/** */
/**
*
* <p>
* Description:[把实例保存到数据库]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*
@param
entity
*
@return
*/
public
Object save(Object entity)
{
try
{
/** */
/**
如果entity不是claz的实例,此处会抛出异常,下面代码不会执行
*/
this
.isInstance(entity);
Session session
=
HibernateSessionFactory.getSession();
session.save(entity);
}
catch
(RuntimeException re)
{
throw
re;
}
return
entity;
}
/** */
/**
*
* <p>
* Description:[把实例保存到数据库]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*
@param
entity
*
@return
*/
public
Object update(Object entity)
{
try
{
/** */
/**
如果entity不是claz的实例,此处会抛出异常,下面代码不会执行
*/
this
.isInstance(entity);
Session session
=
HibernateSessionFactory.getSession();
session.update(entity);
}
catch
(RuntimeException re)
{
throw
re;
}
return
entity;
}
/** */
/**
*
* <p>
* Description:[根据实列删除对象]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*
@param
object
*
@return
*/
public
Object delete(Object entity)
{
try
{
/** */
/**
如果entity不是claz的实例,此处会抛出异常,下面代码不会执行
*/
this
.isInstance(entity);
Session session
=
HibernateSessionFactory.getSession();
session.delete(entity);
}
catch
(RuntimeException re)
{
throw
re;
}
return
entity;
}
/** */
/**
*
* <p>
* Description:[根据id删除对象]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*
@param
id
*/
public
void
deleteById(Serializable id)
{
delete(load(id));
}
/** */
/**
*
* <p>
* Description:[不附加条件查询所有对象]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*
@return
*/
public
List
<?>
findAll()
{
String hsql
=
"
from
"
.concat(
this
.getEntityClassName());
return
this
.find(hsql,
0
,
0
);
}
/** */
/**
*
* <p>
* Description:[根据hsql查询数据]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 30, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*
@param
hsql
* HSQL
*
@param
beginIndex
* 查询起始位置
*
@param
pageSize
* 每页长度
*
@return
*/
public
List
<?>
find(
final
String hsql,
final
int
beginIndex,
final
int
pageSize)
{
List
<?>
entityLst
=
null
;
try
{
Session session
=
HibernateSessionFactory.getSession();
Query query
=
session.createQuery(hsql);
if
(beginIndex
!=
0
)
{
query.setFirstResult(beginIndex);
}
if
(pageSize
!=
0
)
{
query.setMaxResults(pageSize);
}
entityLst
=
query.list();
}
catch
(RuntimeException re)
{
throw
re;
}
return
entityLst;
}
/** */
/**
*
* <p>
* Description:[根据SQL查询数据]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 30, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*
@param
sql
* SQL
*
@param
beginIndex
* 查询起始位置
*
@param
pageSize
* 每页长度
*
@return
*/
public
List
<?>
findBySql(
final
String sql,
final
int
beginIndex,
final
int
pageSize)
{
List
<?>
entityLst
=
null
;
try
{
Session session
=
HibernateSessionFactory.getSession();
Query query
=
session.createSQLQuery(sql);
if
(beginIndex
!=
0
)
{
query.setFirstResult(beginIndex);
}
if
(pageSize
!=
0
)
{
query.setMaxResults(pageSize);
}
entityLst
=
query.list();
}
catch
(RuntimeException re)
{
throw
re;
}
return
entityLst;
}
/** */
/**
*
* <p>
* Description:[根据HQL统计合符条件的数目]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*
@param
hql
*
@return
*/
public
int
count(
final
String hql)
{
int
count
=
0
;
try
{
Session session
=
HibernateSessionFactory.getSession();
Query query
=
session.createQuery(hql);
count
=
((Integer) query.uniqueResult()).intValue();
}
catch
(RuntimeException re)
{
throw
re;
}
return
count;
}
/** */
/**
*
* <p>
* Description:[根据原生SQL统计合符条件的数目]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*
@param
sql
*
@return
*/
public
int
countBySql(
final
String sql)
{
int
count
=
0
;
try
{
Session session
=
HibernateSessionFactory.getSession();
Query query
=
session.createSQLQuery(sql);
count
=
((BigDecimal) query.uniqueResult()).intValue();
}
catch
(RuntimeException re)
{
throw
re;
}
return
count;
}
/** */
/**
*
* <p>
* Description:[执行原生SQL,返回更改的条数]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*
@param
sql
*
@return
*/
public
int
executeSQL(
final
String sql)
{
int
updateCount
=
0
;
try
{
Session session
=
HibernateSessionFactory.getSession();
Query query
=
session.createSQLQuery(sql);
updateCount
=
query.executeUpdate();
}
catch
(RuntimeException re)
{
throw
re;
}
return
updateCount;
}
/** */
/**
*
* <p>
* Description:[如果不是claz的实例,则抛出异常]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*
@param
entity
*/
private
void
isInstance(Object entity)
{
if
(
!
this
.claz.isInstance(entity))
{
/** */
/**
如果所传的对象不是claz的实例,则抛出异常由上一级进行处理
*/
StringBuffer exceptionInfo
=
new
StringBuffer(
512
);
exceptionInfo.append(
"
entity is not instance of
"
);
exceptionInfo.append(
this
.claz.getName());
exceptionInfo.trimToSize();
throw
new
RuntimeException(exceptionInfo.toString());
}
}
/** */
/**
*
* <p>
* Description:[本方法用于得到claz的名字]
* </p>
* <p>
* Created by [Huyvanpull] [Jun 26, 2009]
* </p>
* <p>
* Midified by [修改人] [修改时间]
* </p>
*
*
@return
*/
private
String getEntityClassName()
{
String name
=
this
.claz.getName();
/** */
/**
得到类名
*/
return
name.substring(name.lastIndexOf(
"
.
"
)
+
1
, name.length());
}
}
DAO继承该类,几乎不用写代码了.
posted on 2009-06-29 09:52
HUIKK
阅读(592)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
Powered by:
BlogJava
Copyright © HUIKK