java项目常用 BaseDao BaseService
java项目常用 BaseDao BaseService
IBaseDao

1 package com.glht.sim.dao;
2
3 import java.util.List;
4
5
6 public interface IBaseDao<T> {
7 T get(long id);
8 void create(T t);
9 void delete(T t);
10 void update(T t);
11 int getTotalCount();
12 List<T>getPage(int startIndex,int count);
13 List<T> getAll();
14 }

BasoDao

1 package com.glht.sim.dao.impl;
2
3 import java.lang.reflect.ParameterizedType;
4 import java.sql.SQLException;
5 import java.util.List;
6
7 import org.hibernate.HibernateException;
8 import org.hibernate.Session;
9 import org.springframework.orm.hibernate3.HibernateCallback;
10 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
11
12 import com.glht.sim.dao.IBaseDao;
13
14 public abstract class BaseDao<T> extends HibernateDaoSupport implements IBaseDao<T> {
15 protected Class<T> entityClass;
16 protected String className;
17 public BaseDao(){
18 entityClass=(Class<T>)((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
19 className=entityClass.getName();
20 }
21 public T get(long id){
22 return (T)this.getHibernateTemplate().get(entityClass, id);
23 }
24 public void create(T t){
25 this.getHibernateTemplate().save(t);
26 }
27 public void delete(T t){
28 this.getHibernateTemplate().delete(t);
29 }
30 public void update(T t){
31 this.getHibernateTemplate().update(t);
32 }
33
34 public int getTotalCount(){
35
36 Object obj=this.getHibernateTemplate().execute(new HibernateCallback(){
37 public Object doInHibernate(Session session)
38 throws HibernateException, SQLException{
39
40 return session.createQuery("select count(id) from "+className).uniqueResult();
41 }
42 });
43 return (int)((Long)obj).longValue();
44 }
45 public List<T>getPage(int startIndex,int count) {
46
47 return (List<T>)this.getHibernateTemplate().executeFind(
48 new PageHibernateCallback(
49 "from "+className+" as c order by c.id desc",startIndex,count));
50 }
51
52 public List<T> getAll(){
53 return (List<T>)this.getHibernateTemplate().find("from "+className+" as c order by c.id desc");
54 }
55 }

IBaseService

1 package com.glht.sim.service;
2
3 import java.util.List;
4
5
6 public interface IBaseService<T> {
7 T get(long id);
8 void create(T obj);
9
10 void delete(T obj);
11 void update(T obj);
12 int getTotalCount();
13 List<T> getPage(int startIndex,int count);
14 List<T> getAll();
15 }

BaseService

1 package com.glht.sim.service.impl;
2
3 import java.util.List;
4
5 import com.glht.sim.dao.IBaseDao;
6 import com.glht.sim.service.IBaseService;
7
8 public abstract class BaseService<T> implements IBaseService<T> {
9 protected IBaseDao<T> dao;
10
11 public T get(long id){
12 return dao.get(id);
13 }
14
15 public void create(T obj){
16 dao.create(obj);
17 }
18
19 public void delete(T obj){
20 dao.delete(obj);
21 }
22 public void update(T obj){
23 dao.update(obj);
24 }
25
26 public int getTotalCount(){
27 return dao.getTotalCount();
28 }
29
30 public List<T> getPage(int startIndex,int count){
31 return dao.getPage(startIndex,count);
32 }
33
34 public List<T> getAll(){
35 return dao.getAll();
36 }
37
38 public void setDao(IBaseDao<T> dao) {
39 this.dao = dao;
40 }
41
42 }

java项目常用 BaseDao BaseService的更多相关文章
- Java基础学习总结(70)——开发Java项目常用的工具汇总
要想全面了解java开发工具,我们首先需要先了解一下java程序的开发过程,通过这个过程我们能够了解到java开发都需要用到那些工具. 首先我们先了解完整项目开发过程,如图所示: 从上图中我们能看到一 ...
- java项目常用架构
三层架构 : 界面层/表现层 UI 业务逻辑层 BLL 针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理. 数据访问层 DAL 访问数据库 mvc : 而 MVC 是在三层架构的基 ...
- JAVA项目常用异常处理情况
Java异常处理 网络整理 这里是异常的说明: 算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastExce ...
- Java项目常用的统一返回跟统一异常处理
先创建一个crud的项目. controller调用service调用mapper 以下以简单代码代替 controller @GetMapping("/getUserById") ...
- maven3常用命令、java项目搭建、web项目搭建详细图解
http://blog.csdn.net/edward0830ly/article/details/8748986 ------------------------------maven3常用命令-- ...
- Java 最常用类(前100名)来自一万个开源项目
大部分的 Java 软件开发都会使用到各种不同的库.近日我们从一万个开源的 Java 项目中进行分析,从中提取出最常用的 Java 类,这些类有来自于 Java 的标准库,也有第三方库.每个类在同一个 ...
- JAVA项目中常用的异常处理情况总结
JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...
- maven3常用命令、java项目搭建、web项目搭建
------------------------------maven3常用命令--------------------------- 1.常用命令 1)创建一个Project mvn archety ...
- 转 maven3常用命令、java项目搭建、web项目搭建详细图解
转自地址:http://blog.csdn.net/edward0830ly/article/details/8748986 ------------------------------maven3常 ...
随机推荐
- VS2010与水晶报表V13的打包集成小结
感谢孟子E章提供的技术咨询. 系统配置: Windows 7 + VS2010 , WinForm + DotNet4 + 水晶报表 这里说的打包集成,指的用VS2010的制作的安装包,在安装的时候可 ...
- Spring MVC过滤器-字符集过滤器(CharacterEncodingFilter)
spring的字符集过滤通过用于处理项目中的乱码问题,该过滤器位于org.springframework.web.filter包中,指向类CharacterEncodingFilter,Charact ...
- CSS的class、id、css文件名的常用命名规则
CSS的class.id.css文件名的常用命名规则 (一)常用的CSS命名规则 头:header 内容:content/container 尾:footer ...
- createElement,createTextNode,appendChild
<html> <head> <meta charset="UTF-8"> <title></title> <scr ...
- app设计需注意的
手机上同步photoshop设计稿: ps play应用 设计: 资源: 1.音乐上传问题 音乐控制在2M以内,推荐使用[格式工厂]进行压缩. 2.视频上传问题 为了保证在线的播放效果,上传的视频大小 ...
- CSS3初学篇章_3(属性选择符/字体样式/元素样式)
属性选择符 选择符 说明 E[att] 选择具有att属性的E元素. E[att="val"] 选择具有att属性且属性值等于val的E元素. E[att~=&quo ...
- 理解Oracle TM和TX锁
在Oracle中有很多锁,通过v$lock_type视图可以查看Oracle中所有类型的锁,在本篇文章中我们熟悉一下TM和TX锁的类型 SQL> select * from v$lock_typ ...
- linux卸载mysql,apache,php
卸载Mysql 1.查找以前是否装有mysql 命令:rpm -qa|grep -i mysql 可以看到mysql的包: mysql-3.23.58-9php-mysql-4.3.4-11mod_a ...
- BizTalk 开发系列(四十二) 为BizTalk应用程序打包不同的环境Binding
我们在使用微软或者其他公司提供的BizTalk应用程序MSI包的时候经常会有一个目标环境的选择选项.该选项可以在不同的环境下使用不同的绑定(BizTalk应用程序配置)感觉很高级. 其实这个非常的简单 ...
- js判断字符是否包含字母汉字
<script type="text/javascript"> function check(str) { if (escape(str).indexOf(" ...