- 浏览: 147155 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
zhuxinquan61:
你好,我是一个初学者,不知道是不是有validation.xm ...
struts中的Validator-rules.xml配置文件详解 -
wukele:
中文文件名压缩后是乱码~
JAVA压缩文件或文件夹的代码 -
suncjh:
高强度文件夹加密大师
U盘、移动硬盘加密工具绿色版 -
sbpcx:
assdust110 写道jiasky 写道请问楼主的头像是不 ...
Hibernate查询详解 -
yeshuang:
里面的很多的东西
SSH2整合步骤
3.具体的DAO接口
view plaincopy to clipboardprint?
package abu.csdn.dao;
import abu.csdn.bean.User;
/**
*
* @author Abu
*
*/
public interface UserDao extends GenericDao<User, Long> {
/**
* <p>
* 根据用户名精确查找
* </p>
* @param uname : 用户名
* @return : 匹配的实体
*/
public User findByNameExact(String uname);
}
package abu.csdn.dao; import abu.csdn.bean.User; /** * * @author Abu * */ public interface UserDao extends GenericDao<User, Long> { /** * <p> * 根据用户名精确查找 * </p> * @param uname : 用户名 * @return : 匹配的实体 */ public User findByNameExact(String uname); }
4.具体DAO接口的实现
view plaincopy to clipboardprint?
package abu.csdn.dao.impl;
import java.util.List;
import abu.csdn.bean.User;
import abu.csdn.dao.UserDao;
/**
*
* @author Abu
*
*/
public class UserDaoImpl extends GenericDaoImpl<User, Long> implements UserDao {
public UserDaoImpl(Class<User> type) {
super(type);
}
@SuppressWarnings("unchecked")
public User findByNameExact(String uname) {
List<User> list = (List<User>) this.getHibernateTemplate().find(
"from User u where u.uname = ?", uname).get(0);
return (!list.isEmpty() && list.size() == 1) ? null : list.get(0);
}
}
package abu.csdn.dao.impl; import java.util.List; import abu.csdn.bean.User; import abu.csdn.dao.UserDao; /** * * @author Abu * */ public class UserDaoImpl extends GenericDaoImpl<User, Long> implements UserDao { public UserDaoImpl(Class<User> type) { super(type); } @SuppressWarnings("unchecked") public User findByNameExact(String uname) { List<User> list = (List<User>) this.getHibernateTemplate().find( "from User u where u.uname = ?", uname).get(0); return (!list.isEmpty() && list.size() == 1) ? null : list.get(0); } }
5.基本泛型服务接口
view plaincopy to clipboardprint?
package abu.csdn.service;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
/**
* <p>
* 基本上与泛型DAO的通用接口一致,请参见GenericDao
* <p>
*
* @author Abu
*
* @param <T> :
* 持久化的实体Bean
* @param <ID> :
* 实体Bean的id
*/
public interface GenericService<T, ID extends Serializable> {
/**
* 保存实体
*
* @param entity :
* 实体
* @return 保存后得到的id
*/
public ID save(T entity);
/**
* <p>
* 删除实体
* </p>
*
* @param entity :
* 实体
*/
public void remove(T entity);
/**
* <p>
* 删除实体集合
* </p>
*
* @param entities :
* 实体
*/
public void removeAll(Collection<T> entities);
/**
* <p>
* 修改实体
* </p>
*
* @param entity :
* 实体
*/
public void modify(T entity);
/**
* <p>
* 通过名字查找
* </p>
*
* @param id :
* id
* @return 找到的实体
*/
public T findById(ID id);
/**
* <p>
* 查找全部实体
* <p>
*
* @return 所有实体的列表
*/
public List<T> findAll();
/**
* <p>
* 根据给定的hql语句进行分页查找
* <p>
*
* @param page :
* 要查询的页码
* @param size :
* 每页记录条数
* @return 匹配的实体列表
*/
public List<T> findByPage(final int page, final int size);
/**
* <p>
* 计算匹配查询条件的记录总数,如果没有注入或者设置hql语句,将使用默认的查询语句返回数据库中所有记录
* </p>
*
* @return 记录总数
*/
public int getTotalRows();
/**
* <p>
* 根据每页记录的数量,计算出总的分页数
* </p>
*
* @param size
* 每页记录的数量
* @return 分页总数
*/
public int getPageSize(int size);
}
6.基本泛型服务接口的实现
view plaincopy to clipboardprint?
package abu.csdn.service.impl;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import abu.csdn.dao.GenericDao;
import abu.csdn.service.GenericService;
/**
*
* @author Abu
*
* @param <T>
* @param <ID>
*/
public class GenericServiceImpl<T, ID extends Serializable> implements
GenericService<T, ID> {
private GenericDao<T,ID> genericDao;
public List<T> findAll() {
return genericDao.findAll();
}
public T findById(ID id) {
return genericDao.findById(id);
}
public List<T> findByPage(int page, int size) {
return genericDao.findByPage(page, size);
}
public int getPageSize(int size) {
return genericDao.getPageSize(size);
}
public int getTotalRows() {
return genericDao.getTotalRows();
}
public void modify(T entity) {
genericDao.modify(entity);
}
public void remove(T entity) {
genericDao.remove(entity);
}
public void removeAll(Collection<T> entities) {
genericDao.removeAll(entities);
}
public ID save(T entity) {
return genericDao.save(entity);
}
public void setGenericDao(GenericDao<T, ID> genericDao) {
this.genericDao = genericDao;
}
}
package abu.csdn.service.impl; import java.io.Serializable; import java.util.Collection; import java.util.List; import abu.csdn.dao.GenericDao; import abu.csdn.service.GenericService; /** * * @author Abu * * @param <T> * @param <ID> */ public class GenericServiceImpl<T, ID extends Serializable> implements GenericService<T, ID> { private GenericDao<T,ID> genericDao; public List<T> findAll() { return genericDao.findAll(); } public T findById(ID id) { return genericDao.findById(id); } public List<T> findByPage(int page, int size) { return genericDao.findByPage(page, size); } public int getPageSize(int size) { return genericDao.getPageSize(size); } public int getTotalRows() { return genericDao.getTotalRows(); } public void modify(T entity) { genericDao.modify(entity); } public void remove(T entity) { genericDao.remove(entity); } public void removeAll(Collection<T> entities) { genericDao.removeAll(entities); } public ID save(T entity) { return genericDao.save(entity); } public void setGenericDao(GenericDao<T, ID> genericDao) { this.genericDao = genericDao; } }
7.具体的服务接口
view plaincopy to clipboardprint?
package abu.csdn.service;
import abu.csdn.bean.User;
/**
*
* @author Abu
*
*/
public interface UserService extends GenericService<User, Long> {
/**
* <p>
* 用户登录验证, 登录成功将返回该用户实体,失败则为空
* </p>
*
* @param uname :
* 用户名
* @param upass :
* 密码
* @return 用户实体
*/
public User login(String uname, String upass);
public void removeByUids(long [] uids);
}
package abu.csdn.service; import abu.csdn.bean.User; /** * * @author Abu * */ public interface UserService extends GenericService<User, Long> { /** * <p> * 用户登录验证, 登录成功将返回该用户实体,失败则为空 * </p> * * @param uname : * 用户名 * @param upass : * 密码 * @return 用户实体 */ public User login(String uname, String upass); public void removeByUids(long [] uids); }
8.具体的服务接口的实现
view plaincopy to clipboardprint?
package abu.csdn.service.impl;
import java.util.Collection;
import java.util.List;
import abu.csdn.bean.User;
import abu.csdn.dao.UserDao;
import abu.csdn.dao.impl.UserDaoImpl;
import abu.csdn.service.UserService;
/**
*
* @author Abu
*
*/
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public UserDao getUserDao() {
return this.userDao;
}
public List<User> findAll() {
return userDao.findAll();
}
public User findById(Long id) {
return userDao.findById(id);
}
public List<User> findByPage(int page, int size) {
return userDao.findByPage(page, size);
}
public int getPageSize(int size) {
return userDao.getPageSize(size);
}
public int getTotalRows() {
return userDao.getTotalRows();
}
public void modify(User entity) {
userDao.modify(entity);
}
public void removeAll(Collection<User> entities) {
userDao.removeAll(entities);
}
public void remove(User entity) {
userDao.remove(entity);
}
public Long save(User entity) {
return userDao.save(entity);
}
@SuppressWarnings("unchecked")
public User login(String uname, String upass) {
String hql = "from User u where u.uname = '" + uname + "'"
+ " and u.upass = '" + upass + "'";
userDao.setHql(hql);
List<User> list = userDao.findAll();
User user = (list.isEmpty() && list.size() != 1) ? null : list.get(0);
// 千万要记住,一旦修改了默认值,则业务结束后要重新改回默认值
userDao.setHql(" from " + User.class.getName());
return user;
}
public void removeByUids(long[] uids) {
StringBuffer hqlSb = new StringBuffer();
hqlSb.append(" from User u where u.uid in (");
for (int i = 0; i < uids.length; i++) {
if (i != uids.length - 1) {
hqlSb.append(uids[i]).append(",");
} else {
hqlSb.append(uids[i]);
}
}
hqlSb.append(")");
userDao.setHql(hqlSb.toString());
Collection<User> entities = userDao.findAll();
if (entities != null) {
userDao.removeAll(entities);
}
}
}
package abu.csdn.service.impl; import java.util.Collection; import java.util.List; import abu.csdn.bean.User; import abu.csdn.dao.UserDao; import abu.csdn.dao.impl.UserDaoImpl; import abu.csdn.service.UserService; /** * * @author Abu * */ public class UserServiceImpl implements UserService { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } public UserDao getUserDao() { return this.userDao; } public List<User> findAll() { return userDao.findAll(); } public User findById(Long id) { return userDao.findById(id); } public List<User> findByPage(int page, int size) { return userDao.findByPage(page, size); } public int getPageSize(int size) { return userDao.getPageSize(size); } public int getTotalRows() { return userDao.getTotalRows(); } public void modify(User entity) { userDao.modify(entity); } public void removeAll(Collection<User> entities) { userDao.removeAll(entities); } public void remove(User entity) { userDao.remove(entity); } public Long save(User entity) { return userDao.save(entity); } @SuppressWarnings("unchecked") public User login(String uname, String upass) { String hql = "from User u where u.uname = '" + uname + "'" + " and u.upass = '" + upass + "'"; userDao.setHql(hql); List<User> list = userDao.findAll(); User user = (list.isEmpty() && list.size() != 1) ? null : list.get(0); // 千万要记住,一旦修改了默认值,则业务结束后要重新改回默认值 userDao.setHql(" from " + User.class.getName()); return user; } public void removeByUids(long[] uids) { StringBuffer hqlSb = new StringBuffer(); hqlSb.append(" from User u where u.uid in ("); for (int i = 0; i < uids.length; i++) { if (i != uids.length - 1) { hqlSb.append(uids[i]).append(","); } else { hqlSb.append(uids[i]); } } hqlSb.append(")"); userDao.setHql(hqlSb.toString()); Collection<User> entities = userDao.findAll(); if (entities != null) { userDao.removeAll(entities); } } }
view plaincopy to clipboardprint?
package abu.csdn.dao;
import abu.csdn.bean.User;
/**
*
* @author Abu
*
*/
public interface UserDao extends GenericDao<User, Long> {
/**
* <p>
* 根据用户名精确查找
* </p>
* @param uname : 用户名
* @return : 匹配的实体
*/
public User findByNameExact(String uname);
}
package abu.csdn.dao; import abu.csdn.bean.User; /** * * @author Abu * */ public interface UserDao extends GenericDao<User, Long> { /** * <p> * 根据用户名精确查找 * </p> * @param uname : 用户名 * @return : 匹配的实体 */ public User findByNameExact(String uname); }
4.具体DAO接口的实现
view plaincopy to clipboardprint?
package abu.csdn.dao.impl;
import java.util.List;
import abu.csdn.bean.User;
import abu.csdn.dao.UserDao;
/**
*
* @author Abu
*
*/
public class UserDaoImpl extends GenericDaoImpl<User, Long> implements UserDao {
public UserDaoImpl(Class<User> type) {
super(type);
}
@SuppressWarnings("unchecked")
public User findByNameExact(String uname) {
List<User> list = (List<User>) this.getHibernateTemplate().find(
"from User u where u.uname = ?", uname).get(0);
return (!list.isEmpty() && list.size() == 1) ? null : list.get(0);
}
}
package abu.csdn.dao.impl; import java.util.List; import abu.csdn.bean.User; import abu.csdn.dao.UserDao; /** * * @author Abu * */ public class UserDaoImpl extends GenericDaoImpl<User, Long> implements UserDao { public UserDaoImpl(Class<User> type) { super(type); } @SuppressWarnings("unchecked") public User findByNameExact(String uname) { List<User> list = (List<User>) this.getHibernateTemplate().find( "from User u where u.uname = ?", uname).get(0); return (!list.isEmpty() && list.size() == 1) ? null : list.get(0); } }
5.基本泛型服务接口
view plaincopy to clipboardprint?
package abu.csdn.service;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
/**
* <p>
* 基本上与泛型DAO的通用接口一致,请参见GenericDao
* <p>
*
* @author Abu
*
* @param <T> :
* 持久化的实体Bean
* @param <ID> :
* 实体Bean的id
*/
public interface GenericService<T, ID extends Serializable> {
/**
* 保存实体
*
* @param entity :
* 实体
* @return 保存后得到的id
*/
public ID save(T entity);
/**
* <p>
* 删除实体
* </p>
*
* @param entity :
* 实体
*/
public void remove(T entity);
/**
* <p>
* 删除实体集合
* </p>
*
* @param entities :
* 实体
*/
public void removeAll(Collection<T> entities);
/**
* <p>
* 修改实体
* </p>
*
* @param entity :
* 实体
*/
public void modify(T entity);
/**
* <p>
* 通过名字查找
* </p>
*
* @param id :
* id
* @return 找到的实体
*/
public T findById(ID id);
/**
* <p>
* 查找全部实体
* <p>
*
* @return 所有实体的列表
*/
public List<T> findAll();
/**
* <p>
* 根据给定的hql语句进行分页查找
* <p>
*
* @param page :
* 要查询的页码
* @param size :
* 每页记录条数
* @return 匹配的实体列表
*/
public List<T> findByPage(final int page, final int size);
/**
* <p>
* 计算匹配查询条件的记录总数,如果没有注入或者设置hql语句,将使用默认的查询语句返回数据库中所有记录
* </p>
*
* @return 记录总数
*/
public int getTotalRows();
/**
* <p>
* 根据每页记录的数量,计算出总的分页数
* </p>
*
* @param size
* 每页记录的数量
* @return 分页总数
*/
public int getPageSize(int size);
}
6.基本泛型服务接口的实现
view plaincopy to clipboardprint?
package abu.csdn.service.impl;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import abu.csdn.dao.GenericDao;
import abu.csdn.service.GenericService;
/**
*
* @author Abu
*
* @param <T>
* @param <ID>
*/
public class GenericServiceImpl<T, ID extends Serializable> implements
GenericService<T, ID> {
private GenericDao<T,ID> genericDao;
public List<T> findAll() {
return genericDao.findAll();
}
public T findById(ID id) {
return genericDao.findById(id);
}
public List<T> findByPage(int page, int size) {
return genericDao.findByPage(page, size);
}
public int getPageSize(int size) {
return genericDao.getPageSize(size);
}
public int getTotalRows() {
return genericDao.getTotalRows();
}
public void modify(T entity) {
genericDao.modify(entity);
}
public void remove(T entity) {
genericDao.remove(entity);
}
public void removeAll(Collection<T> entities) {
genericDao.removeAll(entities);
}
public ID save(T entity) {
return genericDao.save(entity);
}
public void setGenericDao(GenericDao<T, ID> genericDao) {
this.genericDao = genericDao;
}
}
package abu.csdn.service.impl; import java.io.Serializable; import java.util.Collection; import java.util.List; import abu.csdn.dao.GenericDao; import abu.csdn.service.GenericService; /** * * @author Abu * * @param <T> * @param <ID> */ public class GenericServiceImpl<T, ID extends Serializable> implements GenericService<T, ID> { private GenericDao<T,ID> genericDao; public List<T> findAll() { return genericDao.findAll(); } public T findById(ID id) { return genericDao.findById(id); } public List<T> findByPage(int page, int size) { return genericDao.findByPage(page, size); } public int getPageSize(int size) { return genericDao.getPageSize(size); } public int getTotalRows() { return genericDao.getTotalRows(); } public void modify(T entity) { genericDao.modify(entity); } public void remove(T entity) { genericDao.remove(entity); } public void removeAll(Collection<T> entities) { genericDao.removeAll(entities); } public ID save(T entity) { return genericDao.save(entity); } public void setGenericDao(GenericDao<T, ID> genericDao) { this.genericDao = genericDao; } }
7.具体的服务接口
view plaincopy to clipboardprint?
package abu.csdn.service;
import abu.csdn.bean.User;
/**
*
* @author Abu
*
*/
public interface UserService extends GenericService<User, Long> {
/**
* <p>
* 用户登录验证, 登录成功将返回该用户实体,失败则为空
* </p>
*
* @param uname :
* 用户名
* @param upass :
* 密码
* @return 用户实体
*/
public User login(String uname, String upass);
public void removeByUids(long [] uids);
}
package abu.csdn.service; import abu.csdn.bean.User; /** * * @author Abu * */ public interface UserService extends GenericService<User, Long> { /** * <p> * 用户登录验证, 登录成功将返回该用户实体,失败则为空 * </p> * * @param uname : * 用户名 * @param upass : * 密码 * @return 用户实体 */ public User login(String uname, String upass); public void removeByUids(long [] uids); }
8.具体的服务接口的实现
view plaincopy to clipboardprint?
package abu.csdn.service.impl;
import java.util.Collection;
import java.util.List;
import abu.csdn.bean.User;
import abu.csdn.dao.UserDao;
import abu.csdn.dao.impl.UserDaoImpl;
import abu.csdn.service.UserService;
/**
*
* @author Abu
*
*/
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public UserDao getUserDao() {
return this.userDao;
}
public List<User> findAll() {
return userDao.findAll();
}
public User findById(Long id) {
return userDao.findById(id);
}
public List<User> findByPage(int page, int size) {
return userDao.findByPage(page, size);
}
public int getPageSize(int size) {
return userDao.getPageSize(size);
}
public int getTotalRows() {
return userDao.getTotalRows();
}
public void modify(User entity) {
userDao.modify(entity);
}
public void removeAll(Collection<User> entities) {
userDao.removeAll(entities);
}
public void remove(User entity) {
userDao.remove(entity);
}
public Long save(User entity) {
return userDao.save(entity);
}
@SuppressWarnings("unchecked")
public User login(String uname, String upass) {
String hql = "from User u where u.uname = '" + uname + "'"
+ " and u.upass = '" + upass + "'";
userDao.setHql(hql);
List<User> list = userDao.findAll();
User user = (list.isEmpty() && list.size() != 1) ? null : list.get(0);
// 千万要记住,一旦修改了默认值,则业务结束后要重新改回默认值
userDao.setHql(" from " + User.class.getName());
return user;
}
public void removeByUids(long[] uids) {
StringBuffer hqlSb = new StringBuffer();
hqlSb.append(" from User u where u.uid in (");
for (int i = 0; i < uids.length; i++) {
if (i != uids.length - 1) {
hqlSb.append(uids[i]).append(",");
} else {
hqlSb.append(uids[i]);
}
}
hqlSb.append(")");
userDao.setHql(hqlSb.toString());
Collection<User> entities = userDao.findAll();
if (entities != null) {
userDao.removeAll(entities);
}
}
}
package abu.csdn.service.impl; import java.util.Collection; import java.util.List; import abu.csdn.bean.User; import abu.csdn.dao.UserDao; import abu.csdn.dao.impl.UserDaoImpl; import abu.csdn.service.UserService; /** * * @author Abu * */ public class UserServiceImpl implements UserService { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } public UserDao getUserDao() { return this.userDao; } public List<User> findAll() { return userDao.findAll(); } public User findById(Long id) { return userDao.findById(id); } public List<User> findByPage(int page, int size) { return userDao.findByPage(page, size); } public int getPageSize(int size) { return userDao.getPageSize(size); } public int getTotalRows() { return userDao.getTotalRows(); } public void modify(User entity) { userDao.modify(entity); } public void removeAll(Collection<User> entities) { userDao.removeAll(entities); } public void remove(User entity) { userDao.remove(entity); } public Long save(User entity) { return userDao.save(entity); } @SuppressWarnings("unchecked") public User login(String uname, String upass) { String hql = "from User u where u.uname = '" + uname + "'" + " and u.upass = '" + upass + "'"; userDao.setHql(hql); List<User> list = userDao.findAll(); User user = (list.isEmpty() && list.size() != 1) ? null : list.get(0); // 千万要记住,一旦修改了默认值,则业务结束后要重新改回默认值 userDao.setHql(" from " + User.class.getName()); return user; } public void removeByUids(long[] uids) { StringBuffer hqlSb = new StringBuffer(); hqlSb.append(" from User u where u.uid in ("); for (int i = 0; i < uids.length; i++) { if (i != uids.length - 1) { hqlSb.append(uids[i]).append(","); } else { hqlSb.append(uids[i]); } } hqlSb.append(")"); userDao.setHql(hqlSb.toString()); Collection<User> entities = userDao.findAll(); if (entities != null) { userDao.removeAll(entities); } } }
发表评论
-
SSH2整合步骤
2011-01-11 15:41 1885SSH2整合步骤 -
进销存管理系统项目->工程框架
2010-11-25 14:30 1383此文档需要下载;代码没有写完整! -
实例讲解spring整合struts的几种方式
2010-11-19 13:09 948[size=small]实例讲解spring整合struts的 ... -
Spring整合Struts
2010-11-19 13:03 923为什么整合? 使用Spring的IOC功能将业务类注入Acti ... -
Spring整合Hibernate的步骤
2010-11-19 13:02 1149为什么要整合Hibernate? 1、使用Spring的IOC ... -
Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发
2010-11-19 09:29 1011此文档需要下载! -
图解SSH(struts2,spring,hibernate)框架配置步骤
2010-11-18 10:14 1074此文档需要下载 -
Struts2、Hibernate、spring整合过程总结
2010-11-18 10:05 961Struts2、Hibernate、spring整合过程总结 ... -
Struts2、Hibernate、Spring整合的泛型DAO,以及通用的分页技术 三
2010-11-18 09:58 11409.分页数据信息类 view plaincopy to c ... -
Struts2、Hibernate、Spring整合的泛型DAO,以及通用的分页技术 一
2010-11-18 09:52 11481.基本DAO泛型接口 view plaincopy t ... -
JAVA通过IP查询详细地址
2010-11-17 10:54 21031. 首先,我们需要一个免费的IP地址库. 纯真I ... -
偷窥struts+hibernate分页(第二种方法)
2010-11-17 10:22 699应用Hibernate3的DetachedCriteria实现 ... -
偷窥struts+hibernate分页(第一种方法)
2010-11-17 10:18 766根据原文有点改动。原文忘记在那里看到了。看到提个醒 新建表 ...
相关推荐
Struts2 Spring3 Hibernate 注解功能 DAO 泛型 通用分页
减少重复代码的编写,增强DAO层代码的重用。
基于hibernate5 泛型Dao实例,下载后改一下数据库 配置直接可以用
Struts2、Hibernate、Spring整合的泛型DAO (本人评价: 代码开发效率提高30% 代码出错率减少70%) 对于大多数开发人员,系统中的每个 DAO 编写几乎相同的代码到目前为止已经成为一种习惯。虽然所有人都将这种重复...
Struts2、Hibernate、Spring整合的泛型DAO (本人评价: 代码开发效率提高30% 代码出错率减少70%) 对于大多数开发人员,系统中的每个 DAO 编写几乎相同的代码到目前为止已经成为一种习惯。虽然所有人都将这种重复...
泛型dao 即:不写重复的dao 。这个技术 能让 dao层 和 service层 不写一行代码。外国都用这个泛型DAO了 中国还是一个类一个dao的写,我生气就写了这个文章了。 在本文中,我将为您展示如何避免再三地重复 DAO 代码
泛型DAO 完善的dao代码及criteria查询底层代码
再次打造SSH1整合下的通用泛型DAO+分页,基于HibernateTemplate,欢迎大家指正 - DAO - Java - JavaEye论坛_files
1.实现泛型的Hibernate 2.Spring+Hibernate搭建 3.maven构建工程
spring集成hibernate通用dao,泛型,server都可以调用
为什么我们要使用通用DAO接口呢,因为我们的数据库操作无非是增删改查,CRUD操作,我们不需要为每个实体去编写一个dao接口,对于相似的实体操作可以只编写一个通用接口,然后采用不同的实现! DAO已经成为持久层...
S2SH整合例子 注解配置 JSON 泛型Dao
DAo.hibernate3不是泛型的通用DAo我在网上找了好多都是泛型的,需要继承才能用,本人比较懒,找了好久才找到了这么个,不需要继承可以直接用的hibernate dao
本程序整合了struts-2.2.3.1+spring-framework-3.1.0+hibernate-distribution-3.6.8+JSON+MySQL+Annotation,并且对Dao和Service进行了封装,内含.jar包,并且解决了一对多双向关联的could not initialize proxy - ...
NULL 博文链接:https://zhaoshijie.iteye.com/blog/982232
正在做一个小项目,发现组织的框架还是不错的,发给大家共享一下.压缩文件中有源代码 都是编译通过的...所需环境是 jdk6 + tomcat6 + mysql.是一个完整的ssh整合加代码实现,供大家参考,也欢迎提意见.
利用ssh(Spring2.5+Struts2.1+Hibernate3.3)全注解整合这3个流行的框架,实现了增、删、改、查的功能,目前功能还比较简单,以后功能再慢慢增加。欢迎大家下载并交流。
NULL 博文链接:https://dr-yanglong.iteye.com/blog/2009075
剥离出来的泛型Hibernate 博文链接:https://jhaij.iteye.com/blog/543892
Struts2.1.6+Spring2.5.6+Hibernate3.3.2+mysql整合+分页模板 能用