本文以spring2.5 mvc + hibernate3.0整合。 jar包资源链接:http://download.youkuaiyun.com/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>