Myeclipse环境下 Springmvc注解式与hibernate框架整合具体步骤!

1:首先要在项目WEB-INF 的 lib 目录下添加jdbc所需要的数据库驱动包!




2:先添加spring框架


勾选上面四个包还有一个spring 3.0 web libraries 的包别忘了勾选,总共五个包!


3:添加hibernate框架


   选最新的3.3版本如图:


然后点next


应为是和springmvc做整合,所以选择下面一个,如图




点next,还是选择第二个如图:





选择之前创建好的数据库链接如图:




最后一项把勾去掉点完成就可以了,如图




这样,基本的框架就添加完成了,下面就是修改配置文件了!


4:修改各类配置文件(记得反转你要用的表,我就不演示怎么反转表了)


    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">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
   <!--  -->
  <servlet>
  	<servlet-name>DispatcherServlet</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	 <!-- 配置DispatchServlet读取spring配置文件 -->
  	<init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
    </init-param>
  </servlet>
  <!-- 配置DispatchServlet读取spring配置文件 -->
  <context-param>
  	  <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
  </context-param>
  
  <!-- 配置监听器,初始化spring配置文件 -->
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  <servlet-mapping>
  	<servlet-name>DispatcherServlet</servlet-name>
  	<url-pattern>*.action</url-pattern>
  </servlet-mapping>
  
    <!-- 通过过滤器设置编码集合 ,防止中文乱码问题-->
   <filter>  
       <filter-name>springUtf8Encoding</filter-name>  
       <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
       <init-param>  
           <param-name>encoding</param-name>  
           <param-value>UTF-8</param-value>  
       </init-param>  
       <init-param>  
           <param-name>forceEncoding</param-name>  
           <param-value>true</param-value>  
       </init-param>   
    </filter>  
    <filter-mapping>  
       <filter-name>springUtf8Encoding</filter-name>  
       <url-pattern>/*</url-pattern>  
   </filter-mapping>
  
</web-app>

注意:(springmvc和注解式springmvc的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"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	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.springframework.org/schema/mvc
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
>


	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName"
			value="com.mysql.jdbc.Driver">
		</property>
		<property name="url" value="jdbc:mysql://127.0.0.1:3306/emp"></property>
		<property name="username" value="root"></property>
		<property name="password" value="root"></property>
	</bean>
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
			</props>
		</property>
		<property name="mappingResources">
			<list>
				<value>com/springmvchibernate/domain/Emp.hbm.xml</value>
			</list>
		</property>
		</bean>
	
  <!-- 自动加载驱动 ,通过主键把相应的url映射到controller上-->
  <mvc:annotation-driven/>
         
  <!-- 设置哪些包需要使用注解 -->
  <context:component-scan base-package="com.emp.web"></context:component-scan>
		
  <!-- 用bean容器创建一个EmpServiceImpl对象,并为属性赋值 -->
  <bean id="empserviceimpl" class="com.emp.service.EmpServiceImpl">
	  <property name="sessionFactory" ref="sessionFactory"></property>
  </bean>
	
</beans>


我列子项目的层次结构如图:




EmpAction.java


package com.emp.web;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.emp.service.EmpService;
import com.springmvchibernate.domain.Emp;

@Controller
public class EmpAction {
	
	@Autowired
	@Qualifier("empserviceimpl")   //要与spring配置文件生成实现类的bean节点id保持一致
	EmpService EmpServiceImpl;  //用注解注入接口的实现类对象,方便方法调用里面的方法
	/**
	 * 用户登录
	 * @return
	 */
	@RequestMapping("/login.action")
	//虽然这里用的是Emp对象的封装,但是springmvc的不同的是前台不需要写成emp.ename,只需要写属性名ename就可以了
	public String login(Emp emp ,Model m){
		Emp e = EmpServiceImpl.login(emp);
		if(e!=null){
			return "a.jsp";
		}else{
			m.addAttribute("msg","你输入的用户名或者密码有误");
			return "index.jsp";
		}
		
	}
}

接口的代码:

EmpService.java

package com.emp.service;

import com.springmvchibernate.domain.Emp;

public interface EmpService {
	/**
	 * 用户登录
	 * @param emp
	 * @return
	 */
	public Emp login(Emp emp);
}



接口实现类的代码:


EmpServiceImpl.java

package com.emp.service;

import java.util.List;

import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.springmvchibernate.domain.Emp;

public class EmpServiceImpl extends HibernateDaoSupport implements EmpService {
	
	//用户登录
	public Emp login(Emp emp) {
		HibernateTemplate ht = 	this.getHibernateTemplate();
		List l = ht.find("from Emp e where e.ename ='"+emp.getEname()+"' and e.password ='"+emp.getPassword()+"'");
		if(l.size()!=0){
			return (Emp)l.get(0);
		}else{
			return null;
		}
		
	}

}

前台

index.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<base href="<%=basePath%>">

		<title>My JSP 'index.jsp' starting page</title>
		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="This is my page">
		<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	</head>

	<body>
		<form method="post" action="login.action">
			<p>
				 用户名:
				<input type="text" name="ename">
			</p>
			<p>
				 密  码:
				<input type="password" name="password">
			</p>
			<p>
				 
				<input type="submit" value="提交" name="button1">
			</p>
			
		</form>
	 ${msg}
	</body>
</html>


好了,这个列子就是一个springmvc注解式加hibernate框架的整合,就是一个简单的登录.感觉最主要的部分就是web.xml applicationContext.xml这两个配置文件的配置要配好!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值