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

xiaoxiao2021-02-28  96

这一篇是承接上一篇文章《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 去管理事务。

转载请注明原文地址: https://www.6miu.com/read-55615.html

最新回复(0)