本文以spring2.5 mvc + hibernate3.0整合。 jar包资源链接:http://download.csdn.net/detail/upxiaofeng/7729243
1、文件目录
2、web.xml配置
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-servlet.xml</param-value> <!-- 此路径最好以绝对匹配 --> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- *.do 拦截所有请求 --> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 指定Spring Bean的配置文件所在目录。默认配置在WEB-INF目录下 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> </web-app>
2、servletName-servlet配置,本文是 spring-servlet.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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd"> <!-- 启用spring mvc 注解 --> <context:annotation-config /> <!-- 设置使用注解的类所在的包 --> <context:component-scan base-package="controller"></context:component-scan> <!-- 完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" /> </beans>
3、applicationContext.xml 配置
<?xml version="1.0" encoding="UTF-8"?> <!-- - Application context definition for JPetStore's business layer. - Contains bean references to the transaction manager and to the DAOs in - dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation"). --> <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: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/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- JDBC 配置 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"> </property> <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:test"> </property> <property name="username" value="test"></property> <property name="password" value="test"></property> </bean> <!-- sessionFactory 配置 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <!-- hibernate.dialect 不同的数据库有不同的配置 --> <prop key="hibernate.dialect"> org.hibernate.dialect.Oracle9Dialect </prop> </props> </property> <!-- *.hbm.xml 文件位置 --> <property name="mappingResources"> <list> <value>/controller/bean/Ibatis.hbm.xml</value> </list> </property> </bean> <!-- Dao的实现 --> <bean id="daoImp" class="dao.DaoImp"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" /> <tx:annotation-driven mode="aspectj" /> <aop:aspectj-autoproxy /> <bean id="service" class="service.Service"> <property name="daoImp" ref="daoImp" /> </bean> <bean id="Ibatis" class="controller.bean.Ibatis"> </bean> <bean id="LoginAction" class="controller.login.LoginCheck"> <property name="serice" ref="service"></property> <property name="userInfo" ref="Ibatis"></property> <property name="success_view"> <value>success</value> </property> <property name="fail_view"> <value>fail</value> </property> </bean> </beans>
4、javabean
package controller.bean; public class Ibatis { private String id; private String name; public Ibatis() { } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
映射xml:Ibatis.hbm.xml
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <!-- name:实体类,table:数据库表名,schema:所属用户 --> <class name="controller.bean.Ibatis" table="IBATIS" schema="test"> <id name="id" type="java.lang.String"> <column name="id" length="20" scale="0" /> </id> <property name="name" type="java.lang.String"> <column name="name" length="20" not-null="true" /> </property> </class> </hibernate-mapping>
5、Dao、DaoImp
package dao; import java.util.List; import controller.bean.Ibatis; public interface Dao { public List<Ibatis> queryUserList(); }
package dao; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import controller.bean.Ibatis; public class DaoImp extends HibernateDaoSupport implements Dao{ @Override public List<Ibatis> queryUserList() { String queryString=" from Ibatis "; return getHibernateTemplate().find(queryString); } }
6、service
package service; import java.util.List; import controller.bean.Ibatis; import dao.DaoImp; public class Service { private DaoImp daoImp; public DaoImp getDaoImp() { return daoImp; } public void setDaoImp(DaoImp daoImp) { this.daoImp = daoImp; } public List<Ibatis> getList(){ return daoImp.queryUserList(); } }
7、action
package controller.login; import java.util.List; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.mvc.SimpleFormController; import service.Service; import controller.bean.Ibatis; @Controller public class LoginCheck extends SimpleFormController{ private String success_view; private String fail_view; private Ibatis userInfo; private Service serice; @RequestMapping("/login.do") public String logincheck(String id,String name,Model model){ ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); serice = (Service)context.getBean("service"); if("1".equals(name)&&"1".equals(id)){ List<Ibatis> list = serice.getList();//获取所有用户数据 model.addAttribute("name", name); if(this.getSuccess_view()==null){ this.setSuccess_view("success"); } return this.getSuccess_view(); }else{ if(this.getFail_view()==null){ this.setFail_view("fail"); } return this.getFail_view(); } } public String getSuccess_view() { return success_view; } public void setSuccess_view(String success_view) { this.success_view = success_view; } public String getFail_view() { return fail_view; } public void setFail_view(String fail_view) { this.fail_view = fail_view; } public Ibatis getUserInfo() { return userInfo; } public void setUserInfo(Ibatis userInfo) { this.userInfo = userInfo; } public Service getSerice() { return serice; } public void setSerice(Service serice) { this.serice = serice; } }
8、login.jsp
<%@ page language="java" contentType="text/html; UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <center> <form method="POST" action="login.do"> <p align="center">登录</p> <br> 用户名:<input type="text" id="username" name="id" /><b id="judge"></b><br> <br> 密 码:<input type="password" id="password" name="name"/> <p/> <input type="submit" value="提交" name="but1"> <input type="reset" value="重置" name="but2"> </form> </center> </body> </html>