HibernateUtil.java
获得连结
<----------------------------------------------------->
import
net.sf.hibernate.*;
import
net.sf.hibernate.cfg.*;
import
org.apache.log4j.Logger;
public
class
HibernateUtil
{
private
static
Logger
log
=
Logger.getLogger(HibernateUtil.class);
private
static
final
SessionFactory
sessionFactory;
static{
try{
//Create
the
SessionFactory
sessionFactory
=
new
Configuration().configure().buildSessionFactory();
}catch(Throwable
ex){
ex.printStackTrace();
log.error("Initial
SessionFactory
creation
failed.",ex);
throw
new
ExceptionInInitializerEr
ror(ex);
}
}
public
static
final
ThreadLocal
session
=
new
ThreadLocal();
public
static
Session
currentSession()
throws
HibernateException{
Session
s
=
(Session)
session.get();
//Open
a
new
Session,if
this
Thread
has
none
yet
if(s
==
null){
s
=
sessionFactory.openSession();
session.set(s);
}
return
s;
}
public
static
void
closeSession()
throws
HibernateException{
Session
s
=
(Session)
session.get();
session.set(null);
if(s
!=
null)
s.close();
}
}
<------------------------------------------------------->
Page.java
分页
<--------------------------------->
mport
net.sf.hibernate.*;
import
java.util.List;
import
java.util.Collection;
import
java.util.ArrayList;
public
class
Page
{
public
List
Total_List;
public
Collection
Result_coll;
public
int
Row_Num;
public
int
Page_Num;
private
int
pageSize;
//initailzation
public
Page(Query
query,
int
pageSize)
{
this.pageSize
=
pageSize;
this.Result_coll
=
new
ArrayList();
try
{
this.Total_List
=
query.list();
this.Row_Num
=
this.Total_List.size();
this.Page_Num
=
(this.Row_Num
%
this.pageSize
>
0)
?
(this.Row_Num/
this.pageSize
+
1)
:
(this.Row_Num
/
this.pageSize);
}
catch
(Exception
e)
{
System.err.println("Page.class
initialization
failed");
}
}
public
Collection
ChangePage(int
page)
{
int
BigenNum
=
page
*
this.pageSize;
int
EndNum
=
(page
+
1)
*
this.pageSize
-
1;
for
(int
i
=
BigenNum;
i
<=
EndNum;
i++)
{
this.Result_coll.add(this.Total_List.get(i));
}
return
this.Result_coll;
}
//返回
结果总数
public
int
getTotalNum(){
return
this.Row_Num;
}
//返回
总页数
public
int
getPageNum(){
return
this.Page_Num;
}
}
<------------------------------------------------------>
test.java
测试
<------------------------------------------------------>
import
net.sf.hibernate.*;
import
java.util.ArrayList;
import
java.util.Iterator;
import
java.util.Collection;
import
java.util.List;
public
class
test
{
public
static
void
main(String[]
args)
{
try{
Session
session
=
HibernateUtil.currentSession();
StockIn
Si
=
new
StockIn();
OrgInfo
Oi
=
new
OrgInfo();
MainYjsj
MY
=
new
MainYjsj();
Object[]
ob
=
null;
net.sf.hibernate.Query
query
=
session.createQuery("from
OrgInfo
as
a,StockIn
as
b
where
b.OrgId=
a.OrgId
and
b.OrgId
like
'001%'
and
b.InDate>='2005-1-8'
and
b.InDate<='2005-7-8'");
Page
p
=
new
Page(query,10);
//参数2为页面显示记录行数
System.out.println("Row
Total
:"
+
p.getTotalNum());
System.out.println("Page
Total
:"
+
p.getPageNum());
Collection
pp
=
new
ArrayList();
pp
=
p.ChangePage(1);
//参数为要显示的页数
Iterator
si_iter
=
pp.iterator();
while(si_iter.hasNext()){
Si
=
(StockIn)si_iter.next();
System.out.println(Si.getCode());
MY
=
(MainYjsj)si_iter.next();
System.out.println(MY.getSpflmc());
}
HibernateUtil.closeSession();
}
catch(Exception
e){
e.printStackTrace();
}
}
}
如何使用hibernate实现多表关联
最新推荐文章于 2022-02-12 19:40:27 发布