J2EE 实验6

更新时间:2023-10-10 17:07:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

淮海工学院计算机工程学院

实验报告书

课程名: 《J2EE环境与程序设计》

题 目: 使用Hibernate快速实现持久层处理 班 级: G计算机131班 学 号: 2013150225 姓 名: 贲新宇

评语: 成绩: 指导教师: 批阅时间: 年 月 日

《 数据库原理及应用 》实验报告 - 1 –

一. 目的与要求

掌握Hibernate框架的基本使用方法,能够完成Java对象与数据表的映射定义,实现对象与对象间的一对多关联。

二. 实验内容

基于Hibernate框架完成具有一对多关系的两类对象的数据持久化操作。

三. 实验步骤

1.创建一个动态Web项目,项目名称为:HibernateEx。 2.从58.192.23.8下载struts2.1-hibernate3-mysqljdbc-lib.rar ,将其中的jar文件解压到WEB-INF/lib文件夹中。 3.准备Mysql实验环境。从58.192.23.8下载wamp-server-wamp5-2.0h.zip 解压后安装其中的wamp。

《 数据库原理及应用 》实验报告 - 2 –

执行以下SQL语句,创建两个表: CREATE TABLE `guestbook` (

`id` int(11) NOT NULL auto_increment, `userid` int(11) NOT NULL,

`title` varchar(500) default NULL,

`contents` varchar(1000) default NULL, PRIMARY KEY (`id`), KEY `userid` (`userid`)

);

CREATE TABLE `user` (

`id` int(11) NOT NULL auto_increment, `username` varchar(50) default NULL, `password` varchar(50) default NULL, `firstname` varchar(50) default NULL, `lastname` varchar(50) default NULL, `age` int(11) default NULL, PRIMARY KEY (`id`)

);

4.创建Hibernate 会话工厂类: package test;

import org.hibernate.HibernateException; import org.hibernate.Session;

import org.hibernate.cfg.Configuration; /**

* Configures and provides access to Hibernate sessions, tied to the * current thread of execution. Follows the Thread Local Session * pattern, see {@link http://hibernate.org/42.html }. */

public class HibernateSessionFactory { /**

* Location of hibernate.cfg.xml file.

* Location should be on the classpath as Hibernate uses * #resourceAsStream style lookup for its configuration file. * The default classpath location of the hibernate config file is * in the default package. Use #setConfigFile() to update

* the location of the configuration file for the current session. */

private static String CONFIG_FILE_LOCATION = \ private static final ThreadLocal threadLocal = new ThreadLocal(); private static Configuration configuration = new Configuration(); private static org.hibernate.SessionFactory sessionFactory; private static String configFile = CONFIG_FILE_LOCATION; static { try { configuration.configure(configFile); sessionFactory = configuration.buildSessionFactory();

《 数据库原理及应用 》实验报告 - 3 –

} catch (Exception e) { System.err .println(\ e.printStackTrace(); } }

private HibernateSessionFactory() { } /**

* Returns the ThreadLocal Session instance. Lazy initialize * the SessionFactory if needed. *

* @return Session

* @throws HibernateException */

public static Session getSession() throws HibernateException { Session session = (Session) threadLocal.get(); if (session == null || !session.isOpen()) { if (sessionFactory == null) { rebuildSessionFactory(); } session = (sessionFactory != null) ? sessionFactory.openSession() : null; threadLocal.set(session); }

return session; } /**

* Rebuild hibernate session factory * */ public static void rebuildSessionFactory() { try { configuration.configure(configFile); sessionFactory = configuration.buildSessionFactory(); } catch (Exception e) { System.err .println(\ e.printStackTrace(); } } /**

* Close the single hibernate session instance. *

* @throws HibernateException */

《 数据库原理及应用 》实验报告 - 4 –

public static void closeSession() throws HibernateException { Session session = (Session) threadLocal.get(); threadLocal.set(null); if (session != null) { session.close(); } } /**

* return session factory * */ public static org.hibernate.SessionFactory getSessionFactory() { return sessionFactory; } /**

* return session factory *

* session factory will be rebuilded in the next call */ public static void setConfigFile(String configFile) { HibernateSessionFactory.configFile = configFile; sessionFactory = null; } /**

* return hibernate configuration * */ public static Configuration getConfiguration() { return configuration; } }

5.创建User类: package com.un;

import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class User { // Fields private Integer id; private String username; private String password; private Set gbset = new HashSet(); private List gblist=new ArrayList(); private static final long serialVersionUID = -2L;

本文来源:https://www.bwwdw.com/article/klsf.html

Top