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的更多相关文章

  1. Java基础学习总结(70)——开发Java项目常用的工具汇总

    要想全面了解java开发工具,我们首先需要先了解一下java程序的开发过程,通过这个过程我们能够了解到java开发都需要用到那些工具. 首先我们先了解完整项目开发过程,如图所示: 从上图中我们能看到一 ...

  2. java项目常用架构

    三层架构 : 界面层/表现层 UI 业务逻辑层 BLL 针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理. 数据访问层 DAL 访问数据库 mvc : 而 MVC 是在三层架构的基 ...

  3. JAVA项目常用异常处理情况

    Java异常处理 网络整理 这里是异常的说明: 算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastExce ...

  4. Java项目常用的统一返回跟统一异常处理

    先创建一个crud的项目. controller调用service调用mapper 以下以简单代码代替 controller @GetMapping("/getUserById") ...

  5. maven3常用命令、java项目搭建、web项目搭建详细图解

    http://blog.csdn.net/edward0830ly/article/details/8748986 ------------------------------maven3常用命令-- ...

  6. Java 最常用类(前100名)来自一万个开源项目

    大部分的 Java 软件开发都会使用到各种不同的库.近日我们从一万个开源的 Java 项目中进行分析,从中提取出最常用的 Java 类,这些类有来自于 Java 的标准库,也有第三方库.每个类在同一个 ...

  7. JAVA项目中常用的异常处理情况总结

    JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...

  8. maven3常用命令、java项目搭建、web项目搭建

    ------------------------------maven3常用命令--------------------------- 1.常用命令 1)创建一个Project mvn archety ...

  9. 转 maven3常用命令、java项目搭建、web项目搭建详细图解

    转自地址:http://blog.csdn.net/edward0830ly/article/details/8748986 ------------------------------maven3常 ...

随机推荐

  1. man page分類與說明

    轉載自http://itzone.hk/article/article.php?aid=200407152225014657 (如有侵權,請留言或來信告知) 前言 Man page是每位程式設計員及U ...

  2. 使用C语言在windows下一口气打开一批网页

    作者:郝峰波 mail : fengbohello@qq.com 本博客地址:http://www.cnblogs.com/fengbohello/p/4374450.html 1.核心函数说明 核心 ...

  3. (转载)zeromq使用注意点滴

    zeromq使用注意点滴 1.关于介绍zeromq的就不说了,可以自己去看官方guide很详细 2.主要说下在使用过程中需要注意的地方 1)使用如果使用c++的接口的时候,在你自己的类中或者apach ...

  4. 汇编基础知识之二debug的使用

    DEBUG的使用 (要在win32位习题下进行,win7 64位需要安装DosBox和debug这2个软件): 1:win64位下debug的使用教程: 下载debug.exe,这里我把debug放在 ...

  5. JAVA6开发WebService (三)——几个概念

    转载自http://wuhongyu.iteye.com/blog/808922 要了解WebService,光能写代码不行啊,这说说WebService最基本的概念. 首先WebService要知道 ...

  6. javascript中判断对象类型

    <script type="text/javascript"> //判别一个对象属性在不在某个对象中 //in 是用于查找某个属性是否存在于对象中,它会把对象 //里面 ...

  7. php课程---建立一个简单的下拉列表框

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. Kinect 骨骼追踪对象选择

    默认情况下,骨骼追踪引擎会对视野内的所有活动的游戏者进行追踪.但只会选择两个可能的游戏者产生骨骼数据,大多数情况下,这个选择过程不确定.如果要自己选择追踪对象,需要使用AppChoosesSkelet ...

  9. crucible VS gerrit

    crucible优缺点:1.其支持各种版本控制系统,如CVS,SVN,GIT2.代码审核方面其主要支持Post commit模式,即开发者在代码提交到master后进行review3.其虽然也支持Pr ...

  10. 20145209&20145309信息安全系统设计基础实验报告 (5)

    班级:1452 1453 姓名:20145309李昊 20415209刘一阳 20145220韩旭飞 实验日期:2016.12.1 时间:10:10-12:30 实验序号:5 实验目的: 掌握在 AR ...