实验七Hibernate开发Word格式.docx
- 文档编号:20286399
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:16
- 大小:80.62KB
实验七Hibernate开发Word格式.docx
《实验七Hibernate开发Word格式.docx》由会员分享,可在线阅读,更多相关《实验七Hibernate开发Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
将MySQL数据库的驱动程序,Hibernate解压缩路径下的hibernate3.jar,required目录下的所有文件,jpa目录下的所有文件添加到用户库hibernate中;
并将添加到该工程的类加载路径中。
方法是:
选中工程,单击右键选择“BuildPath”->
“ConfigureBuildPath”,在弹出的窗口中,选择“Libraries”,选择右边的“AddJars”,加入上述文件。
3.编写持久化类HomeNews.java,放在新建的com.domain包中。
packagecom.domain;
publicclassHomeNews{
privateLongid;
privateStringtitle;
privateStringtype;
privateStringcontent;
privateStringtheTime;
publicHomeNews(){}
publicLonggetId()
{
returnid;
}
publicvoidsetId(Longid){
this.id=id;
publicStringgetTitle()
returntitle;
publicvoidsetTitle(Stringtitle){
this.title=title;
publicStringgetType()
returntype;
publicvoidsetType(Stringtype){
this.type=type;
publicStringgetContent()
returncontent;
publicvoidsetContent(Stringcontent){
this.content=content;
publicStringgetTheTime()
returntheTime;
publicvoidsetTheTime(StringtheTime){
this.theTime=theTime;
}
4.编写持久化类HomeNews对应的映射文件HomeNews.hbm.xml,将持久化类和数据表homeNews映射起来。
<
?
xmlversion="
1.0"
encoding="
GBK"
?
>
!
--指定Hibernate映射文件的DTD信息-->
DOCTYPEhibernate-mappingPUBLIC
"
-//Hibernate/HibernateMappingDTD3.0//EN"
http:
//www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"
--hibernate-mapping是连接配置的根元素-->
hibernate-mappingpackage="
com.domain"
classname="
com.domain.HomeNews"
table="
homeNews"
<
idname="
id"
type="
java.lang.Long"
columnname="
/>
generatorclass="
native"
/id>
propertyname="
title"
column="
string"
/>
type"
content"
theTime"
/class>
/hibernate-mapping>
5.编写Hibernate应用程序的配置文件hibernate.cfg.xml。
--指定Hibernate配置文件的DTD信息-->
DOCTYPEhibernate-configurationPUBLIC
-//Hibernate/HibernateConfigurationDTD3.0//EN"
--注意,必须是一个可以下载的地址-->
--hibernate-configuration是连接配置的根元素-->
hibernate-configuration>
session-factory>
connection.driver_class"
com.mysql.jdbc.Driver
/property>
connection.url"
jdbc:
mysql:
//localhost:
3306/news_wire
dialect"
org.hibernate.dialect.MySQLInnoDBDialect
connection.username"
root<
connection.password"
mysql<
show_sql"
false<
/session-factory>
/hibernate-configuration>
6.编写业务类BussinessService,放在新建的com.service包中。
packagecom.service;
importcom.domain.*;
importorg.hibernate.Session;
importorg.hibernate.SessionFactory;
importorg.hibernate.Transaction;
importorg.hibernate.cfg.Configuration;
importorg.hibernate.Query;
importjava.util.List;
publicclassBusinessService{
publicstaticSessionFactorysessionFactory;
static{
try{
//根据默认位置的hibernate配置文件的配置信息,创建configuration实例
Configurationconfig=newConfiguration();
config.congfigure();
config.addClass(HomeNews.class);
sessionFactory=config.buildSessionFactory();
}cathch(Exceptione){
e.printStackTrace();
//该方法用于查询所有的新闻信息
publicvoidfindAllNews(){
Sessionsession=sessionFactory.openSession();
Transactiontx=null;
tx=session.beginTransaction();
Queryquery=session.createQuery("
fromHomeNewsash"
);
Listlist=query.list();
System.out.println("
ID"
+"
新闻标题"
新闻类别"
新闻内容"
发布时间"
for(inti=0;
i<
list.size();
i++){
HomeNewsh=(HomeNews)list.get(i);
System.out.print(h.getId());
System.out.print(h.getTitle());
System.out.print(h.getType());
System.out.print(h.getContent());
System.out.print(h.getTheTime());
System.out.println();
}
mit();
}catch(Exceptione){
}finally{
session.close();
publicstaticvoidmain(String[]args){
BusinessServiceb=newBusinessService();
b.findAllNews();
7.运行工程。
选择RunAs->
JavaApplication->
BusinessService。
观察运行结果。
(三)开发客户订单管理程序,该程序的功能有:
级联保存客户信息及其所发出的订单,检索所有客户及其关联的订单。
1.建立数据库,在Mysql中建立myshop数据库,当中有两个数据表customers(客户表)和orders(订单表)。
客户表和订单标的关联关系为一对多。
并在表中加入若干条记录。
createdatabasemyshop;
usemyshop;
createtablecustomers(idbigint(8)auto_increment,namevarchar(50),addressvarchar(50),primarykey(id));
createtableorders(idbigint(8)auto_increment,orderNumbervarchar(30),customerIdbigint(8),indexcus_ind(customerId),primarykey(id),foreignkey(customerId)referencescustomers(id)onupdatecascade)
2.建立Java应用程序CustomerOrderManager。
其文件结构如下所示。
并将支持Hibernate程序开发的类库文件加入到类加载路径下,同本次试验中的上个程序。
4.新建com.domain包,里面有4个文件,分别是Customer.java,代表客户信息的持久化类;
Customer.hbm.xml,Customer类的映射文件;
Order.java代表订单信息的持久化类;
Order.hbm.xml,Order类的映射文件。
其代码分别如下:
Customer.java的源代码
importjava.io.Serializable;
importjava.util.HashSet;
importjava.util.Set;
publicclassCustomerimplementsSerializable{
privateStringname;
privateStringaddress;
privateSetorders=newHashSet();
publicCustomer(){
publicCustomer(Stringname,Stringaddress,Setorders){
this.name=name;
this.address=address;
this.orders=orders;
publicLonggetId(){
returnid;
publicvoidsetId(Longid){
this.id=id;
publicStringgetName(){
returnname;
publicvoidsetName(Stringname){
publicStringgetAddress(){
returnaddress;
publicvoidsetAddress(Stringaddress){
publicSetgetOrders(){
returnorders;
publicvoidsetOrders(Setorders){
Customer.hbm.xml的源代码
DOCTYPEhibernate-mappingPUBLIC"
-//Hibernate/HibernateMappingDTD3.3//EN"
hibernate-mapping>
com.domain.Customer"
customers"
lazy="
true"
<
<
name"
length="
25"
not-null="
address"
50"
setname="
orders"
inverse="
lazy="
keycolumn="
customerId"
/key>
one-to-manyclass="
com.domain.Order"
/set>
Order.java源代码
publicclassOrderimplementsSerializable{
privateStringorderNumber;
privateCustomercustomer;
publicOrder(){}
publicOrder(StringorderNumber){
this.orderNumber=orderNumber;
publicStringgetOrderNumber(){
returnorderNumber;
publicvoidsetOrderNumber(StringorderNumber){
this.orderNumber=orderNumber;
publicCustomergetCustomer(){
returncustomer;
publicvoidsetCustomer(Customercustomer){
this.customer=customer;
Order.hbm.xml的源代码
-//Hibernate/HibernateMappingDTD3.0//EN"
orderNumber"
30"
many-to-onename="
customer"
class="
4.编写配置文件hibernate.cfg.xml。
UTF-8"
3306/myshop
5.业务类BusinessService.java
importjava.util.Iterator;
importor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验七 Hibernate开发 实验 Hibernate 开发