第一章:Struts2与Hibernate整合

1.课程简介

2.界面原型演示

3.Struts2与Hibernate整合

4.创建实体类

5.生成实体映射文件

6.生成表结构

1.课程简介

  • Struts2+Hibernate4实现的简单的CRUD案例
  • 完成功能:

  后台登录

  学生表的增删改查

环境:Struts2.3.4+Hibernate4.2.4+MySQL6.0

2.界面原型演示

  • 界面演示

3.Struts2与Hibernate整合

  • 创建struts2和hibernate用户类库
  • 导入struts2与hibernate的jar包
  • 配置web.xml
  • 创建struts.xml
  • 配置hibernate.cfg.xml

配置web.xml

创建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="default" namespace="/" extends="struts-default"> </package>
</struts>

配置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>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///test?useUnicode=true&characterEncoding=UTF-8</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<property name="hibernate.current_session_context_class">thread</property> </session-factory>
</hibernate-configuration>

4.创建实体类

创建两个实体类:用户类、学生类,对应两个表

  • 用户表
  • 学生表

用户类

package entity;
//用户类
public class Users { private int uid;
private String username;
private String password;
//保留不带参数的构造方法
public Users() { } public Users(int uid, String username, String password) {
//super();
this.uid = uid;
this.username = username;
this.password = password;
} public int getUid() {
return uid;
} public void setUid(int uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
} }

学生类

package entity;

import java.util.Date;

//学生类
public class Students { private String sid;//学号
private String sname;//姓名
private String gender;//性别
private Date birthday;//出生日期
private String address;//地址 public Students() { } public Students(String sid, String sname, String gender, Date birthday,
String address) {
//super();
this.sid = sid;
this.sname = sname;
this.gender = gender;
this.birthday = birthday;
this.address = address;
} public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
} @Override
public String toString() {
return "Students [sid=" + sid + ", sname=" + sname + ", gender="
+ gender + ", birthday=" + birthday + ", address=" + address
+ "]";
} }

5.生成实体映射文件

  • Users.hbm.xml
  • Students.hbm.xml

Users.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="entity.Users" table="USERS">
<id name="uid" type="int">
<generator class="native"/>
</id>
<property name="username" type="java.lang.String"/>
<property name="password" type="java.lang.String"/>
</class> </hibernate-mapping>

Students.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="entity.Students" table="STUDENTS">
<!-- 学号长度8位 -->
<id name="sid" type="java.lang.String" length="8">
<!-- assigned手工赋值 -->
<generator class="assigned"/>
</id>
<property name="sname" type="java.lang.String"/>
<property name="gender" type="java.lang.String"/>
<property name="birthday" type="date"/>
<property name="address" type="java.lang.String"/>
</class> </hibernate-mapping>

6.生成表结构

  • 使用SchemaExport生成表结构

  把刚才生成的两个对象关系映射文件加到主配置文档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>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///test?useUnicode=true&characterEncoding=UTF-8</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<property name="hibernate.current_session_context_class">thread</property> <mapping resource="entity/Students.hbm.xml"/>
<mapping resource="entity/Users.hbm.xml"/>
</session-factory>
</hibernate-configuration>

使用SchemaExport生成表结构

TestStudents.java

package entity;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Test; public class TestStudents { @Test
public void testSchemaExport(){ //创建配置对象
Configuration config=new Configuration().configure();
//创建服务注册对象
ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
//创建sessionFactory
SessionFactory sessionFactory=config.buildSessionFactory(serviceRegistry);
//创建session对象
Session session = sessionFactory.getCurrentSession();
//创建SchemaExport对象
SchemaExport export = new SchemaExport(config);
export.create(true, true);//第一个参数表示生成表结构,第二个参数表示输出sql语句
}
}

使用Struts2+Hibernate开发学生信息管理功能1的更多相关文章

  1. 【学员管理系统】0x02 学生信息管理功能

    [学员管理系统]0x02 学生信息管理功能 写在前面 项目详细需求参见:Django项目之[学员管理系统] Django框架大致处理流程 捋一下Django框架相关的内容: 浏览器输入URL到页面展示 ...

  2. struts2+hibernate整合-实现登录功能

    最近一直学习struts2+hibernate框架,于是想把两个框架整合到一起,做一个小的登录项目.其他不多说,直接看例子. 1).Struts2 和hibernate的环境配置 包括jar包.web ...

  3. struts2+Hibernate实现用户登陆功能

    实现的功能,在登陆页面输入Username和PassWord后,将username和password通过Hibernate匹对数据库是否含有一样的username和password,若有则登陆进去,若 ...

  4. 使用Struts+Hibernate开发学生信息管理系统

    1.项目组织结构 2.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app vers ...

  5. 基于Struts2+Hibernate开发小区物业管理系统 附源码

    开发环境: Windows操作系统开发工具: MyEclipse+Jdk+Tomcat+MySql数据库 运行效果图: 源码及原文链接:https://javadao.xyz/forum.php?mo ...

  6. JavaWeb_(Hibernate框架)使用Hibernate开发用户注册功能

    使用Hibernate开发用户注册功能: 用户在register.jsp表单成功后,页面跳转到login.html,数据库中会存放用户注册的信息 <%@ page language=" ...

  7. JQuery+Ajax+Struts2+Hibernate 实现完整的登录注册

    写在最前: 下午有招聘会,不想去,总觉得没有准备好,而且都是一些不对口的公司,可是又静不下心来,就来写个博客. 最近在仿造一个书城的网站:http://www.yousuu.com ,UI直接拿来用, ...

  8. Struts2+Hibernate框架探险

    写这篇文章的目的 了解 JavaWeb 开发的人都知道SSH和SSM框架,前段时间开始接触 JavaWeb 开发,看了几个教学视频后就想上手构建一个小型 Web项目,可在跟着视频敲代码当中,使用 St ...

  9. Hibernate开发环境搭建

    一.下载Hibernate包的下载 官网地址:http://hibernate.org/orm/ 下载版本:hibernate-release-4.3.11.Final 二.Hibernate jar ...

随机推荐

  1. vue 强制刷新组件重新渲染

    实现功能:使用富文本编辑器编写文章,然后把编写成功的文章用子组件显示. 问题描述:父组件给子组件传递数据,子组件第一次调用数据的时候页面渲染是正常的,当数据变化的时候,子组件的页面渲染就失效了. 问题 ...

  2. SQL Server直接执行.sql文件

    SQL Server直接执行.sql文件    客户的数据库数据被篡改,利用Log Explorer工具根据日志生成的回滚脚本有200多M,不可能一下子扔到查询分析器里去执行,于是想是否SQL Ser ...

  3. 【51nod】1602 矩阵方程的解

    [51nod]1602 矩阵方程的解 这个行向量显然就是莫比乌斯函数啦,好蠢的隐藏方法= = 然后我们尝试二分,二分的话要求一个这个东西 \(H(n) = \sum_{i = 1}^{n} \mu(i ...

  4. 第十六章:网络IPC 套接字

    一.IP地址和端口 套接字接口可以用于计算机间通信.目前计算机间使用套接字通讯需要保证处于同一网段. 为了查看是否处于同一网段,我们可以使用IP地址判断. IP地址是计算机在网络中的唯一标识.IP地址 ...

  5. hadoop2.7.7 分布式集群安装与配置

    环境准备 服务器四台: 系统信息 角色 hostname IP地址 Centos7.4 Mster hadoop-master-001 10.0.15.100 Centos7.4 Slave hado ...

  6. raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)

    转自:http://www.cnblogs.com/xiaobinglife/articles/10716605.html 一.Django数据同步过程中遇到的问题: 1.raise Improper ...

  7. ASP.NET Core 入门(4)(IIS 部署前后端站点)

    .NET Core发布部署的文章园内有很多了,大家可以自行百度,该篇主要想总结需要注意的地方,列举前后端(比如前段 Vue,后端 WebAPI)在同一台服务器上的主要两种方式. 两种方式: 1. 前后 ...

  8. java 框架-分布式服务框架2Dubbo

    https://blog.csdn.net/houshaolin/article/details/76408399 1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的 ...

  9. 使用cakewalk将工程速度与音频速度对齐(扒带参考)

    题外话.cakewalk bandlab版免费 西贝柳斯打谱软件  fisrt版本 免费 (好像限制只能写4个声部) 1选中音频轨中的音频,按住alt+a调出audiosnap. 2点击    根据剪 ...

  10. Hibernate-validate工具类,手动调用校验返回结果

    引言:在常见的工程中,一般是在Controller中校验入参,校验入参的方式有多种,这里介绍的使用hibernate-validate来验证,其中分为手动和自动校验,自动校验可以联合spring,使用 ...