- 浏览: 33350 次
- 性别:
- 来自: 新安江
最新评论
-
wangxuehui:
什么意思??
mybatis查询入门(log4j控制台sql语句日记输出的) -
青春的、脚步:
<logger name="java.sql& ...
mybatis查询入门(log4j控制台sql语句日记输出的)
struts2 hibernate spring注解的整合(重写了巴巴运动网部门功能)
下面是Dao(泛型),及其Dao实现类
下面是一个User实体类的用法Dao,Servlet用法,希望对大家有帮助,本来还想贴一下该网站的权限功能的,就放在源代码里面,只要修改jdbc.properties配置文件的数据库的用户名和密码,并建立自己的数据库就好了,数据库表自动生成,下面lib1,lib2,lib3是jar包,一起放在shop9源代码文件lib文件夹下面就可以,shop9是源代码
//该网站的全文搜索功能代码
下面是一个User实体类的用法Dao,Servlet用法,希望对大家有帮助,本来还想贴一下该网站的权限功能的,就放在源代码里面,只要修改jdbc.properties配置文件的数据库的用户名和密码,并建立自己的数据库就好了,数据库表自动生成,下面lib1,lib2,lib3是jar包,一起放在shop9源代码文件lib文件夹下面就可以,shop9是源代码
import java.io.Serializable; import java.util.Collection; import java.util.LinkedHashMap; import java.util.List; /** * * @author wxh64788665@yahoo.cn begin:20120818 * * @param <T> 实体类 * @param <PK> 主键 */ public interface GenericDao <T,PK extends Serializable>{ /** * 根据id查找指定的实体 * @param id * @return */ public T findById(PK id); /** * 查找所有实体 * @return */ public List<T> findAll(); /** * 保存实体 * @param entity */ public void save (T entity); /** * 更新实体 * @param entity */ public void update(T entity); /** * 删除实体 * @param entity */ public void delete(T entity); /** * 根据hql查找指定的实体 * @param hql * @return */ public List<T> findAllByHql(String hql); /** * 删除实体集合 * @param entities */ public void deleteAll(Collection<T> entities); /** * * @param hql 代表hql语句查询 * @param params 相应的参数值 * @param pageSize 分页的大小 * @param pageNumber 分页的页码 * @param othername hql 中表的别名 * @param orderby 什么顺序排序 * @return List<ProductType> 集合 */ public List<T> getList(final String hql, final Object[] params,final Integer pageSize,final Integer pageNumber,final String othername,final LinkedHashMap<String,String> orderby); /** * 根据hql和相应的参数,获取实体的总记录数 * @param hql * @param params * @return */ public Object queryObject(final String hql, final Object[] params); /** * * @param hql 代表hql语句查询 * @param params 相应的参数值 * @param pageSize 分页的大小 * @param pageNumber 分页的页码 * @return */ public List<T> getList(final String hql, final Object[] params,final Integer pageSize,final Integer pageNumber); /** * * @param hql 代表hql语句查询 * @param params 相应的参数值 * @param othername 别名 * @param orderby 根据说明排序 * @return */ @SuppressWarnings("unchecked") public List getList(final String hql, final Object[] params,final String othername,final LinkedHashMap<String,String> orderby); /** * * @param hql 代表hql语句查询 * @param params 相应的参数值 * @return */ @SuppressWarnings("unchecked") public List getList(final String hql, final Object[] params); /** * * @param hql 代表hql语句查询 * @param params 相应的参数值 * @return */ @SuppressWarnings("unchecked") public List getList(final String hql, final Object[] params,Integer maxResult); /** *清除一级缓存的数据 */ public void clear(); }
import java.io.Serializable; import java.lang.reflect.ParameterizedType; import java.sql.SQLException; import java.util.Collection; import java.util.LinkedHashMap; import java.util.List; import javax.annotation.Resource; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.itcast.bean.common.dao.GenericDao; /** * 泛型Dao实现类 * @author wxh64788665@yahoo.cn * * @param <T> * @param <PK> */ public class GenericDaoHibernate<T, PK extends Serializable> extends HibernateDaoSupport implements GenericDao<T, PK> { private Class<T> clazz; @Resource public void setSessionFactory0(SessionFactory sessionFactory){ super.setSessionFactory(sessionFactory); } @SuppressWarnings("unchecked") public GenericDaoHibernate() { clazz = (Class<T>) ((ParameterizedType) getClass() .getGenericSuperclass()).getActualTypeArguments()[0]; } public void delete(T entity) { getHibernateTemplate().delete(entity); } @SuppressWarnings("unchecked") public List<T> findAll() { List<T> list = getHibernateTemplate().find("from " + clazz.getName()); return list; } @SuppressWarnings("unchecked") public List<T> findAllByHql(String hql) { List<T> list = getHibernateTemplate().find("from " + hql); return list; } @SuppressWarnings("unchecked") public T findById(PK id) { T entity = (T) getHibernateTemplate().get(clazz, id); return entity; } public void save(T entity) { getHibernateTemplate().save(entity); } public void update(T entity) { getHibernateTemplate().update(entity); } public Object queryObject(final String hql, final Object[] params) { return getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hql); if (params != null) { for (int i = 0; i < params.length; i++) query.setParameter(i, params[i]); } return query.uniqueResult(); } }); } /** * 根据hql和相应的参数,分页的大小和页码获取相应实体的集合 * @param hql * @param params * @param pageSize * @param pageNumber * @return */ //根据实体的属性asc/desc //Order by key1 desc,key2 asc @SuppressWarnings("unchecked") public List<T> getList(final String hql, final Object[] params,final Integer pageSize,final Integer pageNumber,final String othername,final LinkedHashMap<String,String> orderby) { return (List)getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hql+buildOrderby(orderby,othername)); if (params != null) { for (int i = 0; i < params.length; i++) query.setParameter(i, params[i]); } query.setMaxResults(pageSize); query.setFirstResult(pageSize*(pageNumber-1)); return query.list(); } }); } /** * 根据hql和相应的参数,并相应的排序获取相应实体的集合 * @param hql * @param params * @return */ //根据实体的属性asc/desc //Order by key1 desc,key2 asc @SuppressWarnings("unchecked") public List<T> getList(final String hql, final Object[] params,final String othername,final LinkedHashMap<String,String> orderby) { return (List)getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hql+buildOrderby(orderby,othername)); if (params != null) { for (int i = 0; i < params.length; i++) query.setParameter(i, params[i]); } return query.list(); } }); } /** * 根据hql和相应的参数,获取相应实体的集合 * @param hql * @param params * @return */ //根据实体的属性asc/desc //Order by key1 desc,key2 asc @SuppressWarnings("unchecked") public List<T> getList(final String hql, final Object[] params) { return (List)getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hql); if (params != null) { for (int i = 0; i < params.length; i++) query.setParameter(i, params[i]); } return query.list(); } }); } /** * 拼接排序 * @param orderby * @return */ private String buildOrderby(LinkedHashMap<String,String> orderby,String othername) { StringBuffer orderbyql=new StringBuffer(""); if(orderby!=null&& orderby.size()>0) { orderbyql.append(" order by "); for(String key :orderby.keySet()) orderbyql.append(othername).append(".").append(key).append(" ").append(orderby.get(key)).append(","); orderbyql.deleteCharAt(orderbyql.length()-1); } return orderbyql.toString(); } @Override public void deleteAll(Collection<T> entities) { getHibernateTemplate().deleteAll(entities); } @SuppressWarnings("unchecked") @Override public List<T> getList(final String hql, final Object[] params,final Integer pageSize, final Integer pageNumber) { return (List)getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hql); if (params != null) { for (int i = 0; i < params.length; i++) query.setParameter(i, params[i]); } query.setMaxResults(pageSize); query.setFirstResult(pageSize*(pageNumber-1)); return query.list(); } }); } @SuppressWarnings("unchecked") @Override public List<T> getList(final String hql, final Object[] params, final Integer maxResult) { return (List)getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hql); if (params != null) { for (int i = 0; i < params.length; i++) query.setParameter(i, params[i]); } query.setFirstResult(0).setMaxResults(maxResult); return query.list(); } }); } @Override public void clear() { getHibernateTemplate().clear(); } }
import com.itcast.bean.common.dao.GenericDao; import com.itcast.bean.user.Buyer; public interface BuyerDao extends GenericDao<Buyer, String>{ /** * 启用指定用户 * @param usernames */ public void enable(String ... usernames); /** * 禁用指定用户 * @param usernames */ public void delete(String ... usernames); /** * 用户名,新密码,修改用户密码 * @param username * @param newpassword */ public void updatePassord(String username,String newpassword); }
import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Component; import com.itcast.bean.common.dao.hibernate.GenericDaoHibernate; import com.itcast.bean.user.Buyer; import com.itcast.bean.user.dao.BuyerDao; @Component public class BuyerDaoHibernate extends GenericDaoHibernate<Buyer, String> implements BuyerDao { @Override public void delete(String... usernames) { SetVisble(false,usernames); } private void SetVisble(Boolean visible,String... usernames) { if(usernames!=null&&usernames.length>0) { StringBuffer strHql=new StringBuffer(); List<Object> params=new ArrayList<Object>(); params.add(visible); for(String username : usernames) { strHql.append("?").append(","); params.add(username); } strHql.deleteCharAt(strHql.length()-1); getHibernateTemplate().bulkUpdate("update Buyer as b set b.visible=? where b.username in ("+strHql.toString()+")",params.toArray()); } } @Override public void enable(String... usernames) { SetVisble(true,usernames); } @Override public void updatePassord(String username, String newpassword) { // TODO Auto-generated method stub getHibernateTemplate().bulkUpdate("update Buyer as b set b.password=? where b.username=?",new Object[]{newpassword,username}); } }
import java.util.LinkedHashMap; import com.itcast.bean.user.Buyer; import com.itcast.common.util.PageModel; public interface BuyerManager { /** * 用于注册用户的保存 * @param buyer */ public void save(Buyer buyer); /** * 判断用户是否存在,存在返回true,不存在返回false * @param username 用户名 * @return */ public Boolean exsit(String username); /** * 判断用户名和密码是否正确,正确返回true,不存在返回false; * @param buyer * @return */ public Boolean validate(Buyer buyer); /** * * @param username 用户名 * @return 用户对象 */ public Buyer load(String username); /** * * @param pageSize 当前分页大小 * @param pageNumber 当前页码 * @param orderby 根据什么排序 * @param buyer 用户对象 * @param query 查询界面传递过来,默认是true * @return */ public PageModel<Buyer> getPageModelByBuyer(final Buyer buyer,final Integer pageSize,final Integer pageNumber,final LinkedHashMap<String,String> orderby,final String query); /** * 启用指定用户 * @param usernames */ public void enable(String ... usernames); /** * 禁用指定用户 * @param usernames */ public void delete(String ... usernames); /** * 用户名,新密码,修改用户密码 * @param username * @param newpassword */ public void updatePassord(String username,String newpassword); }
import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.itcast.bean.user.Buyer; import com.itcast.bean.user.dao.BuyerDao; import com.itcast.common.util.Const; import com.itcast.common.util.MD5; import com.itcast.common.util.PageModel; import com.itcast.service.user.BuyerManager; @Service public class BuyerManagerImpl implements BuyerManager { @Resource private BuyerDao buyerDao; @Override public void save(Buyer buyer) { buyer.setPassword(MD5.MD5Encode(buyer.getPassword())); buyerDao.save(buyer); } @Override public Boolean exsit(String username) { Long count=(Long)buyerDao.queryObject("select count(b) from Buyer as b where b.username=?", new Object[]{username}); return count>0?true:false; } @Override public Boolean validate(Buyer buyer) { Long count=(Long)buyerDao.queryObject("select count(b) from Buyer as b where b.username=? and b.password =?", new Object[]{buyer.getUsername(),MD5.MD5Encode(buyer.getPassword())}); return count>0?true:false; } @Override public Buyer load(String username) { return buyerDao.findById(username); } @Override public PageModel<Buyer> getPageModelByBuyer(Buyer buyer, Integer pageSize, Integer pageNumber, LinkedHashMap<String, String> orderby, String query) { List<Buyer> buyers; StringBuffer hql=new StringBuffer("from Buyer as b where 1=1"); List<Object> params=new ArrayList<Object>(); if("true".equals(query)) //进行查询操作 { if(buyer!=null) { if(buyer.getUsername()!=null&&!"".equals(buyer.getUsername().trim())) { hql.append(" and b.username like ? "); params.add("%"+buyer.getUsername()+"%"); } if(buyer.getRealName()!=null&&!"".equals(buyer.getRealName().trim())) { hql.append(" and b.realName like ? "); params.add("%"+buyer.getRealName()+"%"); } if(buyer.getEmail()!=null&&!"".equals(buyer.getEmail().trim())) { hql.append(" and b.email like ? "); params.add("%"+buyer.getEmail()+"%"); } } } if (pageNumber == null) { pageNumber = Const.DEFAULT_NUMBER; buyers = buyerDao.getList( hql.toString(), params.toArray(), pageSize, pageNumber, "b",orderby); } else buyers = buyerDao.getList( hql.toString(), params.toArray(), pageSize, pageNumber, "b", orderby); Integer totalRecords = ((Long) (buyerDao.queryObject( "select count(*) "+" "+hql.toString(), params.toArray()))).intValue(); return new PageModel<Buyer>(buyers, totalRecords, pageSize, pageNumber); } /* @Override public void delete(String... usernames) { if(usernames!=null&&usernames.length>0) { for(String username:usernames) { Buyer buyer=buyerDao.findById(username); buyer.setVisible(Const.VISIBLE_FALSE); buyerDao.update(buyer); } } }*/ /* @Override public void enable(String... usernames) { if(usernames!=null&&usernames.length>0) { for(String username:usernames) { Buyer buyer=buyerDao.findById(username); buyer.setVisible(Const.VISIBLE_TRUE); buyerDao.update(buyer); } } }*/ public void delete(String... usernames) { buyerDao.delete(usernames); } public void enable(String... usernames) { buyerDao.enable(usernames); } @Override public void updatePassord(String username, String newpassword) { // TODO Auto-generated method stub buyerDao.updatePassord(username, newpassword); } }
//该网站的全文搜索功能代码
import com.itcast.bean.product.ProductInfo; import com.itcast.common.util.PageModel; /** * 产品全文搜索 * @author Administrator * */ public interface ProductSearchManager { public PageModel<ProductInfo> search(String key,Integer pageSize, Integer pageNumber); }
import javax.annotation.Resource; import org.compass.core.Compass; import org.compass.spring.CompassDaoSupport; import org.springframework.stereotype.Service; import com.itcast.bean.product.ProductInfo; import com.itcast.common.util.PageModel; import com.itcast.search.product.ProductSearchManager; import com.itcast.service.product.impl.ProductResultCallback; @Service public class ProductSearchManagerImpl extends CompassDaoSupport implements ProductSearchManager { @Resource public void setCompass0(Compass compass) { super.setCompass(compass); } @Override public PageModel<ProductInfo> search(String key, Integer pageSize, Integer pageNumber) { // TODO Auto-generated method stub return this.getCompassTemplate().execute(new ProductResultCallback(key,pageSize, pageNumber)); } }
<!--相关搜索功能的配置,网上有一大堆 --> <bean id="compass" class="org.compass.spring.LocalCompassBean"> <!-- 指定映射类方式 --> <property name="classMappings"> <list> <value>com.itcast.bean.product.ProductInfo</value> <value>com.itcast.bean.product.Brand</value> <value>com.itcast.bean.product.ProductStyle</value> <value>com.itcast.bean.product.ProductType</value> </list> </property> <property name="connection"> <value>/lucene/indexes</value> </property> <property name="compassSettings"> <props> <prop key="compass.engine.highlighter.default.formatter.simple.pre"><![CDATA[<font color='red'>]]></prop> <prop key="compass.engine.highlighter.default.formatter.simple.post"><![CDATA[</font>]]></prop> <prop key="compass.transaction.factory">org.compass.spring.transaction.SpringSyncTransactionFactory</prop> </props> </property> <property name="transactionManager" ref="txManager" /> </bean> <bean id="hibernateGpsDevice" class="org.compass.gps.device.hibernate.HibernateGpsDevice"> <property name="name"><value>hibernateDevice</value></property> <property name="sessionFactory" ref="sessionFactory"></property> <property name="nativeExtractor"> <bean class="org.compass.spring.device.hibernate.SpringNativeHibernateExtractor" /> </property> </bean> <bean id="compassGps" class="org.compass.gps.impl.SingleCompassGps" init-method="start" destroy-method="stop"> <property name="compass"><ref bean="compass" /></property> <property name="gpsDevices"> <list> <bean class="org.compass.spring.device.SpringSyncTransactionGpsDeviceWrapper"> <property name="gpsDevice" ref="hibernateGpsDevice" /> </bean> </list> </property> </bean>
import java.util.ArrayList; import java.util.List; import org.compass.core.CompassCallback; import org.compass.core.CompassException; import org.compass.core.CompassHits; import org.compass.core.CompassSession; import com.itcast.bean.product.ProductInfo; import com.itcast.common.util.PageModel; import com.itcast.common.util.WebUtil; public class ProductResultCallback implements CompassCallback<PageModel<ProductInfo>> { /** * 要查找的内容 */ private String key; /** * 每页多少条数据 */ private Integer pageSize; /** * 当前第几页 */ private Integer pageNumber; public ProductResultCallback(String key, Integer pageSize, Integer pageNumber) { this.key=key; this.pageSize=pageSize; this.pageNumber=pageNumber; } @Override public PageModel<ProductInfo> doInCompass(CompassSession session) throws CompassException { // TODO Auto-generated method stub if(key==null||key.trim().length()==0) { CompassHits hits=session.find(key); int lastPageNumber=pageNumber+pageSize-1; List<ProductInfo> products=new ArrayList<ProductInfo>(); if(lastPageNumber>hits.length()-1) lastPageNumber=hits.length()-1; for(int i=pageNumber-1;i<=lastPageNumber;i++) { ProductInfo productInfo=(ProductInfo)hits.data(i); if(hits.highlighter(i).fragment("name")!=null) //处理高亮显示 productInfo.setName(hits.highlighter(i).fragment("name")); productInfo.setDescription(WebUtil.HtmltoText(productInfo.getDescription())); products.add(productInfo); } return new PageModel<ProductInfo>(products, hits.length(), pageSize, pageNumber); } return new PageModel<ProductInfo>(null, 0, pageSize, pageNumber); } }
- shop9.rar (1.5 MB)
- 下载次数: 27
- lib2.rar (6.3 MB)
- 下载次数: 14
- lib3.rar (5.4 MB)
- 下载次数: 12
- lib1.rar (5 MB)
- 下载次数: 13
相关推荐
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2主要用于MVC(Model-View-Controller)架构的实现,提供控制层的支持;Hibernate是对象关系映射(ORM)工具,负责数据持久...
struts spring hibernate 登陆 SSH整合分页功能 SSH整合分页struts spring hibernate 登陆 SSH整合分页功能 SSH整合分页struts spring hibernate 登陆 SSH整合分页功能 SSH整合分页
Struts2、Hibernate和Spring是Java企业级应用中三大核心框架,它们的整合使用能够构建出高效、可维护性高的Web应用程序。本篇将深入剖析这三者如何协同工作,并提供实际范例应用。 首先,Struts2作为MVC(模型-视图...
书中会详细讲述如何配置这些框架,使它们协同工作,包括Spring与Hibernate的事务管理、数据源配置、以及Struts2与Spring的整合等。 除此之外,书中还可能涵盖了单元测试、异常处理、安全性配置等方面的内容,这些都...
4. **整合配置**:整合Struts2、Hibernate和Spring时,需要在Struts2的配置文件中引入Spring插件,使得Action实例由Spring容器管理。同时,还需要配置Hibernate SessionFactory,以便在Spring中管理数据库会话。 5....
SSH,即Struts2、Hibernate和Spring的组合,是Java Web开发中的一种经典框架集成,用于构建企业级的MVC(Model-View-Controller)应用。这个整合旨在提供一个高效、灵活且可扩展的开发环境,使开发者可以专注于业务...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的整合(SSH)极大地提升了开发效率和项目的可维护性。下面将详细讲解这三大框架的核心功能以及整合过程中的关键知识点。 1. **Struts2**:Struts2是一...
Struts2、Hibernate和Spring是Java开发中三大主流框架,它们各自在Web应用程序的不同层面上发挥作用,而将它们整合在一起,通常称为SSH(Struts2、Spring、Hibernate)或S2SH,可以构建出功能强大、结构清晰的企业级...
《Struts2、Hibernate、Spring整合在线考试系统详解》 在线考试系统是现代教育技术发展的重要组成部分,它能够实现远程测试、自动评分等功能,极大地提高了教学效率。本系统基于Struts2、Hibernate和Spring三大主流...
《精通Java EE Eclipse Struts2 Hibernate Spring整合应用案例 源代码18章 bookstore》是针对Java企业级开发的一份重要资源,旨在帮助开发者深入理解并掌握如何在Eclipse环境中集成Struts2、Hibernate和Spring框架...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自解决应用程序的不同问题,而将这三者整合在一起可以构建高效、灵活的企业级应用。Struts2作为MVC(Model-View-Controller)框架,负责处理用户请求...
Struts2、Spring4和Hibernate4是Java Web开发中的三大主流框架,它们分别负责MVC模式中的表现层、业务层和服务层。这个最新的项目系统整合了这三个框架,旨在提供一个高效、灵活且易于维护的开发环境。下面将详细...
Struts2.3.28、Spring4.1.6和Hibernate4.3.8是三个经典的Java EE框架,它们的整合是企业级应用开发中常见的技术栈,通常被称为S2SH。在这个版本的整合中,注解的使用极大地简化了配置过程,使得开发更加高效。以下是...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和展示,Spring提供依赖注入和事务管理,Hibernate则作为ORM框架处理数据库操作。将这三个框架整合在...
Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2专注于MVC(Model-View-Controller)架构的实现,提供强大的动作控制和页面展示;Hibernate作为对象关系映射(ORM)工具,...
2. **整合Struts和Spring**:在struts.xml中配置Action时,指定Spring管理的bean,使Action由Spring实例化。 3. **整合Hibernate和Spring**:在applicationContext.xml中配置SessionFactory,并声明User实体类的映射...