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这两个配置文件的配置要配好!
完