红米note7支持27w快充吗3开不开机充

&>&&>&&>&&>&Struts2.1.8+Spring2.5.6+Hibernate3.3.2项目整合
Struts2.1.8+Spring2.5.6+Hibernate3.3.2项目整合
上传大小:14.28MB
SSH项目整合,包含本项目所有的JAR包,基于mysql数据库,完成了基本的“增,删,改,查,完整分页”,另外做了一点js验证,以及建表,插入指定数量的随机测试数据...... 绝对值这个分。
综合评分:3.3(4位用户评分)
所需积分:10
下载次数:19
审核通过送C币
创建者:kaikai_sk
创建者:ls
创建者:nigelyq
课程推荐相关知识库
上传者其他资源上传者专辑
开发技术热门标签
VIP会员动态
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
Struts2.1.8+Spring2.5.6+Hibernate3.3.2项目整合
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:代码下载地址:/share/3920.htm最近闲来无事可做,于是开始学习struts2。Struts2和struts1、webwork2有什么区别我也不说了,网上有很多这方面的资料。以前在项目中从未使用过struts,一直使用spring+hibernate,现在既然学习了Struts,也不能浪费,于是乎开始琢磨着怎么整合这3个框架。整合原理以spring为容器,管理hibernate的DAO和Struts2的Action。一、&准备工作Struts2.06+spring2.5+hibernate3.2+jdk6.0+myeclipse6.0+tomcat5.5+mysql5.0以上是整合的原料。下面以一个注册登陆的例子来开始我们的整合过程。这个例子很简单,下面是它的sql脚本内容:CREATE TABLE `zuidaima_user` (`userid` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(20) NOT NULL,`password` varchar(16) NOT NULL,`email` varchar(30) NOT NULL,PRIMARY KEY (`userid`)) ENGINE=InnoDB DEFAULT CHARSET=utf-8;二、&开始行动包结构可以参考下图&图一&图二图三1)&Struts部分:建立struts.xml和struts.propertiesStruts.xml内容如下:&? xml version=&1.0& encoding=&UTF-8& ?& &! DOCTYPE struts PUBLIC &-//Apache Software Foundation//DTD Struts Configuration 2.0//EN& &http://struts.apache.org/dtds/struts-2.0.dtd& & &struts&
&packagename =&user_curd&extends =&struts-default&&
&global-results&
&!--下面定义的结果对所有的Action都有效--&
&resultname =&exception&& /error.jsp &/result&
&/global-results&
&global-exception-mappings&
&!--指Action抛出Exception异常时,转入名为exception的结果。--&
&exception-mappingexception =&java.lang.Exception&result =&exception& /&
&/global-exception-mappings&
&actionname =&Login&class =&LoginAction&&
&resultname =&success&& /success.jsp &/result&
&resultname =&input&& /login.jsp &/result&
&actionname =&Regist&class =&RegistAction&&
&resultname =&success&& /success.jsp &/result&
&resultname =&input&& /regist.jsp &/result&
&/package& &/struts&Struts.properties内容如下:struts.devMode = falsestruts.enable.DynamicMethodInvocation = truestruts.i18n.reload = truestruts.ui.theme =xhtmlstruts.locale = zh_CNstruts.i18n.encoding = UTF- 8struts.objectFactory = springstruts.objectFactory.spring.autoWire = namestruts.serve.static.browserCache = falsestruts.url.includeParams = none2)&建立User.java和User.hbm.xml、jdbc.properties:User.java内容如下:/**** @author &a href=&mailto:&&flustar&/a& * @version 1.0* Creation date: Dec 23, :28 PM */package com.firstssh.import java.io.Spublic class User implements Serializable {
private S private S private S public int getId() {
} public void setId(int id) {
this.id = } public String getUsername() {
} public void setUsername(String username) {
this.username = } public String getPassword() {
} public void setPassword(String password) {
this.password = } public String getEmail() {
} public void setEmail(String email) {
this.email = }}&?xml version=&1.0&?&&!DOCTYPE hibernate-mapping PUBLIC &-//Hibernate/Hibernate Mapping DTD 3.0//EN&&http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd&&&hibernate-mapping package=&com.firstssh.model&&&class name=&User& table=&User&&&id name=&id& column=&userid&& &generator class=&identity& /&&/id&&property name=&username& column=&username& not-null=&true& length=&20&/&&property name=&password& column=&password& not-null=&true& length=&16& /&&property name=&email& column=&email& not-null=&true& length=&30&/&&/class&&/hibernate-mapping&jdbc.properties内容如下:datasource.type = mysqldatasource.driverClassName = com.mysql.jdbc.Driverdatasource.url = jdbc:mysql://localhost: 3306 /test?useUnicode = true&characterEncoding = UTF- 8datasource.username = rootdatasource.password = 123456datasource.maxActive = 10datasource.maxIdle = 2datasource.maxWait = 120000datasource.whenExhaustedAction = 1datasource.validationQuery = select1from dualdatasource.testOnBorrow = truedatasource.testOnReturn = falsec3p0.acquireIncrement = 3c3p0.initialPoolSize = 3c3p0.idleConnectionTestPeriod = 900c3p0.minPoolSize = 2c3p0.maxPoolSize = 50c3p0.maxStatements = 100c3p0.numHelperThreads = 10c3p0.maxIdleTime = 600hibernate.dialect = org.hibernate.dialect.MySQLInnoDBDialect#hibernate.dialect = org.hibernate.dialect.MySQLMyISAMDialecthibernate.jdbc.batch_size = 25hibernate.jdbc.fetch_size = 50hibernate.show_sql = truehibernate.connection.release_mode = after_transaction3)&Spirng部分:为了清晰把Spring的配置文件拆分成以下几部分applicationContext-dao.xml、appliationContext-service.xml、applicationContext-hibernate.xml、action-servlet.xml。applicationContext-hibernate.xml内容:&?xml version=&1.0& encoding=&UTF-8&?&&!DOCTYPE beans PUBLIC &-//SPRING//DTD BEAN 2.0//EN& &http://www.springframework.org/dtd/spring-beans-2.0.dtd&&&beans&&bean id=&propertyConfigurer& class=&org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&& &property name=&locations&&
&!--&value&WEB-INF/mail.properties&/value&--&
&value&WEB-INF/jdbc.properties&/value&
&!--&value&WEB-INF/oscache.properties&/value&--&
&/list& &/property&&/bean&&!-- MailSender used by EmailAdvice --&&!-- &bean id=&mailSender& class=&org.springframework.mail.javamail.JavaMailSenderImpl&& &property name=&host& value=&${mail.host}&/& &/bean&--&&bean id=&dataSource& class=&com.mchange.boPooledDataSource& destroy-method=&close& dependency-check=&none&& &property name=&driverClass&&
&value&${datasource.driverClassName}&/value& &/property& &property name=&jdbcUrl&&
&value&${datasource.url}&/value& &/property& &property name=&user&&
&value&${datasource.username}&/value& &/property& &property name=&password&&
&value&${datasource.password}&/value& &/property& &property name=&acquireIncrement&&
&value&${c3p0.acquireIncrement}&/value& &/property& &property name=&initialPoolSize&&
&value&${c3p0.initialPoolSize}&/value& &/property& &property name=&minPoolSize&&
&value&${c3p0.minPoolSize}&/value& &/property& &property name=&maxPoolSize&&
&value&${c3p0.maxPoolSize}&/value& &/property& &property name=&maxIdleTime&&
&value&${c3p0.maxIdleTime}&/value& &/property& &property name=&idleConnectionTestPeriod&&
&value&${c3p0.idleConnectionTestPeriod}&/value& &/property& &property name=&maxStatements&&
&value&${c3p0.maxStatements}&/value& &/property& &property name=&numHelperThreads&&
&value&${c3p0.numHelperThreads}&/value& &/property&&/bean&&bean id=&sessionFactory& class=&org.springframework.orm.hibernate3.LocalSessionFactoryBean&& &property name=&dataSource&&
&ref local=&dataSource& /& &/property& &property name=&mappingResources&&
&value&com/firstssh/model/User.hbm.xml&/value&
&/list& &/property& &property name=&hibernateProperties&&
&prop key=&hibernate.dialect&&${hibernate.dialect}&/prop&
&prop key=&hibernate.show_sql&&${hibernate.show_sql}&/prop&
&prop key=&hibernate.jdbc.fetch_size&&
${hibernate.jdbc.fetch_size}
&prop key=&hibernate.jdbc.batch_size&&
${hibernate.jdbc.batch_size}
&/props& &/property&&/bean&&!-- 配置事务管理器bean,使用HibernateTransactionManager事务管理器 --&&bean id=&transactionManager& class=&org.springframework.orm.hibernate3.HibernateTransactionManager&&
&!-- 为事务管理器注入sessionFactory& --&
&property name=&sessionFactory& ref=&sessionFactory&/&&/bean&&!-- 配置事务拦截器Bean --&&bean id=&transactionInterceptor& class=&org.springframework.transaction.interceptor.TransactionInterceptor&& &!-- 为事务拦截器bean注入一个事物管理器 --& &property name=&transactionManager& ref=&transactionManager&&&/property& &property name=&transactionAttributes&& &!-- 定义事务传播属性 --&
&prop key=&insert*&&PROPAGATION_REQUIRED&/prop&
&prop key=&update*&&PROPAGATION_REQUIRED&/prop&
&prop key=&save*&&PROPAGATION_REQUIRED&/prop&
&prop key=&add*&&PROPAGATION_REQUIRED&/prop&
&prop key=&remove*&&PROPAGATION_REQUIRED&/prop&
&prop key=&delete*&&PROPAGATION_REQUIRED&/prop&
&prop key=&get*&&PROPAGATION_REQUIRED,readOnly&/prop&
&prop key=&find*&&PROPAGATION_REQUIRED,readOnly&/prop&
&prop key=&load*&&PROPAGATION_REQUIRED,readOnly&/prop&
&prop key=&change*&&PROPAGATION_REQUIRED&/prop&
&prop key=&*&&PROPAGATION_REQUIRED,readOnly&/prop&
&/props& &/property&&/bean&&!-- 定义BeanNameAutoProxyCreator --&&bean class=&org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator&& &!-- 指定满足哪些bean自动生成业务代理 --& &property name=&beanNames&& &!-- 需要自动创建事务代理的bean --&
&value&userService&/value&
&!-- 其它需要自动创建事务代理的bean --& &/property& &property name=&interceptorNames&&
&value&transactionInterceptor&/value&
&!-- 可增加其它的interceptor --&
&/list& &/property&&/bean&&/beans&applicationContext-dao.xml内容:&?xml version=&1.0& encoding=&UTF-8&?&&!DOCTYPE beans PUBLIC &-//SPRING//DTD BEAN 2.0//EN& &http://www.springframework.org/dtd/spring-beans-2.0.dtd&&&beans&&!-- 根DAO --&&bean id=&genericDao& class=&mon.dao.GenericDao&&&property name=&sessionFactory&&&ref bean=&sessionFactory& /&&/property&&/bean&&bean id=&userDao& class=&com.firstssh.dao.impl.UserDao& parent=&genericDao& /&&/beans&applicationContext-service.xml内容:&?xml version=&1.0& encoding=&UTF-8&?&&!DOCTYPE beans PUBLIC &-//SPRING//DTD BEAN 2.0//EN& &http://www.springframework.org/dtd/spring-beans-2.0.dtd&&&beans&&bean id=&userService& class=&com.firstssh.service.impl.UserService&& &property name=&userDao&&
&ref bean=&userDao&/& &/property&&/bean&&bean id=&validateName& class=&mon.Bean.ValidateName&& &property name=&userService&&
&ref local=&userService&/& &/property&&/bean&&/beans&action-servlet.xml内容:&?xml version=&1.0& encoding=&UTF-8&?&&!DOCTYPE beans PUBLIC &-//SPRING//DTD BEAN 2.0//EN& &http://www.springframework.org/dtd/spring-beans-2.0.dtd&&&beans& &bean id=&LoginAction& class=&com.firstssh.action.LoginAction&
scope=&prototype&&
&property name=&userService& ref=&userService& /& &/bean& &bean id=&RegistAction& class=&com.firstssh.action.RegistAction&
scope=&prototype&&
&property name=&userService& ref=&userService& /& &/bean&&/beans&以上几个xml文件的内容暂且不要理会,继续往下看,你就自动明白的,不用我解释。4)日志部分:log4j.properties 、commons-logging.propertieslog4j.properties内容:# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.log4j.rootLogger=INFO, stdout, logfilelog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%nlog4j.appender.logfile=org.apache.log4j.RollingFileAppenderlog4j.appender.logfile.File=${firstssh.root}/WEB-INF/logs/firstssh.loglog4j.appender.logfile.MaxFileSize=512KB# Keep three backup files.log4j.appender.logfile.MaxBackupIndex=3# Pattern to output: date priority [category] - messagelog4j.appender.logfile.layout=org.apache.log4j.PatternLayoutlog4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n# OpenSymphony .opensymphony=INFOlog4j.logger.org.apache.struts2=INFO# Spring Stufflog4j.logger.org.springframework=INFO# Hibernate Stufflog4j.logger.org.hiberante=INFOcommons-logging.properties内容:mons.logging.Log = mons.logging.impl.Log4JLogger&?xml version=&1.0& encoding=&UTF-8&?&&web-app xmlns=&/xml/ns/j2ee&xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&xsi:schemaLocation=&/xml/ns/j2ee /xml/ns/j2ee/web-app_2_4.xsd&version=&2.4&& &display-name&firstssh&/display-name& &description&this is a simple example&/description& &context-param&&param-name&webAppRootKey&/param-name&&param-value&firstssh.root&/param-value& &/context-param&&context-param&&param-name&contextConfigLocation&/param-name&&param-value&/WEB-INF/applicationContext-*.xml,/WEB-INF/action-servlet.xml&/param-value& &/context-param& &context-param&&param-name&log4jConfigLocation&/param-name&&param-value&/WEB-INF/log4j.properties&/param-value& &/context-param& &listener&&listener-class&org.springframework.web.util.Log4jConfigListener&/listener-class& &/listener& &!-- 用于初始化Spring容器的Listener --& &listener&
&listener-class&org.springframework.web.context.ContextLoaderListener&/listener-class& &/listener& &!-- 定义整合SiteMesh必须的ActionContextCleanUp Filter&filter&&filter-name&struts-cleanup&/filter-name&&filter-class&org.apache.struts2.dispatcher.ActionContextCleanUp&/filter-class& &/filter&--& &!-- 定义Struts2的FilterDispathcer的Filter --& &filter&
&filter-name&struts2&/filter-name&
&filter-class&org.apache.struts2.dispatcher.FilterDispatcher&/filter-class& &/filter& &!-- &filter-mapping&
&filter-name&struts-cleanup&/filter-name&
&url-pattern&/*&/url-pattern& &/filter-mapping&--& &!-- FilterDispatcher用来初始化struts2并且处理所有的WEB请求。 --& &filter-mapping&
&filter-name&struts2&/filter-name&
&url-pattern&/*&/url-pattern& &/filter-mapping&
&!-- 这是一个产生验证码的servlet --& &servlet&
&servlet-name&img&/servlet-name&
&servlet-class&com.firstssh.servlet.AuthImg&/servlet-class& &/servlet& &servlet-mapping&
&servlet-name&img&/servlet-name&
&url-pattern&/authImg&/url-pattern& &/servlet-mapping& &filter&
&filter-name&encodingFilter&/filter-name&
&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&
&init-param&
&param-name&encoding&/param-name&
&param-value&utf-8&/param-value&
&/init-param&
&filter-mapping&
&filter-name&encodingFilter&/filter-name&
&url-pattern&*.action&/url-pattern&
&/filter-mapping&
&filter-mapping&
&filter-name&encodingFilter&/filter-name&
&url-pattern&*.jsp&/url-pattern&
&/filter-mapping& &filter&
&filter-name&hibernateFilter&/filter-name&
&filter-class&org.springframework.orm.hibernate3.support.OpenSessionInViewFilter&/filter-class&
&filter-mapping&
&filter-name&hibernateFilter&/filter-name&
&url-pattern&*.action&/url-pattern&
&/filter-mapping&
&!-- DWR Servlet--&&servlet& &servlet-name&dwr-invoker&/servlet-name& &servlet-class&org.directwebremoting.servlet.DwrServlet&/servlet-class& &init-param& &param-name&debug&/param-name& &param-value&true&/param-value& &/init-param&&/servlet&&servlet-mapping& &servlet-name&dwr-invoker&/servlet-name& &url-pattern&/dwr/*&/url-pattern&&/servlet-mapping& &session-config&
&session-timeout&10&/session-timeout&
&/session-config&
&welcome-file-list& &welcome-file&index.jsp&/welcome-file&&/welcome-file-list&&error-page& &error-code&401&/error-code& &location&/401.htm&/location&&/error-page&&error-page& &error-code&403&/error-code& &location&/403.htm&/location&&/error-page&&error-page& &error-code&404&/error-code& &location&/404.htm&/location&&/error-page&&error-page& &error-code&500&/error-code& &location&/500.htm&/location&&/error-page&&/web-app&6)dwr.xml&?xml version=&1.0& encoding=&UTF-8&?&&!DOCTYPE dwr PUBLIC &-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN& &http://getahead.org/dwr/dwr20.dtd&&&dwr& &!-- 检查用户名是否存在 ValidateName的映射文件--& &allow& &createcreator=&spring& javascript=&ValidateName& &
&param name=&beanName& value=&validateName&/&
&include method=&valid&/& &/create&
&/allow&&/dwr&三、&开始编码:以下是DAO部分的核心代码:IGenericDao.java内容如下:/*** * @author &a href=&mailto:&&flustar&/a& * @version 1.0* Creation date: Dec 23, :21 PM */ package mon. import java.io.S import java.util.C import java.util.L import org.hibernate.LockM import org.hibernate.criterion.DetachedC import org.springframework.dao.DataAccessE import mon.util.PaginationS public interface IGenericDao &T, ID extends Serializable& { public T load(ID id) throws DataAccessE public T get(ID id)throws DataAccessE public boolean contains(T t) throws DataAccessE public void refresh(T t, LockMode lockMode) throws DataAccessE public void refresh(T t) throws DataAccessE public Serializable save(T t) throws DataAccessE public void saveOrUpdate(T t) throws DataAccessE public void saveOrUpdateAll(Collection&T& entities) throws DataAccessE public void update(T t, LockMode lockMode) throws DataAccessE public void update(T t) throws DataAccessE public void delete(T t, LockMode lockMode) throws DataAccessE public void delete(T t) throws DataAccessE public void deleteAll(Collection&T& entities) throws DataAccessE public List&T& find(String queryString, Object value) throws DataAccessE public List&T& find(String queryString, Object[] values) throws DataAccessE public List&T& find(String queryString) throws DataAccessE public List&T& list()throws DataAccessEpublic List&T& findByNamedQuery(String queryName)throws DataAccessEpublic List&T& findByNamedQuery(String queryName, Object value)throws DataAccessEpublic List&T& findByNamedQuery(String queryName, Object[] values)throws DataAccessEpublic PaginationSupport findPageByCriteria( final DetachedCriteria detachedCriteria, final int pageSize, final int startIndex); public PaginationSupport findPageByQuery(final String hql, final String countHql, final int pageSize, final int startIndex);}GenericDao.java内容如下:/*** * @author &a href=&mailto:&&flustar&/a& * @version 1.0* Creation date: Dec 23, :56 PM */ package mon. import java.io.S import java.lang.reflect.ParameterizedT import java.sql.SQLE import java.util.C import java.util.L import mons.logging.L import mons.logging.LogF import org.hibernate.C import org.hibernate.HibernateE import org.hibernate.LockM import org.hibernate.Q import org.hibernate.S import org.hibernate.criterion.DetachedC import org.hibernate.criterion.P import org.springframework.dao.DataAccessE import org.springframework.orm.hibernate3.HibernateC import org.springframework.orm.hibernate3.support.HibernateDaoS import mon.util.PaginationS@SuppressWarnings( & unchecked & ) public class GenericDao &T, ID extends Serializable& extends HibernateDaoSupport implements IGenericDao &T, ID& ]; logger.debug(&T class=& + entityClass.getName()); } return entityC } public void saveOrUpdate(T t) throws DataAccessException { this.getHibernateTemplate().saveOrUpdate(t); } public T load(ID id) throws DataAccessException { T load=(T) getHibernateTemplate().load(getEntityClass(), id); } public T get(ID id) throws DataAccessException { T load=(T) getHibernateTemplate().get(getEntityClass(), id); } public boolean contains(T t) throws DataAccessException { return getHibernateTemplate().contains(t); } public void delete(T t, LockMode lockMode) throws DataAccessException { getHibernateTemplate().delete(t, lockMode); } public void delete(T t) throws DataAccessException { getHibernateTemplate().delete(t); } public void deleteAll(Collection&T& entities) throws DataAccessException { getHibernateTemplate().deleteAll(entities); } public List&T& find(String queryString, Object value) throws DataAccessException { List&T& find=(List&T&) getHibernateTemplate() .find(queryString, value); } public List&T& find(String queryString, Object[] values) throws DataAccessException { List&T& find=(List&T&) getHibernateTemplate().find(queryString, values); } public List&T& find(String queryString) throws DataAccessException { return (List&T&) getHibernateTemplate().find(queryString); } public void refresh(T t, LockMode lockMode) throws DataAccessException { getHibernateTemplate().refresh(t, lockMode); } public void refresh(T t) throws DataAccessException { getHibernateTemplate().refresh(t); } public Serializable save(T t) throws DataAccessException { return getHibernateTemplate().save(t); } public void saveOrUpdateAll(Collection&T& entities) throws DataAccessException { getHibernateTemplate().saveOrUpdateAll(entities); } public void update(T t, LockMode lockMode) throws DataAccessException { getHibernateTemplate().update(t, lockMode); } public void update(T t) throws DataAccessException { getHibernateTemplate().update(t); } public List&T& list() throws DataAccessException { return getHibernateTemplate().loadAll(getEntityClass()); } public List&T& findByNamedQuery(String queryName) throws DataAccessException { return getHibernateTemplate().findByNamedQuery(queryName); } public List&T& findByNamedQuery(String queryName, Object value) throws DataAccessException { return getHibernateTemplate().findByNamedQuery(queryName, value); } public List&T& findByNamedQuery(String queryName, Object[] values) throws DataAccessException { return getHibernateTemplate().findByNamedQuery(queryName, values); } public PaginationSupport findPageByCriteria( final DetachedCriteria detachedCriteria, final int pageSize, final int startIndex) { return (PaginationSupport) getHibernateTemplate().execute( new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Criteria criteria=detachedCriteria .getExecutableCriteria(session); int totalCount=((Integer) criteria.setProjection( Projections.rowCount()).uniqueResult()) .intValue(); criteria.setProjection(null); List items=criteria.setFirstResult(startIndex) .setMaxResults(pageSize).list(); PaginationSupport ps=new PaginationSupport(items, totalCount, pageSize, startIndex); } }, true); } public PaginationSupport findPageByQuery( final String hql, final String countHql,final int pageSize,final int startIndex){return (PaginationSupport)getHibernateTemplate().execute(new HibernateCallback() {public Object doInHibernate(Session session) throws HibernateException, SQLException {int totalCount=((Integer)session.createQuery(countHql).iterate().next()).intValue();Query query= session.createQuery(hql); query.setFirstResult(startIndex);query.setMaxResults(pageSize);List items=query.list(); PaginationSupport ps=new PaginationSupport(items, totalCount, pageSize, startIndex);}},true);}}呵呵,使用了泛型,以后每建立一个Dao都要建立相应的dao接口和实现类,如本例中的IUserDao和UserDao。/*** * @author &a href=&mailto:&&flustar&/a& * @version 1.0* Creation date: Dec 24, :57 AM */package com.firstssh.import java.util.Limport mon.dao.IGenericDimport com.firstssh.model.Upublic interface IUserDao extends IGenericDao&User, Integer& {public User getUserByName(String username);public List&User& findAllUser();public User findUserByNameAndPass(String username, String password);}/*** * @author &a href=&mailto:&&flustar&/a& * @version 1.0* Creation date: Dec 24, :48 AM */package com.firstssh.dao.import java.util.Limport mon.dao.GenericDimport com.firstssh.dao.IUserDimport com.firstssh.model.Upublic class UserDao extends GenericDao&User,Integer& implements IUserDao{ public List&User& findAllUser() {
return (List&User&)find(&from User&); } public User findUserByNameAndPass(String username, String password) {
Object[] params=new Object[]{username,password};
List&User& userList=find(&from User as user where user.username=? and user.password=? &,params);
if(userList!=null&&userList.size()&=1){
return userList.get(0);
} public User getUserByName(String username) {
List&User& userList=find(&from User as user where user.username=?&,username);
if(userList!=null&&userList.size()&=1){
return userList.get(0);
}}还有好多文件的代码没有贴出来,我实在不忍心再复制、粘贴下去了(浪费大家那么多时间),有兴趣的可以下载这个例子的源代码(由于这个例子牵涉的jar包比较大我就不把它们放进去了),我想以上这些文件的内容我就不用解释了,因为大家都学过SSH。本人初次整合它们,并没有使用这个整合方案做过项目,一定还有某些方面考虑的还不是太成熟,哪位大侠看了,还请多多批评指正,也希望谁有更好的整合方案,也共享一下,大家共同进步,共同提高!~^_^
最新教程周点击榜
微信扫一扫

我要回帖

更多关于 红米note7支持27w快充吗 的文章

 

随机推荐