spring mvc + hibernate 整合

本文以spring2.5 mvc + hibernate3.0整合。 jar包资源链接:http://download.csdn.net/detail/upxiaofeng/7729243

1、文件目录

spring mvc + hibernate 整合_第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>



 

你可能感兴趣的:(spring,Hibernate,mvc,xml)