- 浏览: 326362 次
文章分类
- 全部博客 (116)
- Oracle (29)
- MySQL (2)
- Java (20)
- .NET (2)
- Javascript (4)
- Spring (6)
- Struts (6)
- Hibernate (16)
- JSP (6)
- Tomcat (1)
- Quartz (2)
- RCS (1)
- Translate (12)
- PL/SQL (5)
- Sqlplus (1)
- System (6)
- Linux (11)
- Ubuntu (9)
- Windows (10)
- Mac (2)
- Tools (8)
- Mercurial (1)
- Google Code (1)
- Subversion (1)
- Debian (2)
- Freemarker (6)
- Web (2)
- PHP (1)
- Nginx (1)
最新评论
-
sunday1207:
private Class getParameterizedT ...
java 中 BaseDao 在Hibernate中的用法 -
SkimSkim:
你这里的解压是把文件夹11下面的所有文件都放在ins这个文件夹 ...
ubuntu 在终端使用 sqlplus 连接远程数据库 -
as619864232:
漫步邃思 写道其实常用的就那么几个命令,大部分都用不到的是啊, ...
windows cmd 命令 -
漫步邃思:
其实常用的就那么几个命令,大部分都用不到的
windows cmd 命令
import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.List; import org.hibernate.Session; import org.hibernate.SessionFactory; public abstract class BaseDao<T> { private SessionFactory sessionFactory; private Class clazz; public BaseDao() { super(); clazz = getParameterizedTypeByParent(super.getClass()); } private Class getParameterizedTypeByParent(Class clazz) { Type tp = clazz.getGenericSuperclass(); if (tp instanceof ParameterizedType) { return (Class) ((ParameterizedType) tp).getActualTypeArguments()[0]; } else { throw new ClassCastException("this is not ParameterizedType type"); } } public SessionFactory getSessionFactory() { return sessionFactory; } public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public List findAll() { List results = getSession().createCriteria(clazz).list(); return results; } public T findById(Integer id) { T result = (T) getSession().get(clazz, id); return result; } public void update(T obj) { getSession().save(obj); } private Session getSession() { return sessionFactory.getCurrentSession(); } }
评论
1 楼
sunday1207
2015-05-24
private Class getParameterizedTypeByParent(Class clazz) {
Type tp = clazz.getGenericSuperclass();
if (tp instanceof ParameterizedType) {
return (Class) ((ParameterizedType) tp).getActualTypeArguments()[0];
} else {
---直接在车里报异常了如何处理
throw new ClassCastException("this is not ParameterizedType type");
}
}
Type tp = clazz.getGenericSuperclass();
if (tp instanceof ParameterizedType) {
return (Class) ((ParameterizedType) tp).getActualTypeArguments()[0];
} else {
---直接在车里报异常了如何处理
throw new ClassCastException("this is not ParameterizedType type");
}
}
发表评论
-
JDK 对应数字版本号
2013-08-01 17:22 1401J2SE 7 = 51 (0x33 hex),J2SE 6.0 ... -
Hibernate 中拼接 HQL 乱码
2012-10-19 20:06 1514hql=" ... like '%中文%'" ... -
error 和 exception 之间的区别
2012-10-13 09:21 1102很多程序员不清楚error和exception之间的区别,这区 ... -
Hibernate 缓存机制
2012-10-09 23:40 1087缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存 ... -
使用 Java 遍历二叉树
2012-10-03 20:09 1332在计算机科学中,二叉树是每个节点最多有两个子树的树结构 ... -
Spring 中事务的传播性
2012-09-17 20:46 974在 Spring 中一共定义了 ... -
J2EE 全面简介
2012-07-19 13:04 915刘湛 (jeru@163.net), 武汉 ... -
OpenSessionInViewFilter 的一些了解
2012-07-16 20:55 1032Spring 中的 OpenSessionInViewFil ... -
设计模式
2012-07-16 17:42 1047《设计模式》一书原先把设计模式分为创建型模式、结构型模式、行为 ... -
ServletContext 以及 ServletConfig 和 ServletContextListener 的一些理解
2012-07-15 00:12 1528当 Servlet 容器启动的时候,会读取 web.xml 中 ... -
Quartz 中的一些细节
2012-07-12 19:10 875JobDetail 中有一个 JobDataMap,而 Tri ... -
Hibernate 注册方言以及时间精度
2012-07-12 19:09 1278Oracle 10G 的 JDBC 驱动在 JAVA 中 ... -
Quartz Cron 表达式支持到七个域及实例
2012-07-12 19:07 1694名称 是否必须 允许值 特殊字符 秒 ... -
在 Linux 下安装 JDK 和设置 JAVA 环境变量
2012-07-08 16:16 1790I know lot of you starting o ... -
Spring 中自带的事务管理
2012-06-30 15:16 1173Spring 集成 hibernate 的事务管理,不用我们手 ... -
在 Spring 中自己管理 Hibernate 事务
2012-06-30 14:51 1119在spring中自己控制事物 ... -
hibernate 中 SQLFunctionTemplate 类的翻译
2012-05-13 13:34 1895org.hibernate.dialect.funct ... -
Hibernate 中 SQLFunction 类的翻译
2012-05-13 13:27 1229org.hibernate.dialect.funct ... -
Java Matcher 翻译
2012-05-11 19:09 1098java.util.regex Class Mat ... -
Java Pattern 翻译
2012-05-09 20:18 1147java.util.regex Class Pattern ...
相关推荐
在BaseDAO中,每个方法的输入参数、返回值以及可能抛出的异常都应该有清晰的解释。 5. **BaseDAO的优化** 除了基本操作,BaseDAO还可以进行一些优化,比如事务管理、缓存控制、批量操作等。例如,可以使用Spring的...
在Java开发领域,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是底层的数据访问。`BaseDAO`是许多项目中常见的一种设计模式,它代表了数据访问对象...
项目中实现了分页功能,可能通过在Hibernate查询中添加限制条件(如`setFirstResult()`和`setMaxResults()`)或者使用`Criteria` API的`setFirstResult()`和`setMaxResults()`来实现。这使得用户可以按需加载数据,...
在Java的持久化框架Hibernate中,BaseDAO(Base Data Access Object)是一种常见的设计模式,用于封装数据库操作,提供一套标准的方法来实现CRUD(Create、Read、Update、Delete)操作。这种模式使得业务层可以更加...
在`BaseDao`的实现中,这些方法会利用Hibernate的Session和Transaction接口来完成实际的数据库交互。`Session`是Hibernate的主要工作单元,它可以代表一次数据库连接或者一个单位的工作。`Transaction`则用于管理...
在Java编程语言中,BaseDao(基础数据访问对象)是一个常见的设计模式,它为数据库操作提供了一种统一的接口。BaseDao通常包含了CRUD(创建、读取、更新、删除)的基本方法,使得开发者可以方便地对数据库进行操作,...
在基于Spring和Hibernate的应用中,实现分页通常涉及到使用Hibernate的Criteria API或HQL来添加LIMIT和OFFSET子句,或者使用Spring Data JPA的Pageable接口。 总结起来,这个"ssh"压缩包中的示例代码展示了如何在...
泛型是Java SE 5.0引入的新特性,它允许在类、接口和方法中使用类型参数,从而实现更强大的类型检查和减少类型转换的冗余。 1. 泛型BaseDAO:`GenericBaseDao.java`和`GenericBaseDaoInter.java` 泛型BaseDAO的主要...
在Java开发中,BaseDao和BaseDaoImpl是常见的设计模式,它们主要用于数据库操作,尤其是在使用ORM框架如Hibernate时。这两个类通常作为数据访问对象(DAO)的基类,旨在简化和标准化对数据库的CRUD(创建、读取、...
"基于BaseDao的手动数据库操作"是一个常见的话题,尤其在Java开发中。BaseDao是一种设计模式,它通常被用来作为数据库访问对象(DAO)的基础,用于封装数据库的基本CRUD(创建、读取、更新、删除)操作。这种模式...
在Java开发中,BaseDao(基础数据访问对象)是一个常见的设计模式,用于提供数据库操作的通用接口或基类。这个模式的主要目标是提高代码的复用性和可维护性,通过抽象出基本的CRUD(创建、读取、更新、删除)操作,...
在企业级软件开发中,通用BaseDao方法集是提高代码复用性和开发效率的重要工具。BaseDao(Base Data Access Object)通常是一个基类,它包含了数据库操作的基本方法,供其他具体的DAO类继承使用。BaseDao的设计理念...
在IT行业中,SpringBoot是一个非常流行的Java开发框架,它简化了Spring应用的初始搭建以及开发过程,使得开发者能够快速地创建生产级别的、基于Spring框架的应用。"SpringBoot_BaseDao.zip"这个压缩包文件显然与...
在Java持久化框架Hibernate中,对象关系模型(Object-Relational Mapping,ORM)是将数据库中的数据映射到Java对象的技术。它使得开发者能够用面向对象的方式来操作数据库,简化了数据库编程的过程。以下是对...
在IT行业中,SSH(Spring、Struts、Hibernate)是一个经典的Java Web开发框架组合,而BaseDao是常用于数据访问层的一个基类设计。本话题主要围绕如何利用SSH框架结合BaseDao实现分页功能来展开。 首先,让我们了解...
- 在Hibernate中,可以通过`<set>`元素定义一对多的关系。 - 示例代码中: - `<set name="history">`表示`Students`实体类中有一个名为`history`的集合属性。 - `<one-to-many class="limq.hibernate.vo.History...
3. **模板方法**:在BaseDao中,可以定义模板方法,例如executeSql,子类在实现具体操作时调用这个模板方法,从而统一事务控制。 总结,Spring的声明式事务管理简化了事务处理,使得开发者可以专注于业务逻辑,而...
这些方法的实现可以使用模板方法设计模式,将一部分通用逻辑放在`BaseDao`中,而具体的SQL语句或者HQL(Hibernate Query Language)则由子类提供。 在实际项目中,`BaseDao`的实现往往需要结合事务管理。例如,当一...
在这个场景中,"BaseDao"通常是一个基类,它包含了通用的数据库操作方法,可以被各个特定的DAO(Data Access Object)继承,以实现业务逻辑中的数据访问。 1. **BaseDao**:BaseDao是DAO层的基类,它的设计目的是...
对于初学者来说,理解并掌握此类的实现原理和使用方法,有助于快速上手数据库编程。 ### JDBC基础知识 1. **JDBC接口与驱动管理**: JDBC是Java与数据库交互的标准API,通过`DriverManager`管理数据库驱动,`...