- package com.org.service.impl;
- import java.util.List;
- import javax.annotation.Resource;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import com.org.dao.UserDao;
- import com.org.entity.User;
- import com.org.service.UserService;
- /**
- *@Author:liangjilong
- *@Date:2014-2-25
- *@Version:1.0
- *@Description:
- */
- @Service
- public class UserServiceImpl implements UserService{
- @Resource//@Autowired
- private UserDao userDao;
- public List<User> getListUsers() {
- return userDao.getListUsers();
- }
- }
- package com.org.action;
- import java.util.List;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.servlet.ModelAndView;
- import com.org.entity.User;
- import com.org.service.UserService;
- import com.org.utils.servlet.ServletUtils;
- /**
- *@Author:liangjilong
- *@Date:2014-2-25
- *@Version:1.0
- *@Description:
- */
- @Controller
- public class UserController{
- @Resource
- private UserService userService;
- @RequestMapping(value="/userList1.do")
- public String geUserList1(HttpServletRequest request ,HttpServletResponse response) throws Exception {
- List<User> lists=userService.getListUsers();
- if(lists!=null){
- //request.setAttribute("userList", lists);
- ServletUtils.setRequestValue("userList", lists);
- }
- return "/user/userList";//user文件下的userList.jsp
- }
- @RequestMapping(value="/userList2.do")
- public ModelAndView geUserList2(HttpServletRequest request ,HttpServletResponse response) throws Exception {
- List<User> lists=userService.getListUsers();
- if(lists!=null){
- //request.setAttribute("userList", lists);
- ServletUtils.setRequestValue("userList", lists);
- }
- return new ModelAndView("/user/userList");
- }
- }
- package com.org.dao;
- import java.util.List;
- import com.org.entity.User;
- /**
- *@Author:liangjilong
- *@Date:2014-2-25
- *@Version:1.0
- *@Description:
- */
- public interface UserDao {
- public List<User> getListUsers();
- }
- package com.org.dao.impl;
- import java.util.List;
- import org.springframework.stereotype.Component;
- import org.springframework.stereotype.Repository;
- import com.org.HibernateDaoImpl;
- import com.org.dao.UserDao;
- import com.org.entity.User;
- /**
- *@Author:liangjilong
- *@Date:2014-2-25
- *@Version:1.0
- *@Description:
- */
- @Repository//@Component
- @SuppressWarnings("all")
- public class UserDaoImpl extends HibernateDaoImpl implements UserDao {
- public List<User> getListUsers() {
- String hql="From User";
- //List<User> lists=hibernateTemplate.find(hql);//方法一
- List<User> lists=getHibernateTemplate().find(hql);//方法二
- return lists;
- }
- }
- package com.org.service;
- import java.util.List;
- import com.org.entity.User;
- /**
- *@Author:liangjilong
- *@Date:2014-2-25
- *@Version:1.0
- *@Description:
- */
- public interface UserService {
- public List<User> getListUsers();
- }
- package com.org;
- import java.io.Serializable;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.Iterator;
- import java.util.List;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import javax.annotation.PostConstruct;
- import javax.annotation.Resource;
- import org.apache.commons.lang3.StringUtils;
- import org.hibernate.HibernateException;
- import org.hibernate.Query;
- import org.hibernate.Session;
- import org.springframework.orm.hibernate3.HibernateCallback;
- import org.springframework.orm.hibernate3.HibernateTemplate;
- import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
- import org.springframework.util.CollectionUtils;
- import org.springframework.util.ObjectUtils;
- public class HibernateDaoImpl extends HibernateDaoSupport implements
- IHibernateDao {
- /**
- * 这个和整合ibatis是一样的
- */
- @Resource(name = "hibernateTemplate")
- protected HibernateTemplate hibernateTemplate;
- @PostConstruct
- public void initHibernateTemplate() {
- super.setHibernateTemplate(hibernateTemplate);
- }
- public Integer count(final String hql) {
- if (StringUtils.isEmpty(hql)) {
- throw new IllegalStateException("hql is null");
- }
- Object result = this.getHibernateTemplate().execute(
- new HibernateCallback<Object>() {
- public Object doInHibernate(Session session)
- throws HibernateException, SQLException {
- return session.createQuery(hql).uniqueResult();
- }
- });
- return ((Long) result).intValue();
- }
- public int bulkUpdate(String queryString, Object[] values) {
- return getHibernateTemplate().bulkUpdate(queryString, values);
- }
- public <E> void deleteAll(Collection<E> entities) {
- getHibernateTemplate().deleteAll(entities);
- }
- public Integer count(final String hql, final Object... obj) {
- if (ObjectUtils.isEmpty(obj)) {
- return count(hql);
- } else {
- if (StringUtils.isEmpty(hql)) {
- throw new IllegalStateException("hql is null");
- }
- Object result = this.getHibernateTemplate().execute(
- new HibernateCallback<Object>() {
- public Object doInHibernate(Session session)
- throws HibernateException, SQLException {
- Query query = session.createQuery(hql);
- for (int i = 0; i < obj.length; i++) {
- query.setParameter(i, obj[i]);
- }
- return query.uniqueResult();
- }
- });
- return ((Long) result).intValue();
- }
- }
- public <E> void delete(E entity) {
- getHibernateTemplate().delete(entity);
- }
- public <E> boolean exist(Class<E> c, Serializable id) {
- if (get(c, id) != null)
- return true;
- return false;
- }
- public <E> List<E> find(String queryString) {
- return getHibernateTemplate().find(queryString);
- }
- public <E> List<E> find(Class<E> bean) {
- String hql = "FROM " + bean.getSimpleName();
- return find(hql);
- }
- public List<?> find(String queryString, Object[] values) {
- if (ObjectUtils.isEmpty(values)) {
- return find(queryString);
- } else {
- return getHibernateTemplate().find(queryString, values);
- }
- }
- public <E> E findUniqueEntity(final String queryString,
- final Object... params) {
- if (StringUtils.isEmpty(queryString)) {
- throw new IllegalStateException("queryString is null");
- }
- if (ObjectUtils.isEmpty(params)) {
- return (E) getHibernateTemplate().execute(
- new HibernateCallback<Object>() {
- public Object doInHibernate(Session session) {
- return session.createQuery(queryString)
- .uniqueResult();
- }
- });
- } else {
- return (E) getHibernateTemplate().execute(
- new HibernateCallback<Object>() {
- public Object doInHibernate(Session session) {
- Query query = session.createQuery(queryString);
- for (int i = 0; i < params.length; i++) {
- query.setParameter(i, params[i]);
- }
- return query.uniqueResult();
- }
- });
- }
- }
- public <E> List<E> findByNamedQuery(String queryName) {
- if (StringUtils.isEmpty(queryName)) {
- throw new IllegalArgumentException("queryName is null");
- }
- return getHibernateTemplate().findByNamedQuery(queryName);
- }
- public <E> List<E> findByNamedQuery(String queryName, Object... values) {
- if (ObjectUtils.isEmpty(values)) {
- return this.findByNamedQuery(queryName);
- }
- return getHibernateTemplate().findByNamedQuery(queryName, values);
- }
- public <E> List<E> findByPage(final String hql, final Integer startRow,
- final Integer pageSize, final Object... params) {
- if (StringUtils.isEmpty(hql)) {
- throw new IllegalStateException("hql is null");
- }
- if (ObjectUtils.isEmpty(params)) {
- return getHibernateTemplate().executeFind(
- new HibernateCallback<Object>() {
- public Object doInHibernate(Session session) {
- return session.createQuery(hql)
- .setFirstResult(startRow)
- .setMaxResults(pageSize).list();
- }
- });
- } else {
- return getHibernateTemplate().executeFind(
- new HibernateCallback<Object>() {
- public Object doInHibernate(Session session) {
- Query query = session.createQuery(hql);
- for (int i = 0; i < params.length; i++) {
- query.setParameter(i, params[i]);
- }
- return query.setFirstResult(startRow)
- .setMaxResults(pageSize).list();
- }
- });
- }
- }
- public <E> E get(Class<E> entityClass, Serializable id) {
- this.getHibernateTemplate().setCacheQueries(true);
- return this.getHibernateTemplate().get(entityClass, id);
- }
- public <E> Iterator<E> iterate(String queryString) {
- return getHibernateTemplate().iterate(queryString);
- }
- public <E> Iterator<E> iterate(String queryString, Object... values) {
- return getHibernateTemplate().iterate(queryString, values);
- }
- public <E> E load(Class<E> entityClass, Serializable id) {
- return getHibernateTemplate().load(entityClass, id);
- }
- public <E> void persist(E entity) {
- getHibernateTemplate().persist(entity);
- }
- public <E> void refresh(E entity) {
- getHibernateTemplate().refresh(entity);
- }
- public <E> Serializable save(E entity) {
- if (entity == null) {
- throw new IllegalArgumentException("entity is null");
- }
- return getHibernateTemplate().save(entity);
- }
- public <E> void saveOrUpdate(E entity) {
- getHibernateTemplate().saveOrUpdate(entity);
- }
- public <E> void saveOrUpdateAll(Collection<E> entities) {
- getHibernateTemplate().saveOrUpdateAll(entities);
- }
- public <E> void update(E entity) {
- getHibernateTemplate().update(entity);
- }
- public <T> void updateAll(Collection<T> entities) {
- if (CollectionUtils.isEmpty(entities)) {
- throw new IllegalArgumentException("entities is null");
- }
- int i = 0;
- for (Object obj : entities) {
- if (i % 30 == 0) {
- getHibernateTemplate().flush();
- getHibernateTemplate().clear();
- }
- getHibernateTemplate().update(obj);
- i++;
- }
- }
- public <E> void saveAll(Collection<E> entities) {
- if (CollectionUtils.isEmpty(entities)) {
- throw new IllegalArgumentException("entities is null");
- }
- int i = 0;
- for (E obj : entities) {
- if (i % 30 == 0) {
- getHibernateTemplate().flush();
- getHibernateTemplate().clear();
- }
- save(obj);
- i++;
- }
- }
- public <E> List<E> findByPage(String queryString, PageModel pageModel,
- List<?> params) {
- String hql = queryString;
- if (queryString.toLowerCase().indexOf("where") == -1) {
- Matcher m = Pattern.compile("and").matcher(queryString);
- if (m.find()) {
- hql = m.replaceFirst("where");
- } else {
- m = Pattern.compile("AND").matcher(queryString);
- if (m.find()) {
- hql = m.replaceFirst("WHERE");
- }
- }
- }
- int fromIndex = hql.toLowerCase().indexOf("from");
- int orderIndex = hql.toLowerCase().indexOf("group by");
- String hqlCount = "select count(*) "
- + hql.substring(fromIndex,
- orderIndex > 0 ? orderIndex : hql.length());
- int totalCount = (params == null || params.isEmpty()) ? count(hqlCount)
- : count(hqlCount, params.toArray());
- pageModel.setRecordCount(totalCount);
- if (totalCount == 0) {
- return new ArrayList<E>();
- }
- Object[] temps = (params == null || params.isEmpty()) ? new Object[] {}
- : params.toArray();
- return this.findByPage(hql, pageModel.getStartRow(),
- pageModel.getPageSize(), temps);
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xmlns:oscache="http://www.springmodules.org/schema/oscache"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.1.xsd
- http://www.springframework.org/schema/aop
- http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
- http://www.springmodules.org/schema/oscache
- http://www.springmodules.org/schema/cache/springmodules-oscache.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
- <!--
- 对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能
- mvc:annotation-driven
- -->
- <mvc:annotation-driven/>
- <!-- 扫描包 -->
- <context:annotation-config/>
- <context:component-scan base-package="com.org.*" />
- <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
- <property name="prefix" value="/jsp/" />
- <property name="suffix" value=".jsp" />
- </bean>
- <!-- 配置jdbc -->
- <bean class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
- <property name="locations">
- <value>classpath:properties/jdbc.properties</value>
- </property>
- </bean>
- <!-- 配置數據源 -->
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
- destroy-method="close">
- <property name="driverClassName" value="${jdbc.driver}" />
- <property name="url" value="${jdbc.url}" />
- <property name="username" value="${jdbc.username}" />
- <property name="password" value="${jdbc.password}" />
- <!-- 连接池启动时的初始值 -->
- <property name="initialSize" value="1"/>
- <property name="maxActive" value="500"/>
- <property name="maxIdle" value="2"/>
- <property name="minIdle" value="1"/>
- </bean>
- <!-- 配置sessionFactory
- 注解配置
- org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean
- 配置形式:
- org.springframework.orm.hibernate3.LocalSessionFactoryBean
- -->
- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <property name="packagesToScan">
- <list>
- <value>com.org.entity</value>
- </list>
- </property>
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">${hibernate.dialect}</prop>
- <prop key="hibernate.show_sql">true</prop>
- </props>
- </property>
- </bean>
- <!-- 配置hibernateTemplate -->
- <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
- <bean id="transactionManager"
- class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
- <!-- Spring AOP config配置切点 -->
- <aop:config>
- <aop:pointcut expression="execution(public * com.org.service.*.*(..))"
- id="bussinessService" />
- <aop:advisor advice-ref="txAdvice" pointcut-ref="bussinessService" />
- </aop:config>
- <!-- 配置那个类那个方法用到事务处理 -->
- <tx:advice id="txAdvice" transaction-manager="transactionManager">
- <tx:attributes>
- <tx:method name="get*" read-only="true" />
- <tx:method name="add*" propagation="REQUIRED" />
- <tx:method name="update*" propagation="REQUIRED" />
- <tx:method name="delete*" propagation="REQUIRED" />
- <tx:method name="*" propagation="REQUIRED" />
- </tx:attributes>
- </tx:advice>
- <!-- 这个映射配置主要是用来进行静态资源的访问 -->
- <mvc:resources mapping="/js/**" location="/js/" cache-period="31556926"/>
- <mvc:resources mapping="/resource/**" location="/resource/" />
- <mvc:resources mapping="/jsp/**" location="/jsp/" />
- </beans>
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
- <!--
- #####################################配置处理乱码#####################################
- -->
- <filter>
- <filter-name>encodingFilter</filter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>GBK</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>encodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <!--
- #####################################Spring MVC配置#################################
- application-servlet.xml,规定:xxx-servlet.xml
- -->
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <!--
- param-name必须要等于contextConfigLocation
- 默认的配置
- <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
- -->
- <param-value>classpath:spring-*.xml</param-value>
- </context-param>
- <servlet>
- <servlet-name>springMVC</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:spring-*.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>springMVC</servlet-name>
- <url-pattern>*.do</url-pattern>
- </servlet-mapping>
- <!--
- #####################################struts2配置#######################################
- -->
- <!-- 此配置在使用struts2 -->
- <filter>
- <filter-name>struts2</filter-name>
- <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <!--
- ################################使用freemaker模板中启动JSPSupportServlet#############################
- <servlet>
- <servlet-name>JspSupportServlet</servlet-name>
- <servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- -->
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- <welcome-file>index.htm</welcome-file>
- <welcome-file>index.jsp</welcome-file>
- <welcome-file>default.html</welcome-file>
- <welcome-file>default.htm</welcome-file>
- <welcome-file>default.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
源代码