SSH整合(spingmvc,spring,hibernate)以及Dao层抽取方法
来源:互联网 发布:看股票的软件 编辑:程序博客网 时间:2024/06/07 22:19
拯救地球已经很累了,我不想再说废话.
pom文件,详见该分类下pom坐标
springmvc
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "> <description>Spring MVC Configuration</description> <!-- 加载国际化配置文件 --> <context:property-placeholder location="classpath:ssh.properties" /> <!-- springmvc配置 --> <!-- 扫描controller --> <context:component-scan base-package="com.my.controller" /> <!--避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 --> <!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> JSON转换器 </list> </property> </bean> --> <!-- springmvc jsp视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 以viewNames和order来搭配,从来进行多视图的配置 --> <property name="viewNames"> <list> <value>*jsp</value> </list> </property> <property name="prefix" value="${jsp.prefix}" /> <property name="suffix" value="${jsp.suffix}" /> <property name="order" value="0" /> </bean> <!-- springmvc配置器映射器 --> <mvc:annotation-driven /> <!-- multipart解析器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="100000000000" /> </bean></beans>
spring-context.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "> <description>Spring Configuration</description> <!-- 加载配置属性文件 --> <context:property-placeholder location="classpath:ssh.properties" /> <!-- 使用Annotation自动注册Bean,解决事物失效问题:在主容器中不扫描@Controller注解,在SpringMvc中只扫描@Controller注解。 --> <context:component-scan base-package="com.my"><!-- base-package 如果多个,用“,”分隔 --> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <!-- 数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${oracle.driver}" /> <property name="url" value="${oracle.constr}" /> <property name="username" value="${oracle.name}" /> <property name="password" value="${oracle.password}" /> </bean> <!-- <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${oracle.driver}"/> <property name="jdbcUrl" value="${oracle.constr}"/> <property name="user" value="${oracle.name}"/> <property name="password" value="${oracle.password}"/> </bean> --> <!-- 配置本地会话工厂bean --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 注入hibernate相关属性 --> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="javax.persistence.validation.mode">none</prop> <prop key="hibernate.dbcp.ps.maxActive">100 </prop> <prop key="hibernate.dbcp.ps.whenExhaustedAction">1 </prop> <prop key="hibernate.dbcp.ps.maxWait">1200 </prop> <prop key="hibernate.dbcp.ps.maxIdle">10 </prop> </props> </property> <!-- 注入hbm映射文件 --> <property name="mappingDirectoryLocations"> <list> <value>classpath:/com/my/bean</value> </list> </property> </bean> <!-- 事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- 支持事务注解 --> <tx:annotation-driven transaction-manager="transactionManager" /></beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>Archetype Created Web Application</display-name> <!-- spring配置文件 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:spring-context*.xml</param-value> </context-param> <!-- spring监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- sessoin过滤器 --> <filter> <filter-name>openSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>openSessionInViewFilter</filter-name> <url-pattern>/</url-pattern> </filter-mapping> <!-- spring字符过滤器 --> <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> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- springmvc的servlet --> <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-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <session-config> <session-timeout>15</session-timeout> </session-config></web-app>
Dao层抽取
package com.my.dao;import java.io.Serializable;import java.util.List;import org.hibernate.criterion.DetachedCriteria;public interface BaseDao<T> { /** * 增 */ public void save(T entity); /** * 改 */ public void update(T entity); /** * 删 */ public void delete(T entity); /** * 查 */ public T find(Serializable id); /** * 查询所有 */ public List<T> findAll(); /** * 离线条件查询 */ public List<T> findByConditions(DetachedCriteria criteria); /** * 命名空间查询 */ public List<T> findByNamedQuery(String queryName, Object...objs); /** * 命名空间修改 */ public void executeNamedQuery(String queryName, Object...ojbs);}
package com.my.dao;import java.io.Serializable;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util.List;import javax.annotation.Resource;import org.hibernate.Query;import org.hibernate.SessionFactory;import org.hibernate.classic.Session;import org.hibernate.criterion.DetachedCriteria;//spring提供的简化持久层操作的类import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T> { /** * 父类需要注入sessionFacotry注解 * @param sessionFactory */ @Resource public void setSF(SessionFactory sessionFactory) { super.setSessionFactory(sessionFactory); } private Class<T> beanClass; public BaseDaoImpl() { ParameterizedType parameterizedType = (ParameterizedType) this.getClass().getGenericSuperclass(); Type[] types = parameterizedType.getActualTypeArguments(); beanClass = (Class<T>) types[0]; } public void save(T entity) { this.getHibernateTemplate().save(entity); } public void update(T entity) { this.getHibernateTemplate().update(entity); } public void delete(T entity) { this.getHibernateTemplate().delete(entity); } public T find(Serializable id) { return this.getHibernateTemplate().get(beanClass, id); } public List<T> findAll() { String hql = "FROM " +beanClass.getSimpleName(); return (List<T>) this.getHibernateTemplate().find(hql); } public List<T> findByConditions(DetachedCriteria criteria) { return (List<T>) this.getHibernateTemplate().findByCriteria(criteria); } public List<T> findByNamedQuery(String queryName, Object... objs) { return (List<T>) this.getHibernateTemplate().findByNamedQuery(queryName, objs); } public void executeNamedQuery(String queryName, Object... objs) { Session session = this.getSessionFactory().openSession(); Query query = session.getNamedQuery(queryName); if (objs != null && objs.length > 0) { int i = 0; for (Object object : objs) { query.setParameter(i++, object); } } query.executeUpdate(); }}
package com.my.dao;import com.my.bean.User;public interface UserDao extends BaseDao<User>{}
package com.my.dao;import org.springframework.stereotype.Repository;import com.my.bean.User;@Repositorypublic class UserDaoImpl extends BaseDaoImpl<User> implements UserDao{}
阅读全文
0 0
- SSH整合(spingmvc,spring,hibernate)以及Dao层抽取方法
- SSH中DAO层抽取
- 新版本中spring与hibernate整合dao层调用session的方法
- OA系统Dao层抽取方法总结
- dao层抽取公共的方法
- 哥发明的 一个ssh整合时解决dao层代码冗余问题的"一点儿不漏"型抽取法!!!!
- Spring+Hibernate整合框架下DAO的数据库访问方法
- java后台开发Maven例子--整合spring,spingmvc,hibernate
- 虚拟数据层 Struts2、Hibernate、Spring整合的泛型DAO Version 2010.9.27
- 虚拟数据层:Struts2、Hibernate、Spring整合的泛型DAO
- ssh框架整合:struts2+hibernate+spring(二):编写domain,dao,service,
- dao接口层抽取增删改查方法
- SSM整合(spingmvc,spring,mybatis)
- 整合SSH Struts+spring+hibernate
- SSH框架spring整合hibernate
- ssh 整合 (spring + Struts2 + hibernate)
- ssh(Spring struts2 hibernate)整合
- 【SSH】Spring与Hibernate整合
- Android入门学习笔记整理(四)
- STL中的map容器的一点总结
- Hinton Neural Networks课程笔记2a:三种主要的神经网络框架之前向网络、循环神经网络和对称网络
- hide handkerchief HDU
- Android本地广播LocalBroadcast完全解析
- SSH整合(spingmvc,spring,hibernate)以及Dao层抽取方法
- 做网站之前,你必须思考的4个问题
- Java连接redis
- MVG读书笔记——几何变换续
- 安卓开发 第十四篇 视频播放
- 使用wamp中的Apache创建虚拟主机
- 判断点是否在多边形内部
- 神奇密码锁
- Josephus问题:ArrayList实现