Hibernate+Struts2

29 篇文章 0 订阅

Hibernate+Struts2

这里采用Maven项目进行整合
pom.xml文件添加相关依赖

<?xml version="1.0" encoding="UTF-8"?>

<!-- $Id: pom.xml 642118 2008-03-28 08:04:16Z reinhard $ -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <packaging>war</packaging>

  <name>Young01</name>
  <groupId>com.young</groupId>
  <artifactId>Young01</artifactId>
  <version>1.0-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <version>6.1.7</version>
        <configuration>
          <connectors>
            <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
              <port>8888</port>
              <maxIdleTime>30000</maxIdleTime>
            </connector>
          </connectors>
          <webAppSourceDirectory>${project.build.directory}/${pom.artifactId}-${pom.version}</webAppSourceDirectory>
          <contextPath>/</contextPath>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>6</source>
          <target>6</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <!--dependency>
      <groupId>com.young</groupId>
      <artifactId>[the artifact id of the block to be mounted]</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency-->
    <!-- junit 测试 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.27</version>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
      <version>5.3.2.Final</version>
    </dependency>
    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts2-core</artifactId>
      <version>2.3.37</version>
    </dependency>
  </dependencies>

</project>

修改web.xml,代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

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

我们创建一个软件包,名为com.young.pojo,在这个包下创建Student.java

public class Student {
    private Integer id;
    private String name;
    private String grade;
    private String major;
    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 String getGrade() {
        return grade;
    }
    public void setGrade(String grade) {
        this.grade = grade;
    }
    public String getMajor() {
        return major;
    }
    public void setMajor(String major) {
        this.major = major;
    }
    @Override
    public String toString(){
        return "Student[id="+id+",name="+name+",grade="+grade+",major="+major+"]";
    }
}

创建一个软件包com.young.dao,用来进行数据库的访问,在包下创建StudentDao.java,代码如下:

public class StudentDao {
    private SessionFactory sessionFactory;
    public StudentDao(){
        sessionFactory=new Configuration().configure().buildSessionFactory();
    }
    public void add(Student student){
        Session session=sessionFactory.openSession();
        session.beginTransaction();
        session.save(student);
        session.getTransaction().commit();
        session.close();
        sessionFactory.close();
    }
    public void update(Student student){
        Session session=sessionFactory.openSession();
        session.beginTransaction();
        session.update(student);
        session.getTransaction().commit();
        session.close();
        sessionFactory.close();
    }
    public Student get(Integer id){
        Session session=sessionFactory.openSession();
        session.beginTransaction();
        Student student=session.get(Student.class,id);
        session.getTransaction().commit();
        session.close();
        sessionFactory.close();
        return student;
    }
    public void delete(Integer id){
        Student student=get(id);
        Session session=sessionFactory.openSession();
        session.beginTransaction();
        session.delete(student);
        session.getTransaction().commit();
        session.close();
        sessionFactory.close();
    }
    public List<Student>list(){
        Session session=sessionFactory.openSession();
        session.beginTransaction();
        Query query=session.createQuery("from Student");
        List<Student>list=query.list();
        session.getTransaction().commit();
        session.close();
        sessionFactory.close();
        return list;
    }
}

创建com.young.action,在这个包下创建StudentAction.java

public class StudentAction {
    private Student student;
    private List<Student>students;
    private StudentDao studentDao=new StudentDao();
    public Student getStudent() {
        return student;
    }
    public void setStudent(Student student) {
        this.student = student;
    }
    public List<Student> getStudents() {
        return students;
    }
    public void setStudents(List<Student> students) {
        this.students = students;
    }
    public String list(){
        students=studentDao.list();
        return "listJsp";
    }
    public String add(){
        studentDao.add(student);
        return "ok";
    }
    public String update(){
        studentDao.update(student);
        return "ok";
    }
    public String delete(){
        studentDao.delete(student.getId());
        return "ok";
    }
    public String edit(){
        student=studentDao.get(student.getId());
        return "ok";
    }
}

创建hibernate.cfg.xml,代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!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>
        <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/young?useSSL=false&amp;serverTimezone=UTC</property>
        <property name="connection.username">root</property>
        <property name="connection.password">4675363</property>
        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="hibernate.format_sql">true</property>
        <mapping resource="Student.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

Student.hbm.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.young.pojo">
    <class name="Student" table="student_">
        <id name="id" column="id">
            <generator class="native"/>
        </id>
        <property name="name"/>
        <property name="grade"/>
        <property name="major"/>
    </class>
</hibernate-mapping>

在WEB-INF下创建classes目录,在该目录下创建struts.xml

<?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>
    <package name="demo" extends="struts-default" namespace="/">
        <action name="addStudent" class="com.young.action.StudentAction" method="add">
            <result name="ok" type="chain">listStudent</result>
        </action>
        <action name="editStudent" class="com.young.action.StudentAction" method="edit">
            <result name="ok">/edit.jsp</result>
        </action>
        <action name="deleteStudent" class="com.young.action.StudentAction" method="delete">
            <result name="ok" type="chain">listStudent</result>
        </action>
        <action name="updateStudent" class="com.young.action.StudentAction" method="update">
            <result name="ok" type="chain">listStudent</result>
        </action>
        <action name="listStudent" class="com.young.action.StudentAction" method="list">
            <result name="listJsp">/list.jsp</result>
        </action>
    </package>
</struts>

在webAPP目录下,创建index.jsp,代码如下:

<% response.sendRedirect("http://localhost:8080/Young01/listStudent");%>

list.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java"
    pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>学生信息</title>
</head>
<body>
    <form action="addStudent" method="post" style="border:1px solid black">
    姓名:<input type="text" name="student.name"><br>
    年级:<input type="text" name="student.grade"><br>
    专业:<input type="text" name="student.major"><br>
    <input type="submit" value="添加">
    </form>
    <hr>
    <table>
    <tr>
    <td>学号</td>
    <td>姓名</td>
    <td>年级</td>
    <td>专业</td>
    <td>编辑</td>
    <td>删除</td>
    </tr>
    <s:iterator value="students" var="st">
    <tr>
    <td>${st.id}</td>
    <td>${st.name}</td>
    <td>${st.grade}</td>
    <td>${st.major}</td>
    <td><a href="http://localhost:8080/Young01/editStudent?student.id=${st.id}">编辑</a></td>
    <td><a href="http://localhost:8080/Young01/deleteStudent?student.id=${st.id}">删除</a></td>
    </tr>
    </s:iterator>
    </table>
</body>
</html>

edit.jsp

<%@ page language="java" contentType="text/html;charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<title>修改页面</title>
<base href="http://localhost:8080/Young01/edit.jsp">
</head>
<body>
    <form action="updateStudent" method="post">
    姓名:<input type="text" name="student.name" value="${student.name}"><br>
    年级:<input type="text" name="student.grade" value="${student.grade}"><br>
    专业:<input type="text" name="student.major" value="${student.major}"><br>
    <input type="text" name="student.id" value="${student.id}" hidden><br>
    <input type="submit" value="修改">
    <button style="width:50px;height:30px"><a href="listStudent">返回</a></button>
    </form>
</body>
</html>

完整目录如下:
在这里插入图片描述
启动Tomcat,效果如下:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值