Hibernate学习项目总结

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 05:53   164   0

一.项目介绍

这个项目是在我学了struts2和hibernate3之后做的,是用这两个框架整合的,分别有表单提交请求,Ajax提交请求,通过Get和Post方式提交,所以这个项目有三大块,表单用Get方式提交请求,表单用Post方式提交请求,Ajax提交请求。

二.项目目录结构

在这里插入图片描述
在这里插入图片描述

三.需要的JAR包

在这里插入图片描述
在这里插入图片描述
这是我用的所有JAR包,可以自己去官网上下载struts2和hibernate的压缩包,在lib目录里有JAR包,如果不想自己下载,我上传了资源可以去下载,地址:https://download.csdn.net/download/sun_ting_chuan/10830515.

四.详细代码

1.表单用get方式提交请求(Post与Get方式提交代码一样,只是提交方式不一样,在这里只写Get方式提交的代码)

Jsp页面代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
 String path = request.getContextPath();
 String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE html>
<html>
<head>
<title>ssh整合</title>

<base href="<%=basePath%>" />

<link type="text/css" rel="stylesheet" href="css/style.css">

<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/script.js"></script>

</head>
<body>
 <div class="bodyDiv" align="center">
  <a href="indexAjax.jsp">转到Ajax请求</a> 
  <a href="indexPost.jsp">转到Post请求</a>
  
  <hr />
  Get
  <form action="" method="get" name="getForm">
   <table class="buttonTable">
    <tr>
     <td><input type="submit" value="查询" onclick="selectFun()"></td>
     <td><input type="submit" value="新增" onclick="insertFun()"></td>
     <td><input type="submit" value="修改" onclick="updateFun()"></td>
     <td><input type="submit" value="删除" onclick="deleteFun()"></td>
     <td><input type="submit" value="搜索" onclick="queryFun()"></td>
    </tr>
   </table>

   <table>
    <tr height="50">
     <td width="50">姓名:</td>
     <td width="223">
      <input type="text" name="people.name" id="name">
     </td>
     
     <td width="50">年龄:</td>
     <td width="223">
      <input type="text" name="people.age" id="age">
     </td>
     
     <td width="50">部门:</td>
     <td width="173">
      <input type="text" name="people.department" id="department"> 
      <input type="hidden" name="people.id" id="number" value=""> 
      <input type="hidden" name="people.deleteFlag" id="deleteFlag" value="false"> 
      <input type="hidden" name="people.deleteTime" id="deleteTime" value="">
      <input type="hidden" name="people.creationTime" id="creationTime" value="">
     </td>
    </tr>
   </table>
  </form>

  <hr />
  <br />

  <table class="showTable">
   <tr align="center" height="30">
    <td width="50">选择</td>
    <td width="50">序号</td>
    <td width="80">姓名</td>
    <td width="50">年龄</td>
    <td width="150">部门</td>
    <td width="100">删除标志</td>
    <td width="200">删除时间</td>
    <td width="200">创建时间</td>
   </tr>
   <c:forEach items="${list}" var="item">
    <tr align="center" height="30">
     <td><input name="radio" type="radio" onclick="radioFun()"></td>
     <td>${item.id}</td>
     <td>${item.name}</td>
     <td>${item.age}</td>
     <td>${item.department}</td>
     <td>${item.deleteFlag}</td>
     <td>${item.deleteTime}</td>
     <td>${item.creationTime}</td>
    </tr>
   </c:forEach>
   <!-- <s:iterator value="#request.list">
    <tr align="center" height="30">
     <td><input name="radio" type="radio" onclick="radioFun()"></td>
     <td><s:property value="%{id}" /></td>
     <td><s:property value="%{name}" /></td>
     <td><s:property value="%{age}" /></td>
     <td><s:property value="%{department}" /></td>
     <td><s:property value="%{deleteFlag}" /></td>
     <td><s:property value="%{deleteTime}" /></td>
     <td><s:property value="%{creationTime}" /></td>
    </tr>
   </s:iterator> -->
  </table>
 </div>
</body>
</html>
Js代码
function selectFun() {
 document.getForm.action = "get/selectAction.do";
}

function insertFun() {
 document.getForm.action = "get/insertAction.do";

 var dateStr = getDate();
 $("#creationTime").val(dateStr);
}

function updateFun() {
 document.getForm.action = "get/updateAction.do";
}

function deleteFun() {
 document.getForm.action = "get/deleteAction.do";

 var dateStr = getDate();
 $("#deleteTime").val(dateStr);
 $("#deleteFlag").val(true);
}

function queryFun() {
 document.getForm.action = "get/queryAction.do";
}

function getDate() {
 var date = new Date();

 var year = date.getFullYear();
 var month = date.getMonth() + 1;
 var day = date.getDate();
 var hours = date.getHours();
 var minutes = date.getMinutes();
 var seconds = date.getSeconds();

 if (hours < 10) {
  var hours = "0" + hours;
 }
 if (minutes < 10) {
  var minutes = "0" + minutes;
 }
 if (seconds < 10) {
  var seconds = "0" + seconds;
 }

 var dateStr = year + "/" + month + "/" + day + "  " + hours + ":" + minutes + ":" + seconds;

 return dateStr;
}

function radioFun() {
 var number = $("input:checked").parents("tr").find("td").eq(1).text();
 $("#number").val(number);

 var name = $("input:checked").parents("tr").find("td").eq(2).text();
 $("#name").val(name);

 var age = $("input:checked").parents("tr").find("td").eq(3).text();
 $("#age").val(age);

 var department = $("input:checked").parents("tr").find("td").eq(4).text();
 $("#department").val(department);

 var deleteFlag = $("input:checked").parents("tr").find("td").eq(5).text();
 $("#deleteFlag").val(deleteFlag);

 var deleteTime = $("input:checked").parents("tr").find("td").eq(6).text();
 $("#deleteTime").val(deleteTime);
 
 var creationTime = $("input:checked").parents("tr").find("td").eq(7).text();
 $("#creationTime").val(creationTime);
}
css代码
@charset "UTF-8";

.bodyDiv {
 width: 900px;
 height: auto;
 border: solid #BBB 1px;
 padding: 20px;
 margin: auto;
 position: absolute;
 left: 0;
 right: 0;
}

table {
 cellspacing: 0px;
 cellpadding: 0px;
 border-width: 1px 0px 0px 1px;
 border-collapse: collapse;
}

table td {
 padding: 0;
 border-width: 0px 1px 1px 0px;
}

.buttonTable tr {
 height: 50px;
 text-align: center;
}

.buttonTable td {
 width: 154px;
}

.showTable {
 border: solid #BBB 1px;
}
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/web-app_2_5.xsd"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
   http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   id="WebApp_ID" version="3.0">
   
   <display-name>Struts 2</display-name>
   
   <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>
log4j.properties文件代码
# Root logger option
log4j.rootLogger=INFO,stdout,FILE

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.appender.FILE=org.apache.log4j.RollingFileAppender  
log4j.appender.FILE.Append=true  
log4j.appender.FILE.File=../logs/log4jtest.log  
log4j.appender.FILE.Threshold=INFO  
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n  
表结构
create table ssh_people
(
  id serial,
  name varchar,
  age integer,
  department varchar,
  deleteFlag boolean,
  deleteTime varchar,
  creationTime varchar
)
struts.xml文件代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
 <constant name="struts.devMode" value="true" />
 <constant name="struts.action.extension" value="do,action," />

 <package name="get" namespace="/get" extends="struts-default">

  <action name="selectAction" class="com.highgo.ssh.action.PeopleAction"
   method="selectData">

   <result name="success">/index.jsp</result>
   <result name="error">/error.jsp</result>

  </action>

  <action name="insertAction" class="com.highgo.ssh.action.PeopleAction"
   method="insertData">

   <result name="success">/index.jsp</result>
   <result name="error">/error.jsp</result>

  </action>

  <action name="updateAction" class="com.highgo.ssh.action.PeopleAction"
   method="updateData">

   <result name="success">/index.jsp</result>
   <result name="error">/error.jsp</result>

  </action>

  <action name="deleteAction" class="com.highgo.ssh.action.PeopleAction"
   method="deleteData">

   <result name="success">/index.jsp</result>
   <result name="error">/error.jsp</result>

  </action>

  <action name="queryAction" class="com.highgo.ssh.action.PeopleAction"
   method="queryData">

   <result name="success">/index.jsp</result>
   <result name="error">/error.jsp</result>

  </action>

 </package>
</struts>
hibernate.cfg.xml文件代码
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
 <session-factory>
  <!-- 数据库连接 -->
  <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
  <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/postgres</property>
  <property name="hibernate.connection.username">postgres</property>
  <property name="hibernate.connection.password">highgo123</property>

  <!-- 数据库方言,为被选择的数据生成适当的SQL -->
  <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>

  <!-- 操作数据库时,向控制台打印SQL语句 -->
  <property name="hibernate.show_sql">true</property>
  
  <!-- 打印SQL语句之前,将SQL语句格式化 -->
  <property name="hibernate.format_sql">true</property>

   <!-- hbm2ddl.auto: 生成表结构的策略配置
             update(最常用的取值): 如果当前数据库中不存在表结构,那么自动创建表结构。
                          如果存在表结构,并且表结构与实体一致,那么不做修改。
                          如果存在表结构,并且表结构与实体不一致,那么会修改表结构.会保留原有列。
             create(很少):无论是否存在表结构.每次启动Hibernate都会重新创建表结构.(数据会丢失)。
             create-drop(极少): 无论是否存在表结构.每次启动Hibernate都会重新创建表结构.每次Hibernate运行结束时,删除表结构.
             validate(很少):不会自动创建表结构.也不会自动维护表结构.Hibernate只校验表结构. 如果表结构不一致将会抛出异常.
          -->
  <property name="hibernate.hbm2ddl.auto">update</property>
  
  <!-- 事务自动提交  -->
        <property name="hibernate.connection.autocommit">true</property>
  

  <!-- 注册映射文件 -->
  <mapping class="com.highgo.ssh.model.People" />
  <mapping resource="com/highgo/ssh/model/PeoplePost.hbm.xml" />
  <mapping resource="com/highgo/ssh/model/PeopleAjax.hbm.xml" />
 </session-factory>
</hibernate-configuration>
实体类People.java代码
package com.highgo.ssh.model;

import javax.persistence.*;

public class People {

 private int id;
 private String name;
 private int age;
 private String department;
 private boolean deleteFlag;
 private String deleteTime;
 private String creationTime;

 public Integer getId() {
  return id;
 }

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

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public int getAge() {
  return age;
 }

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

 public String getDepartment() {
  return department;
 }

 public void setDepartment(String department) {
  this.department = department;
 }

 public boolean getDeleteFlag() {
  return deleteFlag;
 }

 public void setDeleteFlag(boolean deleteFlag) {
  this.deleteFlag = deleteFlag;
 }

 public String getDeleteTime() {
  return deleteTime;
 }

 public void setDeleteTime(String deleteTime) {
  this.deleteTime = deleteTime;
 }

 public String getCreationTime() {
  return creationTime;
 }

 public void setCreationTime(String creationTime) {
  this.creationTime = creationTime;
 }

 public People() {

 }

 public People(Integer id, String name, int age, String department, 
   boolean deleteFlag, String deleteTime, String creationTime) {

  this.id = id;
  this.name = name;
  this.age = age;
  this.department = department;
  this.deleteFlag = deleteFlag;
  this.deleteTime = deleteTime;
  this.creationTime = creationTime;
 }

 @Override
 public String toString() {
  return "People [id=" + id + ", name=" + name + ", age=" + age 
    + ", department=" + department + ", deleteFlag="
    + deleteFlag + ", deleteTime=" + deleteTime 
    + ", creationTime=" + creationTime + "]";
 }
}
PeopleAction.java代码
package com.highgo.ssh.action;

import java.util.*;
import org.slf4j.*;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;

import com.highgo.ssh.model.People;
import com.highgo.ssh.service.PeopleService;

public class PeopleAction {

 Logger logger = LoggerFactory.getLogger(getClass());

 private People people;

 public People getPeople() {
  return people;
 }

 public void setPeople(People people) {
  this.people = people;
 }

 // 添加数据
 public String insertData() {

  String returnValue = "error";

  try {
   if (people == null) {

    returnValue = "error";

   } else {

    new PeopleService().insertData(people);

    returnValue = "success";
   }
  } catch (Exception e) {
   e.printStackTrace();

   logger.info(e.getMessage());

   returnValue = "error";
  }
  return returnValue;
 }

 // 查询数据
 public String selectData() {

  String returnValue = "error";

  boolean deleteFlag;
  try {

   if (people == null) {

    deleteFlag = false;

   } else {

    deleteFlag = people.getDeleteFlag();
   }

   List<People> list = new PeopleService().getList(deleteFlag);

   // 得到原生的request
   HttpServletRequest hsr = ServletActionContext.getRequest();

   hsr.setAttribute("list", list);

   returnValue = "success";

  } catch (Exception e) {

   logger.info(e.getMessage());

   returnValue = "error";
  }
  return returnValue;
 }

 // 修改数据
 public String updateData() {

  String returnValue = "error";

  try {
   if (people == null) {

    returnValue = "error";

   } else {

    new PeopleService().updateData(people);

    returnValue = "success";
   }
  } catch (Exception e) {
   e.printStackTrace();

   logger.info(e.getMessage());

   returnValue = "error";
  }
  return returnValue;
 }

 // 删除数据
 public String deleteData() {

  String returnValue = "error";

  try {
   // int id = people.getId();
   //
   // // 物理删除
   // new PeopleService().deleteData(id);

   if (people == null) {

    returnValue = "error";

   } else {
    // 逻辑删除
    new PeopleService().deleteData(people);

    returnValue = "success";
   }
  } catch (Exception e) {
   e.printStackTrace();

   logger.info(e.getMessage());

   returnValue = "error";
  }
  return returnValue;
 }

 // 条件查询数据
 public String queryData() {

  String returnValue = "error";

  try {
   if (people == null) {

    returnValue = "error";

   } else {

    String name = people.getName();
    int age = people.getAge();
    String department = people.getDepartment();

    List<People> list = new PeopleService().getPeopleList(name, age, department);

    // 得到原生的request
    HttpServletRequest hsr = ServletActionContext.getRequest();

    hsr.setAttribute("list", list);

    returnValue = "success";
   }
  } catch (Exception e) {
   e.printStackTrace();

   logger.info(e.getMessage());

   returnValue = "error";
  }
  return returnValue;
 }
}
PeopleService.java代码
package com.highgo.ssh.service;

import java.util.List;
import com.highgo.ssh.dao.PeopleDao;
import com.highgo.ssh.model.People;

public class PeopleService {

 // 添加数据
 public void insertData(People people) throws Exception {

  new PeopleDao().insertData(people);
 }

 // 查询数据
 public List<People> getList(boolean deleteFlag) throws Exception {

  List<People> list = new PeopleDao().getList(deleteFlag);

  return list;
 }

 // 修改数据
 public void updateData(People people) throws Exception {

  new PeopleDao().updateData(people);

 }

 // // 物理删除数据
 // public void deleteData(int id) {
 //
 // new PeopleDao().deleteData(id);
 //
 // }

 // 逻辑删除数据
 public void deleteData(People people) throws Exception {

  new PeopleDao().deleteData(people);

 }

 // 条件查询
 public List<People> getPeopleList(String name, int age, String department) throws Exception {

  List<People> list = new PeopleDao().getPeopleList(name, age, department);

  return list;
 }
}
PeopleDao.java代码
package com.highgo.ssh.dao;

import java.util.*;
import org.hibernate.*;
import org.hibernate.service.*;
import org.hibernate.cfg.Configuration;

import com.highgo.ssh.model.People;

public class PeopleDao {

 private Configuration configuration = null;
 private ServiceRegistry serviceRegistry = null;

 private SessionFactory sessionFactory = null;
 private Session session = null;
 private Transaction transaction = null;

 public PeopleDao() {
  configuration = new Configuration().configure();
  serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
    .buildServiceRegistry();
 }

 private void init() {
  sessionFactory = configuration.buildSessionFactory(serviceRegistry);
  session = sessionFactory.openSession();
  transaction = session.beginTransaction();
 }

 private void destory() {
  transaction.commit();
  session.close();
  sessionFactory.close();
 }

 // 添加数据
 public void insertData(People people) throws Exception {

  init();

  session.save(people);

  destory();
 }

 // 查询数据
 public List<People> getList(boolean deleteFlag) throws Exception {
  List<People> list = new ArrayList<People>();

  init();

  String hql = "from com.highgo.ssh.model.People where deleteFlag = ? order by id";
  Query query = session.createQuery(hql);
  query.setParameter(0, deleteFlag);
  list = query.list();

  destory();

  return list;
 }

 // 修改数据
 public void updateData(People people) throws Exception {
  init();

  session.update(people);

  destory();
 }

 // // 物理删除数据
 // public void deleteData(int id) {
 // init();
 //
 // People people = (People) session.get(People.class, id);
 //
 // session.delete(people);
 //
 // destory();
 // }

 // 逻辑删除数据
 public void deleteData(People people) throws Exception {
  init();

  session.update(people);

  destory();
 }

 // 条件查询
 public List<People> getPeopleList(String name, int age, String department) throws Exception {
  List<People> list = new ArrayList<People>();

  init();

  String hql = "from People where name = ? and age = ? and department = ? order by id";
  Query query = session.createQuery(hql);
  query.setParameter(0, name);
  query.setParameter(1, age);
  query.setParameter(2, department);
  list = query.list();

  destory();

  return list;
 }
}
映射文件People.hbm.xml代码
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
 <class name="com.highgo.ssh.model.People" table="ssh_people">
  <id name="id" column="id" type="int">
   <generator class="native" />
  </id>
  <property name="name" column="name" type="string" />
  <property name="age" column="age" type="int" />
  <property name="department" column="department" type="string" />
  <property name="deleteFlag" column="deleteFlag" type="boolean" />
  <property name="deleteTime" column="deleteTime" type="string" />
  <property name="creationTime" column="creationTime" type="string" />
 </class>
</hibernate-mapping>
error.jsp页面代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<html>
<head>
<title>错误页面</title>
</head>
<body>
发生错误!
</body>
</html>

2.Ajax请求,在这里只写不一样的代码,一样的就不写了,一些变量名和类名不一样,只是命名的时候加了个Ajax,数据库名也不一样但结构一样。

jsp页面代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<%
 String path = request.getContextPath();
 String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE html>
<html>
<head>
<title>ssh整合</title>

<base href="<%=basePath%>" />

<link type="text/css" rel="stylesheet" href="css/style.css">

<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/script.js"></script>

</head>
<body>
 <div class="bodyDiv" align="center">
 
  <a href="index.jsp">转到Get请求</a> 
  <a href="indexPost.jsp">转到Post请求</a>
  
  <hr />
  Ajax
  <table class="buttonTableAjax">
   <tr>
    <td><input type="button" value="查询" onclick="selectAjaxFun()"></td>
    <td><input type="button" value="新增" onclick="insertAjaxFun()"></td>
    <td><input type="button" value="修改" onclick="updateAjaxFun()"></td>
    <td><input type="button" value="删除" onclick="deleteAjaxFun()"></td>
    <td><input type="button" value="搜索" onclick="searchAjaxFun()"></td>
   </tr>
  </table>

  <table>
   <tr height="50">
    <td width="50">姓名:</td>
    <td width="223">
     <input type="text" name="nameAjax"id="nameAjax">
    </td>
    
    <td width="50">年龄:</td>
    <td width="223">
     <input type="text" name="ageAjax" id="ageAjax">
    </td>
    
    <td width="50">部门:</td>
    <td width="173">
     <input type="text" name="departmentAjax" id="departmentAjax"> 
     <input type="hidden" name="idAjax" id="numberAjax" value=""> 
     <input type="hidden" name="deleteFlagAjax" id="deleteFlagAjax" value="false"> 
     <input type="hidden" name="deleteTimeAjax" id="deleteTimeAjax" value="">
     <input type="hidden" name="creationTimeAjax" id="creationTimeAjax" value="">
    </td>
   </tr>
  </table>

  <hr />
  <br />

  <table id="showTableAjax">
   <tr align="center" height="30">
    <td width="50">选择</td>
    <td width="50">序号</td>
    <td width="80">姓名</td>
    <td width="50">年龄</td>
    <td width="150">部门</td>
    <td width="100">删除标志</td>
    <td width="200">删除时间</td>
    <td width="200">创建时间</td>
   </tr>
  </table>
 </div>
</body>
</html>
PeopleAjaxAction.java代码
package com.highgo.ssh.action;

import java.util.List;
import org.slf4j.*;
import net.sf.json.JSONArray;

import com.highgo.ssh.model.PeopleAjax;
import com.highgo.ssh.service.PeopleAjaxService;

public class PeopleAjaxAction {

 Logger logger = LoggerFactory.getLogger(getClass());

 private PeopleAjax peopleAjax;
 private String result;

 public PeopleAjax getPeopleAjax() {
  return peopleAjax;
 }

 public void setPeopleAjax(PeopleAjax peopleAjax) {
  this.peopleAjax = peopleAjax;
 }

 public String getResult() {
  return result;
 }

 public void setResult(String result) {
  this.result = result;
 }

 // 添加数据
 public String insertData() {

  String returnValue = "error";

  try {
   if (peopleAjax == null) {

    returnValue = "error";

   } else {
    new PeopleAjaxService().insertData(peopleAjax);

    returnValue = "success";
   }
  } catch (Exception e) {
   e.printStackTrace();

   logger.info(e.getMessage());

   returnValue = "error";
  }
  return returnValue;
 }

 // 查询数据
 public String selectData() {

  String returnValue = "error";

  boolean deleteFlag;

  try {

   if (peopleAjax == null) {

    deleteFlag = false;

   } else {

    deleteFlag = peopleAjax.getDeleteFlagAjax();
   }

   List<PeopleAjax> list = new PeopleAjaxService().getList(deleteFlag);

   result = JSONArray.fromObject(list).toString();

   returnValue = "success";

  } catch (Exception e) {
   e.printStackTrace();

   logger.info(e.getMessage());

   returnValue = "error";
  }
  return returnValue;
 }

 // 修改数据
 public String updateData() {

  String returnValue = "error";

  try {
   if (peopleAjax == null) {

    returnValue = "error";

   } else {
    new PeopleAjaxService().updateData(peopleAjax);

    returnValue = "success";
   }
  } catch (Exception e) {
   e.printStackTrace();

   logger.info(e.getMessage());

   returnValue = "error";
  }
  return returnValue;
 }

 // 删除数据
 public String deleteData() {

  String returnValue = "error";

  try {
   // int id = peopleAjax.getId();
   //
   // // 物理删除
   // new PeopleAjaxService().deleteData(id);

   // 逻辑删除

   if (peopleAjax == null) {

    returnValue = "error";

   } else {
    new PeopleAjaxService().deleteData(peopleAjax);

    returnValue = "success";
   }
  } catch (Exception e) {
   e.printStackTrace();

   logger.info(e.getMessage());

   returnValue = "error";
  }
  return returnValue;
 }

 // 条件查询数据
 public String queryData() {

  String returnValue = "error";

  try {
   if (peopleAjax == null) {

    returnValue = "error";

   } else {
    String name = peopleAjax.getNameAjax();
    int age = peopleAjax.getAgeAjax();
    String department = peopleAjax.getDepartmentAjax();

    List<PeopleAjax> list = new PeopleAjaxService().getPeopleList(name, age, department);

    result = JSONArray.fromObject(list).toString();

    returnValue = "success";
   }
  } catch (Exception e) {
   e.printStackTrace();

   logger.info(e.getMessage());

   returnValue = "error";
  }
  return returnValue;
 }
}
struts.xml文件代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
 <constant name="struts.devMode" value="true" />
 <constant name="struts.action.extension" value="do,action," />

 <package name="Ajax" namespace="/Ajax" extends="json-default">

  <action name="selectAction" class="com.highgo.ssh.action.PeopleAjaxAction"
   method="selectData">

   <result name="success" type="json"></result>

  </action>

  <action name="insertAction" class="com.highgo.ssh.action.PeopleAjaxAction"
   method="insertData">

   <result name="success">/indexAjax.jsp</result>
   <result name="error">/error.jsp</result>

  </action>

  <action name="updateAction" class="com.highgo.ssh.action.PeopleAjaxAction"
   method="updateData">

   <result name="success">/indexAjax.jsp</result>
   <result name="error">/error.jsp</result>

  </action>

  <action name="deleteAction" class="com.highgo.ssh.action.PeopleAjaxAction"
   method="deleteData">

   <result name="success">/indexAjax.jsp</result>
   <result name="error">/error.jsp</result>

  </action>

  <action name="queryAction" class="com.highgo.ssh.action.PeopleAjaxAction"
   method="queryData">

   <result name="success" type="json"></result>

  </action>

 </package>

</struts>
Js代码
function errorPopup(status) {
 if (status == 404) {
  alert("找不到页面");
 } else if (status == 500) {
  alert("内部服务器出错");
 }
}

function getDate() {
 var date = new Date();

 var year = date.getFullYear();
 var month = date.getMonth() + 1;
 var day = date.getDate();
 var hours = date.getHours();
 var minutes = date.getMinutes();
 var seconds = date.getSeconds();

 if (hours < 10) {
  var hours = "0" + hours;
 }
 if (minutes < 10) {
  var minutes = "0" + minutes;
 }
 if (seconds < 10) {
  var seconds = "0" + seconds;
 }

 var dateStr = year + "/" + month + "/" + day + "  " + hours + ":" + minutes + ":" + seconds;

 return dateStr;
}

function radioFun() {
 var number = $("input:checked").parents("tr").find("td").eq(1).text();
 $("#numberAjax").val(number);

 var name = $("input:checked").parents("tr").find("td").eq(2).text();
 $("#nameAjax").val(name);

 var age = $("input:checked").parents("tr").find("td").eq(3).text();
 $("#ageAjax").val(age);

 var department = $("input:checked").parents("tr").find("td").eq(4).text();
 $("#departmentAjax").val(department);

 var deleteFlag = $("input:checked").parents("tr").find("td").eq(5).text();
 $("#deleteFlagAjax").val(deleteFlag);

 var deleteTime = $("input:checked").parents("tr").find("td").eq(6).text();
 $("#deleteTimeAjax").val(deleteTime);

 var creationTime = $("input:checked").parents("tr").find("td").eq(7).text();
 $("#creationTimeAjax").val(creationTime);
}
function PeopleAjax() {
 
 var peopleAjax = {
  "peopleAjax.nameAjax" : $("#nameAjax").val(),
  "peopleAjax.ageAjax" : $("#ageAjax").val(),
  "peopleAjax.departmentAjax" : $("#departmentAjax").val(),
  "peopleAjax.idAjax" : $("#numberAjax").val(),
  "peopleAjax.deleteFlagAjax" : $("#deleteFlagAjax").val(),
  "peopleAjax.deleteTimeAjax" : $("#deleteTimeAjax").val(),
  "peopleAjax.creationTimeAjax" : $("#creationTimeAjax").val()
 };
 
 return peopleAjax;
}

function selectAjaxFun() {
 $("#deleteFlagAjax").val(false);
 
 var peopleAjax = PeopleAjax();

 $.ajax({
  url : "Ajax/selectAction.do",
  type : "post",
  data : peopleAjax,
  success : function(resp) {
//    console.log(resp);
//    console.log(resp.result);
   
   $("#showTableAjax tr:gt(0)").remove();
   
   var dataArray = JSON.parse(resp.result);
   
   for (var i = 0; i < dataArray.length; i++) {

    var str = '<tr align="center" height="30">'
      + '<td><input name="radio" type="radio" onclick="radioFun()"></td><td>' 
      + dataArray[i].idAjax + '</td><td>' 
      + dataArray[i].nameAjax + '</td><td>' 
      + dataArray[i].ageAjax + '</td><td>' 
      + dataArray[i].departmentAjax + '</td><td>' 
      + dataArray[i].deleteFlagAjax + '</td><td>' 
      + dataArray[i].deleteTimeAjax+ '</td><td>'
      + dataArray[i].creationTimeAjax + '</td></tr>';

    $("#showTableAjax").append(str);

   }
  },
  error : function(resp) {
   var status = resp.status;
   errorPopup(status);
  }
 });
}

function insertAjaxFun() {
 $("#deleteFlagAjax").val(false);
 
 var dateStr = getDate();
 $("#creationTimeAjax").val(dateStr);

 var peopleAjax = PeopleAjax();

 $.ajax({
  url : "Ajax/insertAction.do",
  type : "post",
  data : peopleAjax,
  success : function(resp) {
   selectAjaxFun();
  },
  error : function(resp) {
   var status = resp.status;
   errorPopup(status);
  }
 });
}

function updateAjaxFun() {
 $("#deleteFlagAjax").val(false);
 
 var peopleAjax = PeopleAjax();

 $.ajax({
  url : "Ajax/updateAction.do",
  type : "post",
  data : peopleAjax,
  success : function(resp) {
   selectAjaxFun();
  },
  error : function(resp) {
   var status = resp.status;
   errorPopup(status);
  }
 });
}

function deleteAjaxFun() {
 $("#deleteFlagAjax").val(true);

 var dateStr = getDate();
 $("#deleteTimeAjax").val(dateStr);

 var peopleAjax = PeopleAjax();

 $.ajax({
  url : "Ajax/deleteAction.do",
  type : "post",
  data : peopleAjax,
  success : function(resp) {
   selectAjaxFun();
  },
  error : function(resp) {
   var status = resp.status;
   errorPopup(status);
  }
 });
}

function searchAjaxFun() {

 var peopleAjax = PeopleAjax();
 $("#deleteFlagAjax").val(false);

 $.ajax({
  url : "Ajax/queryAction.do",
  type : "post",
  data : peopleAjax,
  success : function(resp) {
//   console.log(resp);
//   console.log(resp.result);
   
   $("#showTableAjax tr:gt(0)").remove();
   
   var dataArray = JSON.parse(resp.result);
   
   for (var i = 0; i < dataArray.length; i++) {

    var str = '<tr align="center" height="30">'
     + '<td><input name="radio" type="radio" onclick="radioFun()"></td><td>' 
     + dataArray[i].idAjax + '</td><td>' 
     + dataArray[i].nameAjax + '</td><td>' 
     + dataArray[i].ageAjax + '</td><td>' 
     + dataArray[i].departmentAjax + '</td><td>' 
     + dataArray[i].deleteFlagAjax + '</td><td>' 
     + dataArray[i].deleteTimeAjax+ '</td><td>'
     + dataArray[i].creationTimeAjax + '</td></tr>';

    $("#showTableAjax").append(str);

   }
  },
  error : function(resp) {
   var status = resp.status;
   errorPopup(status);
  }
 });
}

五.学习总结

已经学习了两个框架了,感觉代码越来越少,但是好多地方不好理解,所以要想学好,就要仔细研究,我出的问题一般都是因为jar包的问题,所以代码虽然少了,但更要仔细认真。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP