首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

SSH整合搭建有关问题(使用Annotation)

2012-08-25 
SSH整合搭建问题(使用Annotation)三大框架SSH所用jar包及项目机构图:见附件图片文件 struts.xml?xml vers

SSH整合搭建问题(使用Annotation)
三大框架SSH所用jar包及项目机构图:见附件图片

文件 struts.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><constant name="struts.objectFactory" value="spring"></constant>    <package name="crs" extends="struts-default">        <action name="login" method="login">            <result name="success">/WEB-INF/pages/userManagement.jsp</result>            <result name="input">login.jsp</result>            <result name="error">login.jsp</result>        </action>    </package>    </struts>  


文件 (Spring) applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:context="http://www.springframework.org/schema/context"       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"       default-lazy-init="true">              <!-- <bean ref="dataSource"/>       <property name="annotatedClasses">       <list>       <value>com.crs.model.User</value>       </list>       </property>       </bean>           <bean id="dataSource" destroy-method="close">        <property name="driverClassName" value="${jdbc.driverClassName}"/>        <property name="url" value="${jdbc.url}"/>        <property name="username" value="${jdbc.username}"/>        <property name="password" value="${jdbc.password}"/>        <property name="maxActive" value="100"/>        <property name="maxWait" value="1000"/>        <property name="poolPreparedStatements" value="true"/>        <property name="defaultAutoCommit" value="false"/>    </bean>                   <bean id="propertyConfigurer" value="true"/>        <property name="locations">            <list>                <value>classpath:jdbc.properties</value>            </list>        </property>    </bean>              <bean name="loginAction" scope="prototype"/>       </beans>


PAS系统添加事务管理:文件 (Spring) applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:aop="http://www.springframework.org/schema/aop"       xmlns:context="http://www.springframework.org/schema/context"       xmlns:tx="http://www.springframework.org/schema/tx"       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"       default-lazy-init="true">              <context:component-scan base-package="com.pas"/>              <bean id="sessionFactory" ref="dataSource"/>       <property name="annotatedClasses">       <list>       <value>com.pas.model.User</value>       <value>com.pas.model.PaperBasicInfo</value>       <value>com.pas.model.Question</value>       <value>com.pas.model.QuestionStyle</value>       <value>com.pas.model.StudentScore</value>       </list>       </property>       <property name="hibernateProperties">       <value>       hibernate.show_sql=falsehibernate.format_sql=true</value>    </property>       </bean>           <bean id="dataSource" destroy-method="close">        <property name="driverClassName" value="${jdbc.driverClassName}"/>        <property name="url" value="${jdbc.url}"/>        <property name="username" value="${jdbc.username}"/>        <property name="password" value="${jdbc.password}"/>        <property name="maxActive" value="100"/>        <property name="maxWait" value="1000"/>        <property name="poolPreparedStatements" value="true"/>        <property name="defaultAutoCommit" value="true"/>    </bean>         <!-- 配置事务管理器-->    <bean id="transactionManager" ref="sessionFactory"></property></bean><!-- 配置事务传播特性 --><tx:advice id="allMethod" transaction-manager="transactionManager"><tx:attributes><tx:method name="*" propagation="REQUIRED" rollback-for="Throwable"/></tx:attributes></tx:advice><!-- AOP注入事务 --><aop:config><!-- <aop:pointcut id="all_bs_method" expression="execution(* com.pas.service.impl.*Impl.*(..))"/><aop:advisor advice-ref="allMethod" pointcut-ref="all_bs_method"/> --><aop:advisor advice-ref="allMethod" pointcut="execution(* *..service.impl.*Impl.*(..))"/></aop:config>              <bean id="propertyConfigurer" value="true"/>        <property name="locations">            <list>                <value>classpath:jdbc.properties</value>            </list>        </property>       </bean>       </beans>


文件 hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"                                         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory name="sessionFactory">  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/crs</property>  <property name="hibernate.connection.username">root</property>  <property name="hibernate.connection.password">root</property>  <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>  <property name="hibernate.show_sql">false</property>  <property name="hibernate.format_sql">true</property>  <property name="hbm2ddl.auto">none</property>  <property name="current_session_context_class">thread</property>  <mapping name="code">#Mysql 5.5jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/crsjdbc.username=rootjdbc.password=roothibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect#hibernate.dialect=org.hibernate.dialect.SQLServerDialect#hibernate.dialect=com.capgemini.lamp.util.SQLServer2008Dialect# Needed by Hibernate3 Maven Plugin defined in pom.xml#hibernate.connection.username=${jdbc.username}#hibernate.connection.password=${jdbc.password}#hibernate.connection.url=${jdbc.url}#hibernate.connection.driver_class=${jdbc.driverClassName}




然后在MVC的Dao中的用法:
package com.crs.dao.impl;import java.util.ArrayList;import java.util.List;import javax.annotation.Resource;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.AnnotationConfiguration;import org.hibernate.cfg.Configuration;import org.hibernate.criterion.DetachedCriteria;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.orm.hibernate3.HibernateTemplate;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import org.springframework.stereotype.Repository;import com.crs.dao.UserDao;import com.crs.model.User;//TODO Add class/interface import here and remove this line./** * TODO Add class/interface description here and remove this line. *  * @author BILLYANG, create on 2012-4-24 * Revision History: *      TODO Revised by XXXX on 201x/xx/xx, modified xxx */@Repository("userDao")public class UserDaoImpl implements UserDao {        /*@Autowired    private SessionFactory sessionFactory;*/        private HibernateTemplate hibernateTemplate;           @Resource       public void setSessionFactory(SessionFactory sessionFactory) {           this.hibernateTemplate = new HibernateTemplate(sessionFactory);       }          @Override    public User get(Long id) {        /*Session session = sessionFactory.openSession();        User result = (User) session.get(User.class, id);        session.close();        return result;*/        return hibernateTemplate.get(User.class, id);        /*Configuration config = new AnnotationConfiguration();        config.configure();        SessionFactory sessionFactory=config.buildSessionFactory();        Session session=sessionFactory.getCurrentSession();        session.beginTransaction();        User result  = (User) session.get(User.class, 5);        session.getTransaction().commit();        return result;*/    }    @SuppressWarnings("unchecked")    @Override    public List<User> getAll() {        List<User> userList = new ArrayList<User>();        DetachedCriteria criteria = DetachedCriteria.forClass(User.class);        List<User> result = hibernateTemplate.findByCriteria(criteria);        if (result != null && !result.isEmpty()) {            userList = result;        }        return userList;    }        }



使用Mysql数据库简单建表语句:
drop database if exists crs;create database crs;use crs;create table user(id bigint auto_increment primary key,username varchar(50),password varchar(50),realname varchar(50));insert into user(username,password,realname) values('admin','admin','administrator');insert into user(username,password,realname) values('bill','bill','yangfan');insert into user(username,password,realname) values('allen','allen','zhangdong');insert into user(username,password,realname) values('john','john','qiaoshili');insert into user(username,password,realname) values('girl','girl','nvhai');--#insert into user(username,password,realname) values('bill','bill','杨帆');



以上为搭建SSH框架重要部分,希望能对以后有所帮助

热点排行