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" class="loginAction" 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 class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
<bean id="annotationConfiguration" class="org.compass.annotations.config.CompassAnnotationsConfiguration"/>
-->

<context:component-scan base-package="com.crs"/>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="annotatedClasses">
<list>
<value>com.crs.model.User</value>
</list>
</property>
</bean>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 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" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>

<bean name="loginAction" class="com.crs.action.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" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" 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=false
hibernate.format_sql=true
</value>
</property>
</bean>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 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" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" 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" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreUnresolvablePlaceholders" 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 class="com.crs.model.User"/>
</session-factory>
</hibernate-configuration>


文件 jdbc.properties


#Mysql 5.5
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/crs
jdbc.username=root
jdbc.password=root

hibernate.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框架重要部分,希望能对以后有所帮助
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值