SpringMVC_Spring3_Hibernate4

抄的网上的一个实例,忘记是网址了。。。。。。


放在这里,自己学习使用。


1.web.xml 中的内容

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	
	<display-name>SpringMVC_Spring3_Hibernate4</display-name>
	
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	
	<!-- 配置Spring -->   
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:config/spring-*.xml</param-value>
	</context-param>
	
	
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	 <!-- 配置SpringMVC --> 
	<servlet>
		<servlet-name>springMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath*:config/spring-servlet.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>springMVC</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
	<!-- 设置字符集 -->  
	<filter>
		<filter-name>encodingFilter</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>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<!-- 控制Session的开关 --> 
	<filter>
		<filter-name>openSession</filter-name>
		<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>openSession</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>


2.其他配置文件


spring-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	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.xsd  
      http://www.springframework.org/schema/mvc  
      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">


	<!-- 注解扫描的包 -->
	<context:component-scan base-package="com.jialin" />


	<!-- 开启注解方案1 -->
	<!-- 注解方法处理 -->
	<!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" 
		/> -->
	<!-- 注解类映射处理 -->
	<!-- <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean> -->


	<!-- 开启注解方案2 -->
	<mvc:annotation-driven />


	<!-- 静态资源访问,方案1 -->
	<mvc:resources location="/img/" mapping="/img/**" />
	<mvc:resources location="/js/" mapping="/js/**" />


	<!-- 静态资源访问,方案2 -->
	<!-- <mvc:default-servlet-handler/> -->


	<!-- 视图解释类 -->
	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/"></property>
		<!--可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑 -->
		<property name="suffix" value=".jsp"></property>
	</bean>


	<!-- 上传文件bean -->
	<!-- <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
		<property name="defaultEncoding" value="utf-8" /> <property name="maxUploadSize" 
		value="10485760000" /> <property name="maxInMemorySize" value="40960" /> 
		</bean> -->


</beans>  

spring-hibernate.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	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.xsd  
      http://www.springframework.org/schema/mvc  
      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
	
	<!-- 配置数据源 -->
	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://127.0.0.1/springmvc" />
		<property name="username" value="root" />
		<property name="password" value="123456" />
	</bean>

	<!--  配置hibernate SessionFactory-->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
				<prop key="hibernate.hbm2ddl.auto">update</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hiberante.format_sql">true</prop>
			</props>
		</property>
		<property name="configLocations">
			<list>
				<value>
					classpath*:config/hibernate/hibernate.cfg.xml
				</value>
			</list>
		</property>
	</bean>

    <!-- 事务管理器 -->
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate4.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
    
    <!-- 事务代理类 -->
	<bean id="transactionBese"
		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
		lazy-init="true" abstract="true">
		<property name="transactionManager" ref="transactionManager"></property>
		<property name="transactionAttributes">
			<props>
				<prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="modify*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="del*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="get*">PROPAGATION_NEVER</prop>
			</props>
		</property>
	</bean>

</beans>  

spring-core.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"  
 xmlns:context="http://www.springframework.org/schema/context"  
 xmlns:p="http://www.springframework.org/schema/p"  
 xmlns:mvc="http://www.springframework.org/schema/mvc"  
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
 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.xsd  
      http://www.springframework.org/schema/mvc  
      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
     
    <!-- 引入其他配置文件,可以为多个 -->
    <import resource="classpath*:config/spring/spring-user.xml"/>
	
 </beans>  


spring-user.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" [
<!ENTITY contextInclude SYSTEM "org/springframework/web/context/WEB-INF/contextInclude.xml">
]>

<beans>
    <!-- Spring Bean -->
	<bean id="userDao" class="com.jialin.dao.UserDao">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	
	<bean id="userManagerBase" class="com.jialin.service.UserManager">
		<property name="userDao" ref="userDao"></property>
	</bean>
	
	<!-- parent为transactionBese,表示支持事务 -->
	<bean id="userManager" parent="transactionBese">
		<property name="target" ref="userManagerBase"></property>
	</bean>
	
</beans>

hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">


<hibernate-configuration>
    <session-factory>
        <!-- 引入需要映射的类 -->
        <mapping class="com.jialin.entity.User"/>
    </session-factory>
</hibernate-configuration>

java代码:



UserController.java

package com.jialin.controller;

import com.jialin.entity.User;
import com.jialin.service.IUserManager;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller   //类似Struts的Action  
@RequestMapping({"/user"})
public class UserController
{

  @Resource(name="userManager")  // 获取spring配置文件中bean的id为userManager的,并注入  
  private IUserManager userManager;

  @RequestMapping({"/addUser"})   // 请求url地址映射,类似Struts的action-mapping  
  public String addUser(User user)
  {
    if (this.userManager.addUser(user))
    {
      return "redirect:/user/getAllUser"; // 重定向 
    }

    return "/fail";
  }

  @RequestMapping({"/updateUser"})
  public String updateUser(User user, HttpServletRequest request)
  {
    if (this.userManager.updateUser(user))
    {
      user = this.userManager.getOneUser(user);
      request.setAttribute("user", user);
      return "/UserEdit";
    }

    return "/fail";
  }

  @RequestMapping({"/delUser"})
  public void delUser(User user, HttpServletResponse response)
  {
    String result = "{\"result\":\"error\"}";

    if (this.userManager.delUser(user))
      result = "{\"result\":\"success\"}";

    PrintWriter out = null;
    response.setContentType("application/json");
    try
    {
      out = response.getWriter();
      out.write(result);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

  @RequestMapping({"/toAddUser"})
  public String toAddUser() {
    return "/UserAdd";
  }

  @RequestMapping({"/toUpdateUser"})
  public String toUpdateUser(User user, HttpServletRequest request) {
    User user1 = this.userManager.getOneUser(user);

    request.setAttribute("user1", user1);

    return "/UserEdit";
  }

  @RequestMapping({"/getAllUser"})
  public String getAllUser(HttpServletRequest request)
  {
    List userList = this.userManager.getAllUser();

    request.setAttribute("userlist", userList);

    return "/UserMain";
  }
}

IUserDao
package com.jialin.dao;

import com.jialin.entity.User;
import java.util.List;

public abstract interface IUserDao
{
  public abstract boolean addUser(User paramUser);

  public abstract boolean delUser(User paramUser);

  public abstract boolean updateUser(User paramUser);

  public abstract List<User> getAllUser();

  public abstract User getOneUser(User paramUser);
}

UserDao.java

package com.jialin.dao;

import com.jialin.entity.User;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

public class UserDao
  implements IUserDao
{
  private SessionFactory sessionFactory;

  public void setSessionFactory(SessionFactory sessionFactory)
  {
    this.sessionFactory = sessionFactory;
  }

  public boolean addUser(User user)
  {
    this.sessionFactory.getCurrentSession().save(user);
    return true;
  }

  public boolean delUser(User user)
  {
    this.sessionFactory.getCurrentSession().delete(user);
    return true;
  }

  public boolean updateUser(User user)
  {
    this.sessionFactory.getCurrentSession().update(user);
    return true;
  }

  public List<User> getAllUser()
  {
    Query query = this.sessionFactory.getCurrentSession().createQuery("from User");
    List userlist = query.list();
    return userlist;
  }

  public User getOneUser(User user)
  {
    User user1 = (User)this.sessionFactory.getCurrentSession().load(User.class, user.getId());

    return user1;
  }
}

User.java

package com.jialin.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;

@Entity
@Table(name="t_user")
public class User
{

  @Id
  @GeneratedValue(generator="system-uuid")
  @GenericGenerator(name="system-uuid", strategy="uuid")
  @Column(length=32)
  private String id;

  @Column(length=32)
  private String userName;

  @Column(length=32)
  private String age;

  public String getId()
  {
    return this.id; }

  public void setId(String id) {
    this.id = id;
  }

  public String getUserName() {
    return this.userName; }

  public void setUserName(String userName) {
    this.userName = userName; }

  public String getAge() {
    return this.age; }

  public void setAge(String age) {
    this.age = age;
  }
}

IUserManager.java

package com.jialin.service;

import com.jialin.entity.User;
import java.util.List;

public abstract interface IUserManager
{
  public abstract boolean addUser(User paramUser);

  public abstract boolean delUser(User paramUser);

  public abstract boolean updateUser(User paramUser);

  public abstract User getOneUser(User paramUser);

  public abstract List<User> getAllUser();
}

UserManager.java

package com.jialin.service;

import com.jialin.dao.IUserDao;
import com.jialin.entity.User;
import java.util.List;

public class UserManager
  implements IUserManager
{
  private IUserDao userDao;

  public User getOneUser(User user)
  {
    return this.userDao.getOneUser(user);
  }

  public void setUserDao(IUserDao userDao) {
    this.userDao = userDao;
  }

  public boolean addUser(User user)
  {
    return this.userDao.addUser(user);
  }

  public boolean delUser(User user)
  {
    return this.userDao.delUser(user);
  }

  public boolean updateUser(User user)
  {
    return this.userDao.updateUser(user);
  }

  public List<User> getAllUser()
  {
    return this.userDao.getAllUser();
  }
}

JSP页面:

fail.jsp

<%@ page language="java" contentType="text/html; charset=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=UTF-8">
<title>Insert title here</title>
</head>
<body>
操作失败
</body>
</html>

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
操作成功
</body>
</html>

UserAdd.jsp

<%@ page language="java" contentType="text/html; charset=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=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="/SpringMVC/user/addUser" method="post">
		<h3>添加用户信息</h3>
		
		姓名:<input type="text" name="userName" id="userName"
			value="" /> 年龄:<input type="text" name="age" id="age"
			value="" /> <input type="submit" value="提交" />
	</form>
</body>
</html>

UserEdit.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
	
<%@ page import="java.util.*" %>
<%@ page import="com.jialin.entity.User" %>


<%
		/*   User user=(User)request.getAttribute("user");
		  System.out.println(user.getId());
		  System.out.println(user.getUserName());
		  System.out.println(user.getAge()); */
		  //注意request中已经有一个user,再放入一个user,不会将前一个覆盖
%> 
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="/SpringMVC/user/updateUser" method="post">
		<h3>更改用户信息</h3>
		<input type="hidden"  name="id"  value="${user1.id }"  />
 		姓名:<input type="text" name="userName"  value="${user1.userName} " /> 
 		年龄:<input type="text" name="age"   value="${user1.age} " /> 
 		<input type="submit" value="提交" />
	</form>
</body>
</html>

UserMain.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%-- <%@ page import="java.util.*" %>
<%@ page import="com.jialin.entity.User" %>


<%
		  List list=(List)request.getAttribute("userlist");
		 for(Iterator iter=list.iterator();iter.hasNext();)
		 {
			 User user =(User)iter.next();
			 System.out.println(user.getId());
		}


%> --%>

<!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=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="/SpringMVC/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript">
	function delUser(id) {
		alert("323")
		$.get("/SpringMVC/user/delUser?id=" + id, function(data) {
			if (data.result == "success") {
				alert("删除成功");
				window.location.reload(); 
			} else {
				alert("操作失败");
			}
		});
	}

	function addUser() {
		window.location.href = "/SpringMVC/user/toAddUser";
	}
</script>
</head>
<body>
	<h3>用户信息</h3>

	<table>
		<tr>
			<td>id</td>
			<td>用户名</td>
			<td>年龄</td>
			<td>操作</td>
		</tr>
		 <c:choose>
			<c:when test="${empty userlist }">
				<tr>
					<td colspan="3">无数据</td>
				</tr>
			</c:when>
			<c:otherwise>
				<c:forEach items="${userlist}" var="user">
					<tr>
						<td>${user.id }</td>
						<td>${user.userName }</td>
						<td>${user.age }</td>
						<td><a href="/SpringMVC/user/toUpdateUser?id=${user.id} ">编辑</a> <a
							href="javascript:delUser('${user.id }')">删除</a></td>
					</tr>
				</c:forEach>
			</c:otherwise>

		</c:choose>
	</table>
	<input type="button" id="btnAdd" value="添加用户" οnclick="addUser()">
</body>
</html>









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值