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. Mobile data

    1.Consume REST web services from app 2.De-serialize JSON into an in-memory object collection 3.Save ...

  2. [LintCode] Add and Search Word 添加和查找单词

    Design a data structure that supports the following two operations: addWord(word) and search(word) s ...

  3. [LintCode] House Robber III 打家劫舍之三

    The thief has found himself a new place for his thievery again. There is only one entrance to this a ...

  4. Point Grey FlyCapture 实例汇总

    Example Language Description AsyncTriggerEx C++ Demonstrates some of the basic asynchronous trigger ...

  5. PLSQL Developer注册码

    Product Code:4t46t6vydkvsxekkvf3fjnpzy5wbuhphqzserial Number:601769password:xs374ca

  6. 演示一个VPD进行数据访问控制的示例

    1.确认数据库版本 2.环境准备 创建一张顾客表(customer),其中包括了顾客姓名,年龄,姓名,地址,收入等, 我们需要使用LIVAN用户只能查看收入为2000元以下的顾客信息. 3.实验控制策 ...

  7. [基础常识]阿里云ecs从购买到环境搭建和建站!!(phpstudy一件包)

    首先如何购买ECS?发现有些人购买5G硬盘,我个人认为买硬盘应该购买20以上!这样以后好处理!   进入http://www.aliyun.com/product/ecs/?spm=5176.7189 ...

  8. Network | UDP checksum

    1. 校验和 ICMP,IP,UDP,TCP报头部分都有checksum(检验和)字段.IP 首部里的校验和只校验首部:ICMP.IGMP.TCP和UDP首部中的校验和校验首部和数据. UDP和TCP ...

  9. HDU 1828 Picture(线段树扫描线求周长)

    Picture Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  10. Java内存泄露及性能调优实例

    内存泄漏及解决方法 1)系统崩溃前的一些现象 每次垃圾回收的时间越来越长,由之前的10ms延长到50ms左右,FullGC的时间也有之前的0.5s延长到4.5s:FullGC的次数越来越多,最频繁时隔 ...