---泛型:
? 表示不确定的java类型。
T 表示java类型。
K V 分别代表java键值中的Key Value。
E 代表Element。
PK: primary key
泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。
该代码不使用泛型:
List li = new ArrayList();
li.put(new Integer(3));
Integer i = (Integer) li.get(0);
该代码使用泛型:
List<Integer> li = new ArrayList<Integer>();
li.put(new Integer(3));
Integer i = li.get(0);
---<T, PK extends Serializable>
http://blog.csdn.net/yao_qinwei/article/details/8246853
---泛型dao的实体注入setEntity()
/**
* public class LogDaoImpl extends BaseDaoImpl<SysLog>
* -->泛型Dao中的entity就是通过extends BaseDaoImpl<T>这里的"T",父类的构造注入的!!!
*/
private Class<T> clazz;
----SpringSide 泛型Dao:
https://code.google.com/p/permission/source/browse/trunk/+permission/BaseProject/src/com/mawujun/repository/SimpleHibernateDao.java?spec=svn708&r=708
https://code.google.com/p/springside/source/browse/springside4/trunk/modules/core/src/main/java/org/springside/modules/orm/hibernate/HibernateDao.java?r=1645
http://blog.csdn.net/fbysss/article/details/3980631
http://blog.csdn.net/jie8991/article/details/5373849
===DAO和Service的区别:
dao层是直接与数据库打交道的
service层是用来处理业务逻辑的,也就是需要调用dao层
两个层其实可以合二为一,但是为了分层方便,还是分开写
dao执行的一般都是原子的操作,只是获得数据库的值
service就不一样了,他获得相关的数据库的值计算啊,总之处理相关的业务