1、倒包hibernate11个包+sturts2 13个包

2、创建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" 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>Test27</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

3、创建struts

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<!-- 设置过滤的扩展名 -->
<constant name="struts.action.extension" value="do,action,,"></constant>
<!-- 定义包 -->
<package name="index" extends="struts-default">
<action name="addUser">
<result>/WEB-INF/pages/addUser.jsp</result>
</action>
<!-- 保存User -->
<action name="saveUser" class="com.hanqi.action.UserAction" method="saveUser"> <result name="fail">/WEB-INF/pages/fail.jsp</result>
<result >/WEB-INF/pages/success.jsp</result>
</action>
<!-- 查询用户 -->
<action name="selectUser" class="com.hanqi.action.UserAction" method="selectUser"> <result name="fail">/WEB-INF/pages/fail.jsp</result>
<result >/WEB-INF/pages/selectUser.jsp</result> </action>
<!-- 删除用户 -->
<action name="deleteUser" class="com.hanqi.action.UserAction" method="deleteUser">
<result name="fail">/WEB-INF/pages/fail.jsp</result>
<result type="redirectAction">selectUser</result> </action>
<!-- 修改用户 --> <action name="EditUser">
<result>/WEB-INF/pages/EditUser.jsp</result>
</action>
<action name="updateUser" class="com.hanqi.action.UserAction" method="updateUser">
<result name="fail">/WEB-INF/pages/fail.jsp</result>
<result type="redirectAction">selectUser</result>
</action> </package> </struts>

4、创建cfg.xml文件链接数据库

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost::orcl</property>
<property name="hibernate.connection.username">test0816</property>
<property name="hibernate.default_schema">TEST0816</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<!-- 自动建表方式 -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 映射文件 -->
<mapping resource="com/hanqi/entity/T_User.hbm.xml"/> </session-factory>
</hibernate-configuration>

5、创建登陆界面

<%@ 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>
<a href="addUser">添加用户</a>
<br><br>
<a href="selectUser">查询用户列表</a>
</body>
</html>

6、按照MVC思想创建包和类

6.1创建实体类和对应的映射文件(可用反向工程)

package com.hanqi.entity;
//持久化类
//不要使用final修饰
import java.util.Date; public class T_User { private Integer user_ID;
private String name;
private Date birthday;
private double money;
private String password;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getuser_ID() {
return user_ID;
}
public void setuser_ID(Integer user_ID) {
this.user_ID = user_ID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public T_User(Integer user_ID, String name, Date birthday, double money) {
super();
this.user_ID = user_ID;
this.name = name;
this.birthday = birthday;
this.money = money;
} public T_User(Integer user_ID, String name) {
super();
this.user_ID = user_ID;
this.name = name;
}
//必须提供无参的构造方法
//需要用到反射
public T_User() {
super();
}
@Override
public String toString() {
return "User [user_ID=" + user_ID + ", name=" + name + ", birthday=" + birthday + ", money=" + money
+ ", password=" + password + "]";
} }

对应的映射文件:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated -- :: by Hibernate Tools 3.4..CR1 -->
<hibernate-mapping>
<class name="com.hanqi.entity.T_User" table="T_USER">
<id name="user_ID" type="java.lang.Integer">
<column name="USER_ID" />
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" />
</property>
<property name="birthday" type="java.util.Date">
<column name="BIRTHDAY" />
</property>
<property name="money" type="double">
<column name="MONEY" />
</property>
<property name="password" type="java.lang.String">
<column name="PASSWORD" />
</property>
</class>
</hibernate-mapping>

6.2创建action类

package com.hanqi.action;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.hanqi.entity.T_User;
import com.hanqi.service.UserService;
import com.opensymphony.xwork2.ActionContext; public class UserAction { //域模型方式
private T_User user;
private int userid;
private String name;
private String password;
private Date birthday;
private double money; public int getUserid() {
return userid;
} public void setUserid(int userid) {
this.userid = userid;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
} public double getMoney() {
return money;
} public void setMoney(double money) {
this.money = money;
} public T_User getUser() {
return user;
} public void setUser(T_User user) {
this.user = user;
}
//处理保存User的方法
public String saveUser()
{
String rtn="fail";
try{
//调用Service层(模型层,业务逻辑层)
T_User u1=new UserService().add(user);
//使用request转发到下一个页面上去
ActionContext ac=ActionContext.getContext();
Map<String, Object>mo=(Map<String, Object>)ac.get("request");
mo.put("user", u1);
rtn="success";
}
catch(Exception e)
{
e.printStackTrace();
} return rtn; }
//查询
public String selectUser()
{
String rtn="fail";
try{
//调用查询的方法
List<T_User> lu=new UserService().getAll();
//得到原生的request
HttpServletRequest hsr=ServletActionContext.getRequest();
hsr.setAttribute("userlist", lu);
rtn="success";
}
catch(Exception e)
{
e.printStackTrace();
} return rtn;
}
//删除
public String deleteUser()
{
String rtn="fail";
try{
//获取userID
//得到原生的request
HttpServletRequest hsr=ServletActionContext.getRequest(); String uid=hsr.getParameter("userID"); //执行删除
new UserService().delete(Integer.parseInt(uid)); rtn="success";
}
catch(Exception e)
{
e.printStackTrace();
} return rtn;
}
//执行修改
public String updateUser()
{
String rtn="fail"; try{
T_User user=new T_User();
user.setuser_ID(userid);
user.setPassword(password);
user.setName(name);
user.setBirthday(birthday);
user.setMoney(money);
new UserService().update(user);
rtn="success";
}
catch(Exception e)
{
e.printStackTrace();
} return rtn;
} }

6.3 创建service层

package com.hanqi.service;

import java.util.List;

import com.hanqi.DAO.UserDAO;
import com.hanqi.entity.T_User; public class UserService { //添加user的方法
public T_User add(T_User user)
{
return new UserDAO().insert(user); }
//全表查询
public List<T_User> getAll()
{
return new UserDAO().getAll();
}
//删除
public void delete(int userID)
{
new UserDAO().delete(userID);
}
//单条查询
public T_User getUser(int userID)
{
return new UserDAO().getUser(userID);
}
//执行修改
public void update(T_User user)
{
new UserDAO().updateUser(user);
} }

6.4 创建DAO层

package com.hanqi.DAO;

import java.util.ArrayList;
import java.util.List; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry; import com.hanqi.entity.T_User; public class UserDAO { private Configuration cfg=null;
private ServiceRegistry sr=null; private SessionFactory sf=null; private Session se=null; private Transaction ts=null; public UserDAO()
{
cfg=new Configuration().configure(); sr=new StandardServiceRegistryBuilder()
.applySettings(cfg.getProperties()).build(); }
private void init()
{
sf=cfg.buildSessionFactory(sr);
se=sf.openSession();
ts=se.beginTransaction();
}
private void destory()
{
ts.commit();
se.close();
sf.close();
}
//保存 user
public T_User insert(T_User user)
{ init();
se.save(user); destory();
return user; }
//查询列表
public List<T_User> getAll()
{
init();
List<T_User> rtn=new ArrayList<>();
rtn=se.createQuery("from T_User").list();
destory();
return rtn;
}
//删除
public void delete(int userID)
{
init();
//获取对象
T_User u=(T_User)se.get(T_User.class, userID); se.delete(u);
destory();
}
//单条查询
public T_User getUser(int userID)
{
init();
T_User rtn=null;
rtn=(T_User)se.get(T_User.class, userID);
destory();
return rtn;
}
//修改单条查询内容
public T_User updateUser(T_User user)
{
init();
T_User rtn=null;
rtn=(T_User)se.get(T_User.class, user.getuser_ID());
rtn.setuser_ID(user.getuser_ID());
rtn.setName(user.getName());
rtn.setPassword(user.getPassword());
rtn.setBirthday(user.getBirthday());
rtn.setMoney(user.getMoney());
destory();
return rtn;
} }

7、跳转页面

7.1添加用户页面

<%@ 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>
添加用户
<br><br>
<form action="saveUser" method="post">
用户名:<input type="text" name="user.name"/>
<br>
密码:<input type="password" name="user.password"/>
<br>
生日:<input type="text" name="user.birthday"/>
<br>
薪酬:<input type="text" name="user.money"/>
<br>
<input type="submit" value="保存"/> </form> </body>
</html>

7.2查询页面

<%@page import="com.hanqi.entity.T_User"%>
<%@page import="java.util.List"%>
<%@ 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> <%
List<T_User> lu=(List<T_User>)request.getAttribute("userlist");
for(T_User u:lu)
{
out.print(u + "【<a href='EditUser?userID="+u.getuser_ID()+"'>修改</a>】【<a href='deleteUser?userID="+u.getuser_ID()+"'>删除</a>】 <br>");
} %> </body>
</html>

7.3 修改用户界面

<%@page import="com.hanqi.entity.T_User"%>
<%@page import="com.hanqi.service.UserService"%>
<%@ 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>
<%
// 接收参数
String userID = request.getParameter("userID"); T_User us=null; if (userID == null ||
userID.trim().equals(""))
{
response.getWriter().print("请正确访问"); }
else
{
us=new UserService().getUser(Integer.parseInt(userID)); }
%>
编辑银行卡信息<br><br> <form action="updateUser" method="post">
用户id号:<input type="text" name="userid" value="<%=us.getuser_ID() %>"readonly><br> 用户名:<input type="text" name="name" value="<%=us.getName() %>"/>
<br>
密码:<input type="password" name="password" value="<%=us.getPassword() %>"/>
<br>
生日:<input type="text" name="birthday" value="<%=us.getBirthday() %>"/>
<br>
薪酬:<input type="text" name="money" value="<%=us.getMoney() %>"/>
<br>
<input type="submit" value="提交"/> </form>
</body>
</html>

7.4 操作失败的跳转页面

<%@ 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>

7.5 保存成功的跳转页面

<%@ 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>
操作成功
User=${user } </body>
</html>

用struts和hibernate结合MVC层实例的更多相关文章

  1. Struts+Spring+Hibernate、MVC、HTML、JSP

    javaWeb应用 JavaWeb使用的技术,比如SSH(Struts.Spring.Hibernate).MVC.HTML.JSP等等技术,利用这些技术开发的Web应用在政府项目中非常受欢迎. 先说 ...

  2. 对spring,struts,hibernate及MVC的理解

    对于spring,hibernate,struts等框架,刚开始的时候总是会很迷茫,不知道他们是用来做什么的. 1.对框架的作用理解 个人认为框架的作用是把代码进行了分类,减少了代码的耦合性. 如果不 ...

  3. velocity+spring mvc+spring ioc+ibatis初试感觉(与struts+spring+hibernate比较)

    velocity+spring mvc+spring ioc+ibatis框架是我现在公司要求采用的,原因是因为阿里巴巴和淘宝在使用这样的框架,而我公司现在还主要是以向阿里巴巴和淘宝输送外派人员为 主 ...

  4. 用eclipse搭建SSH(struts+spring+hibernate)框架

    声明: 本文是个人对ssh框架的学习.理解而编辑出来的,可能有不足之处,请大家谅解,但希望能帮助到大家,一起探讨,一起学习! Struts + Spring + Hibernate三者各自的特点都是什 ...

  5. Java Web整合开发实战:基于Struts 2+Hibernate+Spring 目录

    第1篇 Java Web开发基础第1章 Web的工作机制( 教学视频:31分钟) 1.1 理解Web的概念 1.1.1 Web的定义 1.1.2 Web的三个核心标准 1.2 C/S与B/S两种软件体 ...

  6. SSH(Struts,Spring,Hibernate)和SSM(SpringMVC,Spring,MyBatis)的区别

    SSH 通常指的是 Struts2 做前端控制器,Spring 管理各层的组件,Hibernate 负责持久化层. SSM 则指的是 SpringMVC 做前端控制器,Spring 管理各层的组件,M ...

  7. Struts,Spring,Hibernate优缺点

    Struts跟Tomcat.Turbine等诸 多Apache项目一样,是开源软件,这是它的一大优点.使开发者能更深入的了解其内部实现机制. Struts开放源码框架的创建是为了使开发者在构建基于Ja ...

  8. 【SSH进阶之路】Struts + Spring + Hibernate 进阶开端(一)

    [SSH进阶之路]Struts + Spring + Hibernate 进阶开端(一) 标签: hibernatespringstrutsssh开源框架 2014-08-29 07:56 9229人 ...

  9. Spring MVC框架实例

    Spring  MVC 背景介绍 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,能够选择是使用内置的 Spring Web 框架还是 ...

随机推荐

  1. 从NavigationController 下的UITableView中移除 header

    this.AutomaticallyAdjustsScrollViewInsets = false; 解析:AutomaticallyAdjustsScrollViewInsets为系统自动为适应na ...

  2. hibernate----1-1

    <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hi ...

  3. 解决在android开发中ViewPager中Gallery无法滑动问题

    我的是在viewpager中某个fragment中有gallery... 导致无法滑动,网上找到解决方法. 自定义Gallery. 代码: import android.content.Context ...

  4. Scalaz(34)- Free :算法-Interpretation

    我们说过自由数据结构(free structures)是表达数据类型的最简单结构.List[A]是个数据结构,它是生成A类型Monoid的最简单结构,因为我们可以用List的状态cons和Nil来分别 ...

  5. POJ 1061 青蛙的约会 扩展欧几里得

    扩展欧几里得模板套一下就A了,不过要注意刚好整除的时候,代码中有注释 #include <iostream> #include <cstdio> #include <cs ...

  6. MyEclipse10 中的两种FreeMarker插件的安装与配置

    第一个插件是:                                       freemarker-ide MyEclipce10.0中安装FreeMarker插件,这绝对是最简单的方法 ...

  7. 学习笔记:利用GDI+生成简单的验证码图片

    学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...

  8. OGNl和ValueStack的基础和深入分析

    一.OGNL 1)什么是OGNL? 解析:OGNL是Object Graph Navigation Language(对象图导航语言)它是强大的表达式语言. 2)用途:通过简单一致的表达式语法来读取和 ...

  9. Exif.js 读取图像的元数据

    Exif.js 提供了 JavaScript 读取图像的原始数据的功能扩展,例如:拍照方向.相机设备型号.拍摄时间.ISO 感光度.GPS 地理位置等数据. 注意事项: EXIF 数据主要来自拍摄的照 ...

  10. JScript中的条件注释详解(转载自网络)

    JScript中的条件注释详解-转载 这篇文章主要介绍了JScript中的条件注释详解,本文讲解了@cc_on.@if.@set.@_win32.@_win16.@_mac等条件注释语句及可用于条件编 ...