当前位置:文档之家› hibernate实验报告

hibernate实验报告

hibernate实验报告
hibernate实验报告

实验一Hibernate框架结构实验目的:

1、掌握java的反射技术

2、掌握Hibernate体系架构

3、熟练使用Hibernate进行简单应用

实验内容

1、将public class Student {

private int id;

private String name;

private int age;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.doczj.com/doc/da8498734.html, = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

保存到数据库中。

Model包Student.java

private Integer id;

private String username;

private String password;

private Integer age;

Student.hbm.xml

Util包 HibernateUtil.java

package util;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

public class HibernateUtil

{

private static SessionFactory sessionFactory;

static

{

try

{

// 获取sessionFactory

sessionFactory=new Configuration().configure().buildSessionFactory();

}

catch (Exception e)

{

System.err.println("构造sessionFactory出错:" + e.getMessage());

}

}

public static Session currentSession()

{

//获取session

Session session=sessionFactory.openSession();

return session;

}

//执行完后关闭session

public static void closeSession(Session session)

{

if (null!= session)

{

session.close();

}

}

}

Hibernate.cfg.xml

jdbc:mysql://localhost:3306/user

com.mysql.jdbc.Driver

root root

org.hibernate.dialect.MySQLDialect

true

Test1.java

package test;

import model.Student;

import org.hibernate.Session;

import org.hibernate.Transaction;

import util.HibernateUtil;

public class Test1

{

public static void main(String[] args)

{

Session session=HibernateUtil.currentSession();

Transaction tx=session.beginTransaction();

Student stu1=new Student();

Try

{

stu1.setUsername("xiaoming");

stu1.setPassword("5732");

stu1.setAge(24);

session.save(stu1);

https://www.doczj.com/doc/da8498734.html,mit();

} catch (Exception e)

{

tx.rollback();

} finally

{

session.close();

}

}

}

实验结果:

实验二对象映射

实验目的:

1掌握OID用法

2掌握一对一关联、一对多关联、多对多关联用法

3掌握集合对象的映射用法

4掌握继承的映射

实验内容

1、一个学生拥有一张借书卡,现在学生类和借书卡的定义如下,请将它们配置

成一对一的双向关联。

public class Student {

private int id;

private String name;

private int age;

private String sex;

private StuIdCard bookCard;

……

}

public class bookCard {

private int id;

private String num;

private Student student;

……

}

配置:

2、一个顾客在网上商店购物时,可以有多份订单,而一份订单只属于一个顾客。

其类的定义如下:

public class Customer implements Serializable {

private int id;

private String name;

private Set orders=new HashSet();

private Double money;}

public class Order implements Serializable {

private Long id;

private String orderNumber;

private Double price;

private Customer customer;

……}

请配置它们的xml。

3、每个人都有当前住址,其定义如下:

public class person {

private int id;

private String name;

private address address;}

public class address{

private String detail;

private String street;

}

请把address作为person的表字段进行配置,该如何配置?4、如下类,

public class Student {

private int id;

private String name;

private Set teachers = new HashSet();}

ublic class Teacher {

private int id;

private String name;

private Set students = new HashSet();}

请将其关系进行映射

一、Com.hibernate.pojo包student.java

private Integer sid;

private String name;

private String password;

private Integer age;

private Set stuidcards = new HashSet();

stuidcard.java

private Integer id;

private Student student;

private String num;

Student.hbm.xml

Stuidcard.hbm.xml

二、order.java

private Integer orderid;

private Customer customer;

private Integer number;

private Integer price;

customer.java

private Integer cid;

private String name;

private String money;

private Set orders = new HashSet(0);

Order.hbm.xml

Customer.hbm.xml

三、Address.hbm.xml

Person.hbm.xml

class="Address" column="addressId"/>

四、Student.hbm.xml

Teacher.hbm.xml

实验三事务处理

实验目的:

1、掌握事务的处理机制

2、掌握对象的三种状态

3、掌握并发访问方式

4、掌握数据持久层的设计方式

实验内容:

已知account类的定义如下:

package mypack;

import java.io.Serializable;

import java.util.Set;

public class Account implements Serializable {

private Long id;

private String name;

private double balance;

public Account(String name, double balance) {

https://www.doczj.com/doc/da8498734.html, = name;

this.balance = balance;

}

public Account() {

}

public Long getId() {

return this.id;

}

public void setId(Long id) {

this.id = id;

}

public String getName() {

return https://www.doczj.com/doc/da8498734.html,;

}

public void setName(String name) {

https://www.doczj.com/doc/da8498734.html, = name;

}

public double getBalance() {

return this.balance;

}

public void setBalance(double balance) {

this.balance = balance;

}

}

1、

(1)请以数据库系统的独占锁--悲观锁方式读取一个account账户实例

(2)请将account改写,利用Hibernate的版本控制实现乐观锁

1.独占锁方式读取一个account账户实例

测试类:

public static void main(String[] args)

{

SessionFactory sessionFactory = new

Configuration().configure().buildSessionFactory();

Session session = sessionFactory.openSession();

Transaction tx = session.beginTransaction();

Account account=(Account)session.get(Account.class,1L,LockMode.NONE);

System.out.println(account.getId() + " " + account.getName());

https://www.doczj.com/doc/da8498734.html,mit();

session.close();

sessionFactory.close();

}

Account.hbm.xml

(2)请将account改写,利用Hibernate的版本控制实现乐观锁

数据库表:增加一个属性version;

Pojo类:private Long id;

private String name;

private double balance;

Private Long version;

Account.hbm.xml

测试类:

public static void main(String[] args)

{

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

Session session = sessionFactory.openSession();

Transaction tx = session.beginTransaction();

Account account = new Account();

account.setName("james");

account.setBalance(300);

System.out.println(account.getName() + " " + account.getBalance() +

" " + account.getVersion());

session.save(account);

https://www.doczj.com/doc/da8498734.html,mit();

session.close();

sessionFactory.close();

}

2、元素的lazy和fetch属性的检索策略

实验四对象检索

实验目的:

1、掌握HQL查询用法

实验内容:

已知类定义如下:

public class student {

private int id;

private String name;

private team team;

private int age}

public class team {

private int id;

private String name;}

1、把所有姓“李”学生显示出来

2、统计参加了团队的学生总人数

3、显示年龄在18和20之间的学生

4、定义一个方法,实现分页显示,指定oid的team所包含的学生,要求每页显示5名学生。

前三小题

public static void main(String[] args)

{

SessionFactory sessionFactory = new

Configuration().configure().buildSessionFactory();

Session session = sessionFactory.openSession();

Transaction tx = session.beginTransaction();

// 输出a开始的名字名字

List stu =

session.createQuery("from Student s where https://www.doczj.com/doc/da8498734.html, like 'a%'").list();

// 显示年龄在18和20之间的学生

List stu =

session.createQuery("from Student s where s.age between 18 and 20").list();

select count(team_id) from Student

for (int a = 0; a < stu.size(); a++)

{

Student student = (Student) stu.get(a);

System.out.println(student.getId() + " " + student.getName());

}

// 统计参加了团队的学生总人数

List list = null;

String hql = "from Student as s where team_id is not null";

Query query = session.createQuery(hql);

list = (List) query.list();

System.out.println(list.size());

https://www.doczj.com/doc/da8498734.html,mit();

session.close();

sessionFactory.close();

}

}

第四小题

public static List findByPage(int pageNo, int pageSize)

{

try

{

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

Session session = sessionFactory.openSession();

Transaction tx = session.beginTransaction();

String hql = "from Student where team_id=1";

Query query = session.createQuery(hql);

query.setFirstResult((pageNo - 1) * pageSize);

query.setMaxResults(pageSize);

return query.list();

} catch (RuntimeException e)

{

throw e;

}

}

public static int countAll()

{

try

{

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

Session session = sessionFactory.openSession();

Transaction tx = session.beginTransaction();

String hql = "from Student where team_id=1";

Query query = session.createQuery(hql);

List result = query.list();

int count = result.size();

return count;

} catch (RuntimeException e)

{

throw e;

}

}

public static void main(String[] args)

{

int pageNo = 0;

int count = countAll();

if (count % 2 == 0)

{

pageNo = count / 5;

} else

{

pageNo = count / 5 + 1;

}

for (int a = 1; a <= pageNo; a++)

{

List l = findByPage(a, 5);

System.out.println("第" + a + "页:");

for (int i = 0; i < l.size(); i++)

{

Student stu = (Student) l.get(i);

System.out.println(stu.getId()+ "姓名:" + stu.getName()+ "年齡:" + stu.getAge());

}

}

}

《JavaEE》课程设计报告实验

《JavaEE》课程设计报告 题目名称:基于struts2、Spring、Hibernate 构建一个网上投票系统 指导教师:_______ _________ _______ 专业班级:__ ____ ______ _ 组长:________ _____ ______ 成员:__ 娄宇杨浩亮张益民林强 __ __ 电子邮件:____ 15224891@https://www.doczj.com/doc/da8498734.html,_ ______ _ 设计时间: 2011 年 11 月 16 日至 2011 年 12 月 21 日 成绩:______

目录 基于struts2、Spring、Hibernate构建一个网上投票系统 (3) 一、问题描述及设计思路 (3) 1.1 需求分析 (3) 1.2业务分析 (3) 1.3投票用例 (5) 二、详细设计过程 (8) 2.1 创建Struts2应用 (8) 2.2 添加Hibernate (8) 2.3 添加Spring应用 (9) 2.4 领域模型层设计 (9) 三、结论和体会 (13) 3.1 结论 (13) 3.2 体会 (13) 四、附录 (14) 附录A 其它图表 (14) 附录B 主要程序代码 (15) 五、参考文献 (21)

基于struts2、Spring、Hibernate构建一个 网上投票系统 一、问题描述及设计思路 对于开发一个投票管理系统来说,应该实现什么功能,如何实现这个功能都是开发人员必须了解的问题。将这个系统的需求、业务流程以及用例进行细致的分析、讲解。 1.1 需求分析 随着网络应用的日益普及,投票的形式也发生了很大的变化。目前在很多的场合,投票已经开始由原始方式转变为网上投票。由于具有方便、快捷、成本低、调查范围广等优点,网上投票已经被广泛的应用。如何管理好网上投票信息内容也变得十分的重要,我们所设计开发的投票管理系统,正是基于这种需求诞生的。 本投票管理系统分为用户提供网上投票和投票信息管理两大类功能。通过投票管理功能可以完成增加新投票、修改原有投票信息、查找投票等功能。本系统的界面友好、操作简便,适用于任何网站进行投票调查。 本系统的基本功能如下所述。 ●使用本系统的网上投票功能,用户只要登录指定的网页,就可以进行投票操作,并 可以得到投票结果信息。 ●使用本网站的登录功能,管理员可以登录系统,然后对相关的信息进行管理。 ●使用本系统的创建投票功能,管理员可以创建一个新的投票功能。。 ●使用本系统的管理投票功能,管理员可以对系统已经存在的投票进行更新,包括增 加投票子选项、删除投票子选项、修改投票类型、更改投票状态。 ●使用本系统的查找投票功能,管理员可以通过输入部分或者全部的投票主题查找对 应的投票信息。 ●使用本系统的管理员管理功能,管理员可以修改本人的密码或者创建一个新的管理 员。 ●使用本系统的注销功能,管理员可以安全的退出本系统。 1.2业务分析 投票管理系统由前台和后台两部分组成:前台显示投票并可以执行投票操作,后台是对投票信息和管理员信息进行管理。下面分别从使用前台和使用后台两个角度来分析本系统的业务流程。 1.2.1显示投票 用户进入投票页面如图,进行投票操作。

Spring的HibernateDaoSupport类详解

HibernateDaoSupport: (创建一个子类对象的时候,会先创建一个父类对象)。 当LogDAOImpl继承HibernateDaoSupport的时候,程序执行报错,原因是必须要注入SessionFactory或者HibernateTemplate。因为HibernateDaoSupport是abstract类,所以无法生成HibernateDaoSupport对象来实现注入;那我们只能生成其子类LogDAOImpl的对象,在调用HibernateDaoSupport类中的set方法进行注入,但这个方法还是不行,因为HibernateDaoSupport类中的set方法为final方法。总之,我们无法使用annotation方式在HibernateDaoSupport中注入SessionFactory或者HibernateTemplate。,那么我们的LogDAOImpl类就不能使用annotation的方式生成了,我们只能(暂且,以后会有其他方法)在beans.xml中进行注入如下: 使用这种方式进行注入,我们又会有另外一个问题:假如现在有很多的DAO的实现需要继承HibernateDaoSupport,那么我们在beans.xml文件中就需要配很多的,这样仅配置文件就非常庞大了。 到现在,我们已经知道了HibernateDaoSupport怎么使用了。 使用上面的方法直接继承HibernateDaoSupport比较复杂,现在介绍一种简便的方法:我们可以把DAO抽象处理,写一个抽象类,让它去继承HibernateDaoSupport,如下: 如下修改beans.xml文件,将sessionFactory注入给它:

国内外综合体经典案例解读

国内外综合体经典案例解读 2013-10-22 13:19:47绿维创景字号:T|T 目录 综合体是一种聚集发展模式,是一个泛产业聚集区,也是一个经济系统,对于带动整个区域经济社会及新型城镇化等方面,都具有突出的重要作用。无论是对于我国还是世界上其他国家,综合体都成为了推动经济发展的主要形式之一。城市综合体、度假综合体、酒店综合体、主题公园综合体、温泉综合体、博彩综合体等各种综合体已经在世界各地遍地开花,形成了一些有借鉴意义的开发经验及模式。我们在本期杂志中对比较经典的3个国内综合体案例、5个国外综合体案例进行了分析,期望能够为我国旅游综合体的未来发展之路提供一些借鉴。 案例1:生态主题公园旅游综合体研究——东部华侨城案例2:温泉旅游综合体案例研究——海泉湾案例3:国内城市综合体研究——华南mall 案例4:酒店综合体的典范——棕榈岛亚特兰蒂斯度假酒店案例5:世界第八奇迹——迪拜棕榈岛案例6:世界级综合度假胜地——新加坡圣淘沙度假胜地案例7:从赌场到博彩综合体的转变——澳门博彩综合体研究案例8:拉斯维加斯综合体 生态主题公园旅游综合体研究-东部华侨城 一、项目概况 东部华侨城坐落于中国深圳大梅沙,占地近9平方公里,由华侨城集团斥资35亿元精心打造,是国内首个集休闲度假、观光旅游、户外运动、科普教育、生态探险等主题于一体的大型综合性国家生态旅游示范区。

总平面图 (一)区位交通条件 东部华侨城距深圳市中心12公里,仅20分钟车程,香港、澳门及珠三角各城市2小时车程范围内。 (二)生态资源条件 位于中国最美八大海岸之一的深圳大鹏湾畔,前拥深圳大梅沙黄金海岸,背依连绵梧桐山脉,坐拥大峡谷及原生态自然资源,生态自然环境十分优越。

实验 五 Hibernate基础实验

实验五Hibernate基础实验 Part one Hibernate对表的添加 实验目的:掌握Hibernate的基本功能和基本用法 实验要求:通过Hibernate将一个Java对象插入到数据库表中 实验原理: (1)Hibernate是一个面向Java环境的对象/关系数据库映射工具,Hibernate不仅管理Java类型到数据库表的映射,还提供查询数据 和操作数据的OO方法。 (2)Hibernate对JDBC进行了轻量级的对象封装,使Java程序员可以随心所欲地使用OO编程思想来处理数据库。 (3)Hibernate采用映射元数据来描述对象-关系的映射细节,元数据通常采用XML。 (4)关系数据库中的元组通过ORM转换成应用程序中的对象;反之,应用程序中的对象通过ORM持久化成关系数据库中的元组。 (5)可以利用Hibernate框架根据配置和类及映射文件生成数据库表结构,反过来,也可以根据数据库表结构生成持久化类和映射文 件。 实验准备: 安装SQL Server20XY(如果是Windows XP上的SQL Server2000版,需要加补丁程序SP3)。 实验步骤: 一.创建Java Project TestH3_2 二.创建数据库及数据源 1.在test数据库中创建表News Use test CREATE TABLE news ( id int IDENTITY (1, 1) primary key ,

title varchar (20) NOT NULL , content text ) Go context的长度在Hibernate中可能闲长,不能插入,需改成较短的类型!设计表结构的图形界面如图5-1所示。 图5-1 设计News表结构的图形化界面 2.打开MyEclipse的Database Explore透视图,如图5-2所示。 图5-2 打开Database Explore透视图 3.创建数据库连接驱动,如图5-3所示。找到jtds-1.2.jar包所在位置。点击Add JARS,把该包包含进去即可。注意:SQL Server的Driver template 选Microsoft SQL Server(jTDS Driver)。

hibernate学习笔记

第一次课: 持久化:就是把瞬时状态的数据转变为持久化状态的数据,这一个过程就是持久化。 (java中内存分为:栈(变量,方法,形参都是在栈上),堆(new出来的对象在堆上)) 1)瞬时状态:刚new出来,在内存中存在的对象就是瞬时状态的。如果程序结束,对象就会被回收。 2)持久化状态:在磁盘或者是数据库中存在的数据就是持久状态。 Hibernate是什么? 1)是一个优秀的持久化框架,对jdbc进行进一步的封装。(hibernate,ibatis )。 2)是一个ORM (Object relation mapping ). Mysql,oracle,access 是关系型数据库 = hibernate操作的是对象。 使用hibernate的步骤:1)新建项目 2)引入jar包(hibernate最少依赖8个jar包) 3)新建 hibernate配置文件(hibernate.cfg.xml) ,放在src根目录下面。 用于数据库的配置信息。 com.mysql.jdbc.Driver root abc jdbc:mysql:///fwcz org.hibernate.dialect.MySQLDialect create 4)写bean/vo类,并且编写映射文件。

实验4

电子科技大学 实验报告 学生姓名:罗佳学号:2014120101013 指导教师:钟毅 实验四 一、实验名称 面向对象的信息系统设计 二、实验内容 根据实验材料的内容及实验三的实验结果,完成以下实验任务: 1. 完成系统的体系结构设计,利用Rational Rose软件进行系统的层次设计,并绘制系统的包图; 2. 根据实验三结果中的类图,对其进行细化,完成设计类的设计。 三、实验材料 ××物资储运公司长期从事物资储运业务,品种多,吞吐量大,有铁路专线直达公司的大型仓库。目前企业已经实现了一定程度上的计算机化管理,其中的财务系统应用已较为成熟。随着企业业务以及外部环境的变化,该公司原开发的信息系统已不能满足新业务、新环境以及客户对信息查询的要求,迫切需要开发一套新的系统以替代原有系统,并实现原有流程的优化,把一些原来未纳入系统管理的功能纳入到新的系统中来,并为转变到第三方物流和与电子商务接轨作好准备。 企业的主要部门包括:总经办、收货组、出货组、调运科、库管科和财务科。总经办主要负责货物出入库的审核、平帐及各种统计工作;收货组主要负责货物的验收入库及存放位置的登记;出货组主要负责货物的出库工作;调运科主要负责从货物的调运及相应报表编制等工作;库管科主要负责货物的装车及盘点等工

作;财务科负责企业的主要财务活动。 企业的主要业务活动包括出库、入库及盘点等。其各自的业务流程如下。 入库流程:总经办根据供货商提供的货品明细单(包括单据号、客户名、货品品名、规格型号、数量、运输车号等信息),创建入库单(主要包括入库业务号、应收数量、实收数量等信息),并打印入库单,将其交至收货组。 火车站发出到站预报,告知调运科“车号、发站、品名、件数、重量、到达时间”等信息。调运员进行卸车登记,编写“到站日报”,记录“卸车时间、情况(事故、破损、短件)、卸车区位”等信息,并通知收货组,进入货物入库流程。 货物卸车后,收货组进行验收,编制“码单”,记录“入库日期、实收数量、存放位置、件数、收货保管员”等信息。收货组查找与该批货物对应的入库单,在入库单上填写实收数量后,将入库单中货品所涉及的码单与入库单进行关联,并将入库单、码单交至总经办审核,总经办审核后,送至发货组。 如货物先于供货商的货品明细单到达,则收货组先进行验收入库,并创建码单。当货品明细单到达后,总经办创建入库单,收货组再查找该入库单,登记实收数量并关联码单。 出库流程:发货组审核用户提供的提货单(主要包括入库单号、品名规格、提货数量等信息),查找相应货品,判断是否有足够数量的货物进行出库,如数量足够出库,则创建三联出库单,产生出库业务号,三联出库单分别交给总经办、供货商、发货组自留。收货组在收取相关出库费用之后,查找货物存放位置,出具派车单。 发货组根据派车单调度车辆,指挥库管人员装车,过秤(可以理论计重的货物不需过秤),并在出库单上记录实出重量。用户缴纳装车费用后,发货组给用户出具出门条,用户凭出门条在门卫处检验放行。 总经办对收到的出库单进行审核。 当一张入库单上全部货物出货完毕后,发货组将入库单、码单、出货单送至总经办。总经办审核无误后,平帐,不得再修改;若出现偏差,则进入事故处理。 盘点流程:总经办根据码单信息创建盘点表,库管科的库管人员根据实际盘点情况填写货物实存数量,并返回总经办。总经办将信息进行汇总,如有误差则进行调帐,做到帐、物数量一致。 六、实验器材(设备、元器件):

马士兵hibernate文档 (个人完善版)

3. hibernate.hbm2ddl.auto : 在SessionFactory 创建时,自动检查数据库结构,或者将数据库schema 的DDL 导出到数据库。使用create-drop 时,在显式关闭SessionFactory 时,将删除掉数据库schema。 例如:validate | update | create | create-drop create :如果没有表就创建 update :如果表结构更新,就更新 validate :每次插入表的时候看看表结构有没有更新。 理论上是先建类后建表:这个时候只要你的类建好了,可以跨数据库。 实际中先建表比先建类多,建好表以后要对数据库进行优化,比如建索引,建试图,各种各样的优化。 project\etc目录下面有很多示例性的文档,log4j的文档就在那个下面。 SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); SessionFactory的建立是很耗费时间的,应该像连接池一样,只建立一次,以后要用就直接从那用。 Hibernate文档建议我们自己写一个辅助类,用单例来做。 JUnit的一个bug: @BeforeClass public static void beforeClass() { sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); } 在这句话的时候 配置文件如果有的时候写错了,她悄悄把错误隐藏起来了。 解决的方法:可以对这句话加try catch块 8.表名和类名不一致的时候: @Entity @Table(name="_teacher")

注解整理笔记

注解整理笔记 @是java中的注解。 JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 1@SuppressWarnings("serial") 实体类注解例子 2@Entity 3@Table(name = "T_BASE_ROLE") 5@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, region = CacheConstants.HIBERNATE_CACHE_BASE) //jackson标记不生成json对象的属性 4@JsonIgnoreProperties (value = { "hibernateLazyInitializer" , "handler","fieldHandler" ,"resources","users"}) public class Role extends BaseEntity implements Serializable { 6@Id 7@GeneratedV alue(strategy = GenerationType.AUTO) 8@Column(name = "ID") public Long getId() { return id;} @Excel(exportName="记录创建者", exportFieldWidth = 30) protected String createUser; 9@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00") @Column(name = "CREATE_TIME", updatable = false) 10@Temporal(TemporalType.TIMESTAMP) public Date getCreateTime() { return createTime;} 11@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = https://www.doczj.com/doc/da8498734.html,ZY) 12@JoinTable(name = "T_BASE_ROLE_RESOURCE", joinColumns = { @JoinColumn(name = "ROLE_ID") }, inverseJoinColumns = { @JoinColumn(name = "RESOURCE_ID") }) 13@OrderBy("id") public List getResources() { return resources;} 14@Transient @SuppressWarnings("unchecked") public List getResourceIds() { if (!Collections3.isEmpty(resources)) { resourceIds = ConvertUtils. convertElementPropertyToList(resources, "id"); } return resourceIds;}

javaEE实验报告

科技大学 《JAVAEE框架开发技术》 实验报告 学院:计算机科学与技术学院 专业及班级:软件工程1202班 学号: 1208010212 :_ 黄子斌

2015年12 目录 实验一 struts基础实验 (3) 1. 实验类型 (3) 2. 实验目的 (3) 3. 实验要求 (3) 4. 实验容 (3) 1. Web.xml文件的配 (3) 2. struts.xml文件配置 (4) 3. Action的实现 (4) 4. 运行结果 (6) 实验二持久化层hibernate (6) 1. 实验类型 (6) 2. 实验目的 (6) 3. 实验要求 (6) 4. 实验容 (7) 1. hibernate.cfg.xml文件配置 (7) 2. 实体类和映射文件 (7) 3. 运行结果 (10) 实验三 SSM整合实验 (10) 1. 实验类型 (10) 2. 实验目的 (10) 3. 实验要求 (11) 4. 实验容 (11) 1. applicationContext.xml文件配置 (11) 2. struts.xml 文件配置 (12) 3. 工程代码结构分析 (13) 4. 运行结果 (14) 实验总结 (15)

实验一 struts基础实验 1.实验类型 验证型 2.实验目的 掌握Struts2开发环境的搭建;理解Struts 2工作流程;掌握Struts 2 的web.xml 文件的配置;掌握config_browser插件的使用。 3.实验要求 搭建Struts 2的开发环境;实现用户登录;使用log4j输出调试信息。 4.实验容 1.Web.xml文件的配 在该文件中主要配置默认启动的jsp界面,还有filter过滤器。使用Apache的StrutsPrep areAndExecuteFilter类进行拦截。 javaweb16ValidateDemo index.jsp struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFi lter struts2

hibernate_annotation

Hibernate Annotation 使用hibernate Annotation来映射实体 准备工作 下载 hibernate-distribution-3.3.2.GA hibernate-annotations-3.4.0.GA slf4j 导入相关依赖包 Hibernate HOME: \hibernate3.jar \lib\bytecode(二进制) \lib\optional(可选的) \lib\required(必须的) 导入required下的所有jar包 antlr-2.7.6.jar commons-collections-3.1.jar dom4j-1.6.1.jar hibernate3.jar javassist-3.9.0.GA.jar jta-1.1.jar slf4j-api-1.5.10.jar slf4j-log4j12-1.5.10.jar log4j-1.2.14.jar mysql.jar ---Annotation包 ejb3-persistence.jar hibernate-annotations.jar hibernate-commons-annotations.jar

简单的例子,通过annotation注解来映射实体PO 1、建立(Java Project)项目:hibernate_0100_annotation_HelloWorld_default 2、在项目根下建立lib目录 a)导入相关依赖jar包 antlr-2.7.6.jar commons-collections-3.1.jar dom4j-1.6.1.jar ejb3-persistence.jar hibernate-annotations.jar hibernate-commons-annotations.jar hibernate3.jar javassist-3.9.0.GA.jar jta-1.1.jar log4j-1.2.14.jar mysql.jar slf4j-api-1.5.10.jar slf4j-log4j12-1.5.10.jar 3、建立PO持久化类cn.serup.model.Teacher 内容如下 package cn.serup.model; import javax.persistence.Entity; import javax.persistence.Id; //@Entity表示该是实体类 @Entity public class Teacher { private int id ; private String username ; private String password ; //ID为主键,主键手动分配 @Id public int getId() { return id; } public void setId(int id) { this.id = id;

实验指导(1)spring

JavaWeb高级(Spring)实验指导

课程教学进度安排

实验一: SVN的JavaWeb开发中的应用(1)一、目的与要求: ?明确SVN的作用,理解在团队开发中使用SVN的意义。 ?掌握SVN服务器和客户端的下载和安装 ?初步初步学会SVN的使用。 二、实验内容: 1、SVN服务器的下载与安装 2、SVN客户端的下载与安装 3、SVN的简单应用 三、实验条件: 每位学生PC机一台,标准配置 Windows XP操作系统 JDK 5.0以上,Eclipse IDE 四、实验指导 (一)SVN服务器的下载、安装与操作 1、Visual SVN下载地址: https://www.doczj.com/doc/da8498734.html,/server/download/ 2、安装: ?运行下载的安装程序VisualSVN-Server-2.5.3.msi,弹出如下欢迎界面。 ?单击“下一步”,弹出如下License确认界面。

?选择I accept…复选框,接受License的项目,单击单击“下一步”,弹出如下 组件选择界面。 ?选择第一个复选框,安装服务器和管理控制器,单击“下一步”弹出如下安装定 制界面。 ?定制安装目录、仓库目录、服务端口,选择认证方式,单击“下一步”,弹出如 下的向导结束界面。

?单击“安装”,开始安装。 ?安装完成后弹出安装完成界面。 3、查看安装目录和仓库目录: 安装目录: 仓库目录:

4、操作: (1)Visual SVN服务启动与停止 通过Windows的服务管理工具,可以方便地启动和停止Visual SVN,如下图所示。 (2)Visual SVN管理控制器的管理Visual SVN ?Visual SVN管理控制器启动与界面 通过Windows开始菜单,可方便地启动Visual SVN管理控制器,启动后的界面如下: Visual SVN管理控制器窗口分菜单、工具条、树型左窗格和右窗格构成。 ?通过Visual SVN管理控制器启动和停止服务。 通过Visual SVN管理控制器的操作菜单、工具条及左窗格服务器图标的快捷菜单,都可以方便的开启、重启、停止SVN服务。 ?创建用户 通过Visual SVN管理控制器左窗格中Users图标的快捷菜单可以完成用户组的创建。创建用户包括创建用户名和用户密码两项信息。 ?创建用户组 通过Visual SVN管理控制器左窗格中Groups图标的快捷菜单可以完成用户组的创建。在创建组的同时,还可以向组中添加用户作为组的成员。 ?编辑用户组

hibernate关联注解

说明: 本文对hibernate的一对多、多对一、多对多的关联 示例代码是Order类和OrderItem类的一对多的关系 1.一对多 1.1注解方式: @OneToMany 代码示例如下: 双向关联,维护端在“多”的一端 Public class Order implements Serializable { Private Set orderItems = new HashSet(); @OneToMany(mappedBy="order"(有了mappedby不能也不该在此再定义@joincolumn),cascade = CascadeType.ALL, fetch = https://www.doczj.com/doc/da8498734.html,ZY) @OrderBy(value= "id ASC") public Set getOrderItems() { return orderItems; } } 单向关联,维护端在此端 Public class Order implements Serializable { private Set orderItems = new HashSet(); @OneToMany(cascade = CascadeType.ALL, fetch = https://www.doczj.com/doc/da8498734.html,ZY) @JoinColumn(name=”order_id”) @OrderBy(value= "id ASC") public Set getOrderItems() { return orderItems; } } 1.2维护端和级联问题 维护端的意思是对外键进行维护,维护端有对外键进行插入和更新的权利。 下面分情况介绍hibernate的级联操作: 1.2.1单向关联 对“一”表进行插入一条记录的操作: 1)级联类型:CascadeType.ALL 执行语句: 1.insert into category (description, name, id) values(?, ?, ?)

hibernate关系映射注解配置

1. Hibernate Annotation关系映射有下面几种类型: 1)一对一外键关联映射(单向) 2)一对一外键关联映射(双向) 3)一对一主键关联映射(不重要,有需要看下文档即可) 在实际中很少用,使用注解@PrimaryKeyJoinColumn 意思是说,我的主键去参考另外一张表中的主键,作为我的主键,但是在我测试使用 注解一对一主键关联映射,在生成表的时候,数据库中并没有生成关联,使用XML 映射可以生成。Annotation注解一对一主键关联映,有些bug。不过没空去研究它。 因为在实际开发中一对一很少用。在实际开发中我机会没有用过,主键关联就更少了 4)多对一关联映射(单向) 5)一对多关联映射(单向) 6)一对多关联映射(双向) 7)多对多关联映射(单向) 8)多对多关联映射(双向) 2.介绍各种映射用法 1)一对一外键关联映射(单向)Husband ---> Wife public class Husband{ private Wife wife; @OneToOne(cascade=CascadeType.ALL) @JoinColumn(name="wife_id",unique=true) public Wife getWife(){…} … } public class Wife{ } 一对一外键关联,使用@OneToOne,并设置了级联操作 @JoinColum设置了外键的名称为wife_id(数据库字段名),如果不设置,则默认为另一类的属性名+ _id 外键的值是唯一的(unique),不可重复,与另一类的主键一致 2)一对一外键关联映射(双向)Husband <---> Wife public class Husband{ private Wife wife; @OneToOne(cascade=CascadeType.ALL) @JoinColumn(name="wife_id",unique=true) public Wife getWife(){…} ... } public class Wife{ private Husband husband; @OneToOne(mappedBy="wife",cascade=CascadeType.ALL) public Husband getHusband(){…} ... } 一对一双向关联关系,使用@OneToOne 注意:需要加上mappedBy="wife",如果不加上的话,Wife也会生成一个外键(husband_id)。mappedby="wife"需要指向与他关联对象的一个属性(即Husband类里面的wife属性),这里的会在Husband表里面生成个外键wife_id字段,而Wife表里则不会生成。这里Husband作为维护端即主

SSH框架实验报告

软件学院综合性实验报告 一、实验目的 1. ssh 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种web应用 程序开源框架。因此希望通过本次实验充分了解shh框架集成应用的设计理念和具体步骤; 2.通过翻阅课本,查阅资料,培养一个程序员应有的信息搜索能力已经借助其他工具解 决问题的能力; 3.真正掌握三个框架的精髓,更好地应用与以后的学习工作中去。 二、实验仪器或设备 myeclipse6.5 tomcat5.5.26 mysql5.0 数据库脚本程序 create table user ( id int(11) not null auto_increment, username varchar(50) default null, password varchar(50) default null, primary key (id) ); insert into user values (1, admin, admin); 三、总体设计(设计原理、设计方案及流程等) 1.创建工程 打开myeclipse,需要注意的是这里应该处于myeclipse java enterprise视图。新建一 个web project,输入适当的工程名字,这里我们输入ssh,finish即可。 确定之后myeclipse会生成名为ssh 的项目,其中生成的目录结构如下所示: 四、实验步骤(包括主要步骤、代码分析等) 1. 添加struts1.2框架支持 在ssh工程上面右击,在弹出的菜单中选择myeclipse -> add struts capabilities… 添加struts的支持。 在弹出的对话框中选择struts 1.2,修改 base package for new classes其余保持原状,finish即可。 完成后的结构为 2. 添加spring2.0框架支持 在ssh工程上面右击,在弹出的菜单中选择myeclipse -> add spring capabilities… 添加spring框架支持。 篇二:基于ssh的轿车信息管理系统实验报告 j2ee技术 实验报告 项目题目:基于ssh的轿车信息管理系统 学院:计算机学院 指导教师: 项目成员: 专业:软件工程 班级:软件0901 完成时间: 2012-06-02 目录 1

hibernate常用API详解++HQL++SQL

)hibernate常用API详解 分类:Hibernate2013-05-25 18:55 1251人阅读评论(0) 收藏举报转自:https://www.doczj.com/doc/da8498734.html,/blog/1327883 hibernate常用API详解 以下示例均以两张表为例:member和userinfo,member帐号信息表外键关联userinfo用户基本信息表,主键自动生成即可 然后映射出的POJO如下: public class Userinfo implements Serializable{ // primary key private https://www.doczj.com/doc/da8498734.html,ng.Integer id; // fields private https://www.doczj.com/doc/da8498734.html,ng.String name; private https://www.doczj.com/doc/da8498734.html,ng.String code; private https://www.doczj.com/doc/da8498734.html,ng.String birthday; private https://www.doczj.com/doc/da8498734.html,ng.String address; private java.util.Date createTime; private https://www.doczj.com/doc/da8498734.html,ng.Integer deleteFlag;

// collections private java.util.Set members; //省略 getter setter } public class Member implements Serializable{ // primary key private https://www.doczj.com/doc/da8498734.html,ng.Integer id; // fields private https://www.doczj.com/doc/da8498734.html,ng.String loginCode; private https://www.doczj.com/doc/da8498734.html,ng.String password; private https://www.doczj.com/doc/da8498734.html,ng.Integer deleteFlag; // many to one private https://www.doczj.com/doc/da8498734.html,erinfo fkUserinfo; //省略getter setter }

实验五Hibernate、Spring及SSH集成

实验五Hibernate、Spring及SSH集成实验内容 学习Hibernate、Spring应用的基本开发,及SSH的简单集成 实验目的 了解Hibernate、Spring框架的机制 掌握Hibernate、Spring应用的配置 掌握Spring中Bean注解扫描装配 掌握Hibernate基本编程 掌握SSH的简单集成 环境要求 服务器:Tomcat6.0或更高,jboss6或更高 集成开发环境:MyEclipse 8.6 或更高 实验指导 1.Hibernate简单使用 1)创建表 在MySQL数据库服务器上的test中创建student表,字段如下: 字段名类型说明 id Integer 自增,主键 xh varchar(10) name varchar(10) sex varchar(2) className varchar(16)

2)创建数据库连接 通过菜单“window”->“show view”打开“DB Browser”窗口,在该窗口中点击右键,在弹出菜单总选择“New”,打开如下窗口。 在“Driver template”中选择“MySQL”,“Driver name”中输入一个名称(mysql),修改“Connection URL”为:jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8,输入数据库的用户名和口令,点击“Add JARS”按钮添加Mysql的驱动Jar包,点击“Finish”按钮完成创建。 3)创建工程及添加Hiberbate支持 创建一个Java工程,名称为hh。 在左侧“package explore”窗口的“hh”工程名上点击右键,在弹出的菜单中选择“MyEclipse”->“Add Hibernate Capapilities...”,弹出如下对话框:

实验十四 MVC_Hibernate综合实验(二)

实验十四 MVC_Hibernate综合实验(二) 一、实验目的: 进一步熟悉并掌握运用JSP开发模式II(JSP+JavaBean+Servlet)和Hibernate实现数据库CRUD基本编程。 二、实验内容: 在MyEclipse环境下运用JSP+JavaBean+Servlet以及Hibernate技术完成相应的数据库CRUD功能,调试运行程序。 三、实验要求: 1. 进一步熟悉并掌握运用MVC技术和Hibernate技术开发功能模块的基本步骤; 2. 运用相关技术(JSP+JavaBean+Servlet以及Hibernate)完成规定功能; 3. 写出实验报告。 四、实验学时:2学时 五、实验步骤: 1.进入MyEclipse环境,导入实验十三完成的项目 2. 在实验十三基础上,采用MVC技术和Hibernate完成书籍基本信息管理模块的主要 功能,具体包括: 3.1 设计封装了书籍表信息的JavaBean,并开发对象-关系映射文件; 3.2 设计封装了针对书籍表信息进行CRUD操作的工具JavaBean(DAO类),DAO 类方法实现采用Hibernate技术; 3.3 设计并开发页面 3.4 设计并开发Servlet控制器 3.5. 利用JSP+JavaBean+Servlet技术完成显示所有书籍信息的功能; 3.6. 利用JSP+JavaBean+Servlet技术完成对书籍信息的增加功能; 3.7 利用JSP+JavaBean+Servlet技术完成对书籍信息的编辑功能; 3.8利用JSP+JavaBean+Servlet技术完成对书籍信息的删除功能; 4. 调试运行程序。 六、选作实验: 1 采用注解替代对象-关系映射文件

商业综合体案例分析

商业综合体案例研究 CommerCial mall Case studies

·所谓“城市综合体”,是将城市中商业、办公、居住、酒店、餐饮、会议、文娱、交通枢纽等城市功能在空间上进行组合,并在各功能间建立一种相互依存、相互补益的能动关系,从而形成一个多功能、高效率、复杂而统一的综合体。 ·城市综合体这种建筑形态最早出现于西方国家,且目前全球最典型的大型城市综合体也分布于资本发达国家的重点城市之中,如纽约、伦敦、巴黎等。 ·中国直到九十年代才相继建成一批建筑综合体,如北京的国际贸易中心和华贸中心、上海的新天地、深圳的华润中心等。 ·城市综合体作为一种“泊来品”,在中国发展逐渐加快,并升级为新都市综合体,城市综合体基本具备了现代城市的全部功能,所以也被称为“城中之城”。 何为城市综合体? 城市综合体功能框架

·项目所在位置为城市核心区,有人流和消费基础,项目位于城市中心,是城市经济新增长点 ·必须具有交通便捷的区位优势 ·必须营造齐备的生活系统·城市必须具备足够的终端消费能力 ·城市综合体要求有优越的地段、交通、商圈配套·开发商须具有雄厚的实力和高素质 ·对开发商配套资源的要求 城市综合体可以理解成是由城市中多种单一功能的建筑通过赋予建筑商业综合价值,有机组合在一起并互为依存的庞大筑或建筑组群。 何为城市综合体?

· 新宿区位于东京都中心区以西,距银座约6公里,是东京 市内主要繁华区之一,新宿副都心目前建成的商务区总用地 面积为16.4公顷,商业、办公及写字楼建筑面积为200多万 平方米。 · 新宿副都心的经济、行政、商业、文化、信息等部门云集 于商务区,金融保险业、不动产业、零售批发业、服务业成 为新宿的主要行业,人口就业构成已接近东京都中心三区 。 · 东京新宿CBD的中央核心商务区是以新宿站为中心、半径 为7000米的范围内,聚集了160多家银行,新宿已成为日本“ 银行战争”的缩影,是“华尔街”的翻版。 4

相关主题
文本预览
相关文档 最新文档