Eclipse 中 SSH 项目搭建图文教程(二)

本文介绍如何在Eclipse中搭建SSH项目并整合Hibernate框架,包括配置数据库连接、编写实体映射文件和配置Hibernate等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这一篇是承接上一篇文章《Eclipse 中 SSH 项目搭建图文教程(一)》写的,在前一篇文章搭建的环境及新建项目的基础上,主要说一说整合 Hibernate 部分。博客中以前写过一篇《Hibernate 简单入门》,可以作为参考。

由于前一篇文章是很早以前写的,现在都大半年过去了,得空写这一篇,所以环境上难免有些差异,主要有一下几点。

操作系统是 Win7 旗舰版 64 位。

开发环境又把原来的环境搭建了一次,避免与上篇文章中出现不一致的情况,安装包还是上篇文章中分享的那些包。

由于开发中已用了 Tomcat7,端口 8080 被占用,所以在新搭建的环境中,还是用原来的 Tomcat8,只是端口变为了 9090。

下面开始整合 Hibernate。

第一步,导入 Hibernate 所需要的包。

首先需要到官网下载 Hibernate 框架,下载地址为https://sourceforge.net/projects/hibernate/files/hibernate-orm/5.2.3.Final/hibernate-release-5.2.3.Final.zip/download,这里下载的版本是 hibernate-release-5.2.3.Final,下载后解压到 F 盘下。依次打开 F 盘 -> hibernate-release-5.2.3.Final -> lib -> required,把所有包复制到项目的 WebContent/WEB-INF/lib 下。

第二步,新建数据库,数据表。

在上篇文章中,我们搭建 Struts 的时候,项目新建了实体对象 UserDto,该对象中的属性常常是我们需要保存到数据库中的信息,所以我们对照该实体,创建表中相应的字段。

至于如何安装数据库,如何操作数据库,连接数据库的工具有哪些等,本博客中有多篇文章是写这方面的,可以在站内搜索并参考。

这里简单用 MySQL 数据库来存储数据,下面主要把语句和表结构的截图贴出来。

create database ssh;

create table user(username varchar(50) primary key, password varchar(100));


第三步,导入 JDBC 驱动包。

从上篇文章的分享链接中,下载 mysql-connector-java-5.1.26-bin.jar 包,复制到项目的 WebContent/WEB-INF/lib 下。

第四步,编写实体与表的对应关系映射文件。

新建映射文件 User.hbm.xml,最好和 UserDto.java 放在同一个包下,内容如下:

<?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 package="com.menglanglang.ssh.demo.dto">
    <class name="UserDto" table="USER">
        <id name="username" column="USERNAME"></id>
        <property name="password" column="PASSWORD" />
    </class>
</hibernate-mapping>

第五步,编写 hibernate 配置文件。

Hibernate 默认的配置文件名为 hibernate.cfg.xml,最好不要改,就取这名,和 struts.xml 文件一样,放在 src 目录下,内容如下:

<?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="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/ssh</property>
        <property name="connection.username">root</property>
        <property name="connection.password">123456</property>
        <!-- 方言配置 -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 控制台输出sql语句 -->
        <property name="show_sql">true</property>
        <!-- 实体类映射文件 -->
        <mapping resource="com/menglanglang/ssh/demo/dto/User.hbm.xml" />
    </session-factory>
</hibernate-configuration>

第六步,修改 LoginAction。

修改 LoginAction.java,直接在默认方法中加入保存数据部分的代码,详细如下:

package com.menglanglang.ssh.demo.action;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.menglanglang.ssh.demo.dto.UserDto;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
    private static final long serialVersionUID = 1L;
    private UserDto user;
    @Override
    public String execute() throws Exception {
        Configuration cfg = new Configuration();
        SessionFactory sf = cfg.configure().buildSessionFactory();
        Session session = sf.openSession();
        session.beginTransaction();
        session.save(user);
        session.getTransaction().commit();
        session.close();
        sf.close();
        return SUCCESS;
    }
    public UserDto getUser() {
        return user;
    }
    public void setUser(UserDto user) {
        this.user = user;
    }
}

第七步,测试。

发布并启动项目,在浏览器中运行 http://localhost:9090/SSH_Framework/login.jsp,输入信息,点击登陆,则会把添加的信息直接保存到数据库中,如下所示。




以上只是简单的导入了 Hibernate 的包,并简单的用实体测试了一下保存的效果,其实接下来还有很多很多需要优化的地方,比如取得 Session 等部分代码需要抽取并封装,以便于以后对实体做增删改查时,更加方便。

另外,Hibernate 的配置文件及其庞大和复杂,这里只是简单的配置了数据库,所以,任务多多,慢慢学,慢慢练,加油!

这部分只是简单的运用了 Hibernate 的事务处理,如果把 Spring 加入,则可以用 Spring 去管理事务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值