- 浏览: 1993531 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (509)
- JavaEE (122)
- Oracle数据库 (29)
- JavaScript (37)
- SAP (5)
- MySql数据库 (7)
- JavaSE (4)
- Ajax (1)
- jQuery (13)
- SSH框架 (36)
- Web Service (10)
- JSF框架 (2)
- JBPM (0)
- ireport报表 (2)
- ibatis (5)
- Hibernate (31)
- JSP (11)
- Tomcat 服务器 (20)
- Other (19)
- JavaWeb (4)
- Maven (11)
- OSWorkFlow (10)
- HTML (13)
- Exception汇总 (7)
- SVN (2)
- 笑话 (1)
- JSTL (1)
- WebSphere Message Broker (13)
- ANT命令 (3)
- Liunx (12)
- Struts2 (26)
- Eclipse (6)
- DOS (3)
- Flex (11)
- WebSphere (1)
- 开发常用工具 (3)
- Junit (2)
- EJB (4)
- Struts1.2 (2)
- Jboss (1)
- Android (2)
- Java框架源码解析 (1)
- Spring (4)
- MyBatis (6)
- SpringMVC (4)
- Jetty (2)
- 数据库表设计 (1)
- SSO (4)
最新评论
-
贝塔ZQ:
也可以试试PageOffice插件,觉得更简单点
Jxl操作Excel设置背景、字体颜色、对齐方式、列的宽度 -
jia1208:
...
Could not publish server configuration for Tomcat v6.0 Server at localhost. -
u011274527:
赞
java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 错误 -
旭旭小牛啦:
怎么没哟了,继续赛
jQuery 选择器 -
wzw3919:
100行会报空指针
Java 解压缩zip文件
BaseDao 常用的方法,封装如下:
package pack.hibernate.basedao; import java.io.Serializable; import java.util.List; import org.hibernate.Hibernate; import org.hibernate.Query; import org.hibernate.Session; import pack.hibernate.sessionfactory.HibernateSessionFactory; /** * 基類; * @author zhouhaitao */ public class BaseDao { /** * 添加对象的方法; * @param obj */ public void add(Object obj){ HibernateSessionFactory.getSession().save(obj); } /** * 按主键查找; * */ public Object selectById(Class c,Serializable s){ Object obj=HibernateSessionFactory.getSession().load(c,s); return obj; } /** * 根据对象修改; * */ public void updateObj(Object obj){ HibernateSessionFactory.getSession().update(obj); } /** * 根据对象删除; * @param obj */ public void delete(Object obj){ HibernateSessionFactory.getSession().delete(obj); } /** * 根据主键删除; * @param c * @param s */ public void delete(Class c,Serializable s){ delete(selectById(c, s)); } /** * 查找全部; * @return */ public List selectAll(Class c){ Session session=HibernateSessionFactory.getSession(); List list=session.createQuery("From "+c.getName()).list(); return list; } /** * 分页查找; * @param hql * @param page * @param size * @param objects * @return */ public List pageQuery(String hql,Integer page,Integer size,Object...objects){ Session session=HibernateSessionFactory.getSession(); Query query=session.createQuery(hql); if(objects!=null){ for(int i=0;i<objects.length;i++){ query.setParameter(i,objects[i]); } } if(page!=null && size!=null){ //分页操作; query.setFirstResult((page-1)*size).setMaxResults(size); } List list=query.list(); return list; } /** * 按条件删除,修改; * @return */ public boolean executeUpdate(String hql,Object...objects){ Session session=HibernateSessionFactory.getSession(); Query query=session.createQuery(hql); if(objects!=null){ for(int i=0;i<objects.length;i++){ query.setParameter(i, objects[i]); } } int rows=query.executeUpdate(); return rows>0; } }
UserDao接口代码:
package pack.hibernate.idao; import java.util.List; import pack.hibernate.pojo.Users; /** * UsersDao接口; * @author zhouhaitao * */ public interface IUsersDao { /** * 对象的添加; * @param obj */ public abstract void add(Users obj); /** * 根据主键查找; * @param id * @return */ public abstract Object selectById(Long id); /** * 查询所有; * @return */ public abstract List selectAll(); /** * 根据主键删除; * @param id */ public abstract void delete(Long id); /** * 根据对象删除; * @param user */ public abstract void delete(Users user); /** * 根据对象更新; * @param user */ public abstract void update(Users user); /** * 分页查询; * @param hql * @param page * @param size * @param objects * @return */ public abstract List pageQuery(String hql, Integer page, Integer size, Object... objects); /** * 删除,修改; * @param hql * @param objects * @return */ public abstract boolean executeUpdate(String hql, Object... objects); }
UserDaoImpl实现UserDao接口,并且继承BaseDao,封装代码如下:
package pack.hibernate.daoimpl; import java.util.List; import pack.hibernate.basedao.BaseDao; import pack.hibernate.idao.IUsersDao; import pack.hibernate.pojo.Users; /** * UserDaoImpl的实现类; * @author zhouhaitao */ public class UserDaoImpl extends BaseDao implements IUsersDao{ /** * 添加对象; */ public void add(Users obj){ super.add(obj); } /** * 根据主键查找; */ public Object selectById(Long id){ Object obj=super.selectById(Users.class, id); return obj; } /** * 查询所有; */ public List selectAll(){ List list=super.selectAll(Users.class); return list; } /** * 根据主键删除; */ public void delete(Long id){ super.delete(Users.class, id); } /** * 删除对象; */ public void delete(Users user){ super.delete(user); } /** * 更新对象; */ public void update(Users user){ super.updateObj(user); } /** * 分页查询; */ public List pageQuery(String hql,Integer page,Integer size,Object...objects){ List list=super.pageQuery(hql, page, size, objects); return list; } /** *修改,删除操作; */ public boolean executeUpdate(String hql,Object...objects){ return super.executeUpdate(hql, objects); } }
一个简单的DAO就封装好了, 这个没有加入事务处理..则需要另外在创建一个代理类,去负责专门的事务处理工作。
- Dao层介绍.rar (55.8 KB)
- 下载次数: 94
评论
3 楼
xx599306170
2015-07-30
2 楼
i5suoi
2013-04-22
有没有个更新的版本,更稳定点的
1 楼
xj1990129
2012-12-24
我们在service层为了解耦 写的是userdao接口类型,虽然spring实际注入的是userdaoImpl,但是在程序没运行之前是不知道,那么在service的接口类型的userdao的 引用 怎么能用到basedao中的方法啊?
发表评论
-
解决Java服务器端插入数据到Mysql中乱码问题--简单几步轻松解决乱码问题
2015-11-13 17:52 2422当写入数据到mysql数据库中发生乱码时.请检查以下几个地 ... -
设计模式之-代理模式-Proxy
2015-04-28 21:24 879使用代理模式之前需要知道代理模式能做什么? 能有哪些好处以及 ... -
构建高并发、服务化、低耦合企业级脚骨:springmvc+mybatis+restfull+webservice+bootstrap html5
2015-04-14 01:17 85SpringMVC + Mybatis + SpringS ... -
教您搭建大型互联网企业架构:springmvc+mybatis+restful+webservice+quartz+bootstrap
2015-04-13 21:54 99SpringMVC + Mybatis + SpringS ... -
大型互联网服务集成平台:springmvc+mybatis+restful+webservice+quartz+bootstrap html5
2015-04-13 21:49 81SpringMVC + Mybatis + SpringSe ... -
大型互联网服务集成平台:springmvc+mybatis+restfull+JMS+webservice+bootstrap
2015-04-12 23:36 22SpringMVC + Mybatis + SpringS ... -
大型互联网服务集成平台:springmvc+mybatis+restfull+JMS+webservice+bootstrap
2015-04-12 23:33 83SpringMVC + Mybatis + SpringS ... -
Maven构建大型互联网架构springmvc+mybatis+Restfull+Webservice+Bootstrap
2015-04-12 23:28 71SpringMVC + Mybatis + SpringS ... -
maven构建高大上开源架构:springmvc+mybatis+rest+bootstrap html5
2015-04-12 23:25 23SpringMVC + Mybatis + SpringS ... -
手机App后台架构:Springmvc+SpringSecurity+mybatis+Rest+Quartz+Bootstrap Html5( Maven构建)
2015-04-09 01:39 76APP后台架构Maven构建,模拟大型互联网架构,支持高并发 ... -
maven构建springmvc+mybatis+rest+webservice+bootstrap html5(cms开源项目)
2015-04-09 01:21 85SpringMVC + Mybatis + SpringS ... -
Java正则表达式
2014-11-26 21:03 1227Java正则表达式: package pack.ja ... -
Cannot convert value of type [org.springframework.cache.ehcache.EhCacheCache
2014-11-10 20:03 6266错误信息: [org.springframework.be ... -
Collections工具类中的frequency方法统计单词出现的次数
2013-11-05 21:30 2827最近发现了一个Collections中有一个很好用的方法: ... -
Java 压缩Excel文件生成.zip文件
2013-05-08 22:22 7955首先创建文件目录,然后生成Excel文件到创建的目录下, ... -
Java 解压缩zip文件
2013-05-08 13:14 8363不借助于其他的第三方 ... -
Jxl操作Excel设置背景、字体颜色、对齐方式、列的宽度
2013-04-06 22:26 57809最近项目中需要用到导出Excel文件,以下是我写了一个通过j ... -
java获取字节的长度.
2012-05-17 22:00 6756我们经常要获取中文,数字,或者英文字符所占字节的长度,下面就列 ... -
StringBuffer-reverse()字符反转功能
2012-05-17 21:42 7100在书上看到一个这样的例子, 采用最简便的方式把一串字符串反转过 ... -
java 打开IE
2012-05-23 22:14 1309Runtime.getRuntime().exec(" ...
相关推荐
使用baseDao封装基本的增删改查的方法,包括分页查询等功能
3. **BaseDao封装**:BaseDao是一般用于数据访问层的基类,它包含了通用的CRUD操作。在这个项目中,BaseDao可能已经定义了如`save()`, `update()`, `delete()`, `findById()`, `findAll()`等方法,以供其他特定的DAO...
Mybatis通用DAO设计封装主要涉及的是在Java开发中如何高效地使用Mybatis框架进行数据库操作。Mybatis是一款轻量级的持久层框架,它避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。通过提供自定义SQL、存储...
springMVC+Mybatis封装整合:整合搭建已经完成不再述,本框架特色主要针对Mybatis框架BaseDao,BaseService,BaseServiceImpl封装,有点贵,本人也是循序见进到这一步,花了将近一个月时间,之前发布版本可以不下载...
本篇文章将介绍一个基于JDBC封装的`BaseDao`实例,该实例提供了一个通用的DAO(Data Access Object)模板,可以应用于多种实体类的操作。 首先,`BaseDao`泛型类被定义为`<T>`,表示它可以处理任何类型的对象。类中...
`BaseDAO` 的封装则是一种常见的设计模式,用于简化数据访问对象(DAO)的实现,使得业务代码更加简洁、可维护。 `dbutils` 主要包含以下几个核心概念和功能: 1. **QueryRunner**: QueryRunner类是dbutils的主要...
基于hibernate封装的BaseDao,有完整的增删改查,分页,执行hql sql 方法 约 20个方法,详情地址 https://blog.csdn.net/qq_41861261/article/details/85595872
BaseDao是一种设计模式,它通常被用来作为数据库访问对象(DAO)的基础,用于封装数据库的基本CRUD(创建、读取、更新、删除)操作。这种模式可以提高代码复用性,降低业务逻辑与数据访问层的耦合度。 首先,我们来...
本篇将深入探讨如何利用注解和反射机制来封装一个支持一对多查询的 `BaseDao`。 首先,我们需要了解注解(Annotation)。注解是Java提供的一种元数据,它为编译器和工具提供了信息,可以用于代码验证、代码生成、...
//获得当前类型的带有泛型类型的父类 ParameterizedType ptClass = (ParameterizedType) this.getClass().getGenericSuperclass(); //获得运行期的泛型类型 clazz = (Class) ptClass.getActualTypeArguments()[0]...
● 采用Mybatis和二次BaseDao封装完成持久层基本crud操作,提高系统开发效率; ● 通过AOP、自定义注解和Freemark的FTL语言实现前后权限的拦截; ● 使用拦截器过滤未登录用户请求 ; ● 借助Quartz 时钟调度框架...
BaseDAO是Java中一种常用的数据访问对象(DAO),它提供了统一的数据访问接口,封装了数据访问的基本操作。BaseDAO通常是通过继承HibernateDaoSupport类实现的。 BaseDAO的主要功能包括: 1. 加载指定ID的持久化...
BaseDAO是一种通用的设计模式,它封装了Hibernate框架的基本操作,使得业务逻辑层可以更加专注于业务处理,而不需要关心底层的数据访问细节。本压缩包提供的"baseDAO"文件,包含了一个详细注释的BaseDAO实现,旨在...
`BaseDAO`是许多项目中常见的一种设计模式,它代表了数据访问对象(Data Access Object)的基础类,用于封装对数据库的通用操作。现在我们来深入探讨`hibernate`中的`BaseDAO`及其相关知识点。 首先,DAO设计模式是...
总之,`BaseDao`接口及其实现是Java中数据访问层设计的一个常见模式,用于封装数据库操作,提供通用的方法供业务逻辑调用。这样的设计有助于减少代码重复,提高代码质量,同时也便于更换不同的数据库引擎。
简单的JDBC封装类
除了基础的CRUD方法,BaseDao还可能封装了分页查询功能,这是因为分页在企业应用中非常常见。例如,可以提供以下方法: 1. `Page<T> queryByPage(int pageNum, int pageSize, Map, Object> params)`: 这个方法用于...
本文将详细介绍如何在Android中进行数据库ORM的封装,并通过一个名为`DataBaseDemo`的示例项目来展示具体实现。 ### 1. Android的SQLite数据库 SQLite是Android系统内置的关系型数据库,支持标准SQL语法,适用于轻...
MyBatis BaseDAO 是一种基于 MyBatis 框架的工具类库,它旨在简化数据库操作,通过封装常见的CRUD(Create、Read、Update、Delete)方法,为开发者提供便利,减少重复代码,提高开发效率。在Java Web 开发中,...