程序的总体结构是这样的:entity--dao-daoimpl--manager--managerimpl—action,
dao、daoimpl、manager、managerimpl又是分别继承basedao<T,PK>,baseimpl<T,PK>,basemanager<T,PK>,basemanagerimpl<T,PK>,都是用的泛型数据库中现3个表tab1、tab2和tab3,分别对应程序中的3个实体tab1、tab2和tab3
写了3个dao来处理上面定义的3个体,如下:
@Repository("tab1dao")
public class tab1daoimpl extends basedao<tab1,Stirng> implements tab1dao<tab1,String>
@Repository("tab2dao")
public class tab2daoimpl extends basedao<tab2,Stirng> implements tab2dao<tab2,String>
@Repository("tab3dao")
public class tab3daoimpl extends basedao<tab3,Stirng> implements tab3dao<tab3,String>因为tab1、tab2和tab3的表结构都一样,有没有办法将上面的3个类合并成一个类呢?
类似于像下面这样的定义:
@Repository("tabdao")
public class tabdaoimpl<T> extends basedao<T,Stirng> implements tabdao<T,String>
这样的定义肯定是错误的,不知道应该怎么实现,请高人指点啊!
dao、daoimpl、manager、managerimpl又是分别继承basedao<T,PK>,baseimpl<T,PK>,basemanager<T,PK>,basemanagerimpl<T,PK>,都是用的泛型数据库中现3个表tab1、tab2和tab3,分别对应程序中的3个实体tab1、tab2和tab3
写了3个dao来处理上面定义的3个体,如下:
@Repository("tab1dao")
public class tab1daoimpl extends basedao<tab1,Stirng> implements tab1dao<tab1,String>
@Repository("tab2dao")
public class tab2daoimpl extends basedao<tab2,Stirng> implements tab2dao<tab2,String>
@Repository("tab3dao")
public class tab3daoimpl extends basedao<tab3,Stirng> implements tab3dao<tab3,String>因为tab1、tab2和tab3的表结构都一样,有没有办法将上面的3个类合并成一个类呢?
类似于像下面这样的定义:
@Repository("tabdao")
public class tabdaoimpl<T> extends basedao<T,Stirng> implements tabdao<T,String>
这样的定义肯定是错误的,不知道应该怎么实现,请高人指点啊!
解决方案 »
- SSH框架在整合Struts2和spring有,项目运行控制台不报错,但页面出现404,这是什么情况啊
- spring mvc用jdbcTemplate报NullPointerException
- webservice如何入门
- DisplayTag Url too long in IE
- 如何保证在页面跳转时仍然保持在同一个Request过程中
- 真的需要精通J2SE???
- 调查 大公司都用什么J2EE 服务器呢??
- jacob word 转换成 xml 的问题
- 我发现一个很有趣的问题:在无态SESSION BEAN里定义成员变量一定要慎重!
- 求助,谁知道struts是什么技术啊,哪里有关于它的介绍
- Java Applet 的问题,帮帮我哈~~
- 整合 flex+spring+hibernate tomcat启动报错 急!!
public class tabdaoimpl<T> extends basedao<T,Stirng> implements tabdao<T,String>
再定义一个dao继承上面的类
@Repository("tab1dao")
public class tab1daoimpl extends tabdaoimpl <tab1>
但还是不行
public class tabdaoimpl<T> implements tabdao<T>;
public class tabManagerImpl<T> implements tabManager<T>;因为你说你的表结构都是一样的,所以基本不需要什么basedao了,除非你每个dao的实现是不一样,这个时候你可以加一个basedao;然后再用具体的dao去继承basedao
表结构一样与继承basedao没关系吧,basedao封装的是一引起基本的CRUD方法啊
public Object loadObj(Class className, int id);
baseDAOImpl:
public Object loadObject(Class className, int id) throws Exception {
return getHibernateTemplate().load(className, id);
}
你在dao层中可以用tab1DAO,tab2DAO,tab3DAO分别调用loadObject的方法就可以!也可以直接在service中通过注入baseDaoImpl的方式直接使用loadObject的方法共同使用这个方法!
不知道是不是你想要的!呵呵!
你忘记了一个东西~反射~
如果你没有用反射~你的抽象类等于没有什么大作用,basedao可以说没有什么用
本想给你写个例子~没时间了~明天上班~
有问题加QQ群14471754
to:leileizwj 你说的方法应该可以,但我的程序是没法修改basedao的.
to:aspects 能给点具体的代码示例吗?
to:longintstring 我在action中是会用到反射的.
to:bbsadsql 能根据我今天提供的程序,给出点建议吗?程序地址:
http://download.csdn.net/source/3211507
http://download.csdn.net/source/3211507 有空看看!
http://download.csdn.net/source/3211507