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. OSG入门即osgEarth建立一个地球的详细步骤

    OSG入门即osgEarth建立一个地球的详细步骤 转:http://blog.csdn.net/xiaol_deng/article/details/9246291 最近在学习有关osg的知识,刚开 ...

  2. 使用Uboot启动内核并挂载NFS根文件系统

    配置编译好内核之后,将生成的内核文件uImage拷贝到/tftpboot/下,通过tftp服务器将内核下载到开发板,使用命令:tftp 31000000 uImage.下载完成之后配置bootargs ...

  3. poi excel导出,下载

    poi.jar包 public void downExcel(HttpServletResponse response,Page<ShopApply> page) throws Excep ...

  4. 用脚本来简化iOS美术同学的工作

    用脚本来简化iOS美术同学的工作 问题 我们知道,在 iOS 开发中,为了使我们的 app 能够同时支持 iPhone 的 Retina 屏幕和普通屏幕,美术同学需要对 UI 设计稿中的每个元素进行 ...

  5. [LintCode] Surrounded Regions 包围区域

    Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'. A region is captured ...

  6. winform 打印控件

    (1)PageSetupDialog1    打印设置窗口  (2)PrintDocument     向打印机输送的对象 事件:PrintPage   对于打印的每一页都执行一次 (3)PrintP ...

  7. c# select标签绑定枚举,并以Description做Text显示

    今天在做项目时遇到一个问题: 开发中有些字段是枚举类型如 Dept 企业表中可能有个字段 Property 性质 0:事业单位,1:私企,2:外企,但有时我们不会单独为性质这个字段定义一张表, 而是在 ...

  8. android之简单图形绘制

    首先编写MyView类 代码如下: package com.example.myhello; import android.content.Context; import android.graphi ...

  9. 表单的enctype property

    enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码. 默认地,表单数据会编码为 "application/x-www-form-urlencoded".就是说,在 ...

  10. EmguCV 阈值化

    一.public static double cvThreshold( IntPtr src, IntPtr dst, double threshold, double maxValue, //Max ...