J2EE实验报告6HQLWord文档格式.docx

上传人:b****4 文档编号:16718179 上传时间:2022-11-25 格式:DOCX 页数:12 大小:18.27KB
下载 相关 举报
J2EE实验报告6HQLWord文档格式.docx_第1页
第1页 / 共12页
J2EE实验报告6HQLWord文档格式.docx_第2页
第2页 / 共12页
J2EE实验报告6HQLWord文档格式.docx_第3页
第3页 / 共12页
J2EE实验报告6HQLWord文档格式.docx_第4页
第4页 / 共12页
J2EE实验报告6HQLWord文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

J2EE实验报告6HQLWord文档格式.docx

《J2EE实验报告6HQLWord文档格式.docx》由会员分享,可在线阅读,更多相关《J2EE实验报告6HQLWord文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

J2EE实验报告6HQLWord文档格式.docx

5)、掌握HQL投影查询

6)、掌握HQL报表查询

2实验步骤

2.1搭建hibernate框架

(0)新建webproject项目,项目名称自定义(我取名为EX_HQL);

(1)将hibernate需要的jar包拷贝到______下;

2.2创建双向多对一映射

(1)在src下新增包cn.edu.xmut.many2one,在该包下新建类Customer.java和Order.java:

Customer.java

packagecn.edu.xmut.many2one;

publicclassCustomer{

privateintid;

privateStringname;

privateSet<

Order>

orders=newHashSet<

();

//省略getset方法

}

Order.java

publicclassOrder{

privateStringno;

privatedoubleprice;

privateCustomercustomer;

//省略getset方法

//添加一个toString方法

(2)创建xxx.hbm.xml文件

Customer.hbm.xml:

<

?

xmlversion="

1.0"

encoding="

utf-8"

>

!

DOCTYPEhibernate-mappingPUBLIC"

-//Hibernate/HibernateMappingDTD3.0//EN"

"

hibernate-mappingpackage="

cn.edu.xmut.many2one"

<

classname="

Customer"

table="

tb_customer"

>

idname="

id"

type="

java.lang.Integer"

columnname="

/>

generatorclass="

______"

/id>

propertyname="

name"

java.lang.String"

length="

45"

/property>

<

setname="

orders"

inverse="

______"

<

keycolumn="

/key>

one-to-manyclass="

Order"

/>

/set>

/class>

/hibernate-mapping>

Order.hbm.xml:

tb_order"

____"

no"

price"

java.lang.Double"

many-to-onename="

class="

column="

not-null="

true"

/many-to-one>

(3)创建hibernate.cfg.xml文件

DOCTYPEhibernate-configurationPUBLIC

"

-//Hibernate/HibernateConfigurationDTD3.0//EN"

http:

//www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"

hibernate-configuration>

--配置session节点-->

session-factoryname="

foo"

--配置连接数据库信息:

userpasswordurldriver_class-->

connection.username"

____<

connection.password"

connection.url"

_______<

connection.driver_class"

--配置数据库方言-->

dialect"

org.hibernate.dialect.MySQLInnoDBDialect<

--配置进行数据库操作时,是否需要显示sql语句-->

show_sql"

true<

--配置如何通过反射生成数据表-->

hbm2ddl.auto"

update<

--关联hibernate映射文件-->

mappingresource="

/session-factory>

/hibernate-configuration>

(4)编写测试代码

在src下新增包cn.edu.xmut.test,在该包下新建类Many2one.java:

packagecn.edu.xmut.test;

importorg.hibernate.Session;

importorg.hibernate.SessionFactory;

importorg.hibernate.Transaction;

importorg.hibernate.cfg.Configuration;

importcn.edu.xmut.many2one.Customer;

importcn.edu.xmut.many2one.Order;

publicclassMany2one{

publicstaticvoidmain(String[]args){

//1configuration

Configurationcfg=_________;

//2sessionFactory

SessionFactorysf=_________;

//3session

Sessions=_________;

//4Transaction

Transactionts=_________;

//5具体业务--初始化

Customercust=newCustomer();

cust.setName("

xmut"

);

Customercust2=newCustomer();

cust2.setName("

yaxon"

Customercust3=newCustomer();

cust3.setName("

tinghua"

Orderorder1=newOrder();

order1.setNo("

09soft1"

order1.setPrice(91.1);

order1.setCust(cust);

Orderorder2=newOrder();

order2.setNo("

09soft2"

order2.setPrice(91.2);

order2.setCust(cust);

Orderorder3=newOrder();

order3.setNo("

10soft1"

order3.setPrice(101.1);

order3.setCust(cust2);

Orderorder4=newOrder();

order4.setNo("

10soft2"

order4.setPrice(102.1);

order4.setCust(cust2);

Orderorder5=newOrder();

order5.setNo("

11soft1"

order5.setPrice(111.1);

order5.setCust(cust3);

Orderorder6=newOrder();

order6.setNo("

11soft2"

order6.setPrice(121.1);

order6.setCust(cust3);

session.save(cust);

session.save(cust2);

session.save(cust3);

session.save(order1);

session.save(order2);

session.save(order3);

session.save(order4);

session.save(order5);

session.save(order6);

//6commit

mit();

//7close

s.close();

//8close

sf.close();

}

(5)运行测试代码,查看结果。

2.3动态参数绑定-按参数名字绑定

在Many2one.java的main方法中添加如下代码:

Stringhql="

FROMOrderoWHEREo.noLIKE_______"

;

Queryquery=session.createQuery(hql);

List<

orders=query.setString("

"

%0s%"

.list();

for(Orderorder:

orders){

System.out.println(order);

运行测试代码,查看结果。

2.4动态参数绑定-按参数位置绑定

hql=______________________;

query=session.createQuery(hql);

orders=query.setParameter(0,"

).list();

2.5动态参数绑定-把参数与一个持久化类绑定

hql="

FROMOrderoWHERE__________ORDERBYo.noDESC"

orders=query.setEntity("

cust"

session.get(_________,1)).list();

2.6分页搜索

intpageNo=2;

intpageSize=3;

intfirstResult=________;

intmaxResults=________;

FROMOrder"

orders=query.___________(firstResult)

.____________(maxResults)

.list();

2.7在映射文件中自定义查询语句

(1)修改Order.hbm.xml文件,添加自定义查询语句:

queryname="

myQuery"

[CDATA[

FROMOrderoWHEREo.noLIKE'

%9s%'

]]>

/query>

(2)在Many2one.java的main方法中添加如下代码:

query=session.getNamedQuery("

orders=query.list();

(3)运行测试代码,查看结果。

2.8投影查询

(1)修改Order.java文件,添加构造方法:

publicOrder(){}

publicOrder(Integerid,doubleprice,Stringno){

this.id=id;

this.price=price;

this.no=no;

hql=________;

2.9报表查询-count

query=session.createQuery(hql);

longsize=(Long)query.setEntity("

session.get(Customer.class,2)).uniqueResult();

System.out.println(size);

2.10报表查询-min

hql=________;

doubleminPrice=(Double)query.setEntity("

session.get(Customer.class,2)).uniqueResult();

System.out.println(minPrice);

2.11报表查询-max

doublemaxPrice=(Double)query.setEntity("

System.out.println(maxPrice);

2.12报表查询-avg

doubleavg=(Double)query.setEntity("

System.out.println(avg);

2.13报表查询-sum

doublesum=(Double)query.setEntity("

System.out.println(sum);

3心得体会

不得放空

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1