Java & Assembly
首頁
新隨筆
聯系
管理
隨筆-208 評論-469 文章-30 trackbacks-0
用hibernate3實現增刪改查
程序結構圖
SQLServer中的表設計
db.HibernateUtil
package
?db;
import
?org.hibernate.HibernateException;
import
?org.hibernate.Session;
import
?org.hibernate.SessionFactory;
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
?HibernateUtil
{
????
/**?*/
/**
?????*?Location?of?hibernate.cfg.xml?file.?NOTICE:?Location?should?be?on?the
?????*?classpath?as?Hibernate?uses?#resourceAsStream?style?lookup?for?its
?????*?configuration?file.?That?is?place?the?config?file?in?a?Java?package?-?the
?????*?default?location?is?the?default?Java?package.<br>
?????*?<br>
?????*?Defaults:?<br>
?????*?<code>CONFIG_FILE_LOCATION?=?"/hibernate.conf.xml"</code>?You?can
?????*?change?location?with?setConfigFile?method?session?will?be?rebuilded?after
?????*?change?of?config?file
?????
*/
????
private
?
static
?String?CONFIG_FILE_LOCATION?
=
?
"
/hibernate.cfg.xml
"
;
????
private
?
static
?
final
?ThreadLocal?threadLocal?
=
?
new
?ThreadLocal();
????
private
?
static
?Configuration?configuration?
=
?
new
?Configuration();
????
private
?
static
?SessionFactory?sessionFactory;
????
private
?
static
?String?configFile?
=
?CONFIG_FILE_LOCATION;
????
private
?HibernateUtil()
????
{
????}
????
/**?*/
/**
?????*?Returns?the?ThreadLocal?Session?instance.?Lazy?initialize?the
?????*?<code>SessionFactory</code>?if?needed.
?????*?
?????*?
@return
?Session
?????*?
@throws
?HibernateException
?????
*/
????
public
?
static
?Session?getCurrentSession()?
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(
"
%%%%?Error?Creating?SessionFactory?%%%%
"
);
????????????e.printStackTrace();
????????}
????}
????
/**?*/
/**
?????*?Close?the?single?hibernate?session?instance.
?????*?
?????*?
@throws
?HibernateException
?????
*/
????
public
?
static
?
void
?closeCurrentSession()?
throws
?HibernateException
????
{
????????Session?session?
=
?(Session)?threadLocal.get();
????????threadLocal.set(
null
);
????????
if
?(session?
!=
?
null
)
????????
{
????????????session.close();
????????}
????}
????
/**?*/
/**
?????*?return?session?factory
?????*?
?????
*/
????
public
?
static
?SessionFactory?getSessionFactory()
????
{
????????
return
?sessionFactory;
????}
????
/**?*/
/**
?????*?return?session?factory
?????*?
?????*?session?factory?will?be?rebuilded?in?the?next?call
?????
*/
????
public
?
static
?
void
?setConfigFile(String?configFile)
????
{
????????HibernateUtil.configFile?
=
?configFile;
????????sessionFactory?
=
?
null
;
????}
????
/**?*/
/**
?????*?return?hibernate?configuration
?????*?
?????
*/
????
public
?
static
?Configuration?getConfiguration()
????
{
????????
return
?configuration;
????}
}
model.User
package
?model;
public
?
class
?User
{
????
private
?Integer?id;
????
private
?String?username;
????
private
?String?password;
????
public
?User()
????
{
????????
????}
????
public
?User(?String?password)
????
{
????????
this
.password?
=
?password;
????}
????
public
?Integer?getId()
????
{
????????
return
?id;
????}
????
public
?
void
?setId(Integer?id)
????
{
????????
this
.id?
=
?id;
????}
????
public
?String?getPassword()
????
{
????????
return
?password;
????}
????
public
?
void
?setPassword(String?password)
????
{
????????
this
.password?
=
?password;
????}
????
public
?String?getUsername()
????
{
????????
return
?username;
????}
????
public
?
void
?setUsername(String?username)
????
{
????????
this
.username?
=
?username;
????}
}
model.hbm.xml
<?
xml?version='1.0'?encoding='UTF-8'
?>
<!
DOCTYPE?hibernate-mapping?PUBLIC
??????????"-//Hibernate/Hibernate?mapping?DTD?2.0//EN"
??????????"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
>
<
hibernate-mapping
>
<
class?
name
="model.User"
?table
="user1"
?
>
<
id?
name
="id"
>
<
generator?
class
="identity"
/>
</
id
>
<
property?
name
="username"
/>
<
property?
name
="password"
/>
</
class
>
</
hibernate-mapping
>
hibernate.cfg.xml
<?
xml?version='1.0'?encoding='UTF-8'
?>
<!
DOCTYPE?hibernate-configuration?PUBLIC
??????????"-//Hibernate/Hibernate?Configuration?DTD?2.0//EN"
??????????"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"
>
<!--
?Generated?by?MyEclipse?Hibernate?Tools.???????????????????
-->
<
hibernate-configuration
>
<
session-factory
>
????
<
property?
name
="dialect"
>
org.hibernate.dialect.SQLServerDialect
</
property
>
????
<
property?
name
="connection.url"
>
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=login
</
property
>
????
<
property?
name
="connection.username"
>
lzqdiy
</
property
>
????
<
property?
name
="connection.password"
>
lzqdiy
</
property
>
????
<
property?
name
="connection.driver_class"
>
com.microsoft.jdbc.sqlserver.SQLServerDriver
</
property
>
????
<
property?
name
="myeclipse.connection.profile"
>
conn2
</
property
>
????
<
mapping?
resource
="model/model.hbm.xml"
?
/>
</
session-factory
>
</
hibernate-configuration
>
HibernateTest
import
?java.util.Iterator;
import
?java.util.List;
import
?org.hibernate.HibernateException;
import
?org.hibernate.Query;
import
?org.hibernate.Session;
import
?org.hibernate.Transaction;
import
?model.User;
import
?db.HibernateUtil;
public
?
class
?HibernateTest
{
????
/**?*/
/**
?????*?
@param
?args
?????*?
@throws
?HibernateException
?????
*/
????
public
?
void
?insertUser()?
????
{
????????Session?session?
=
?HibernateUtil.getCurrentSession();
????????Transaction?tx?
=
?session.beginTransaction();
????????User?user?
=
?
new
?User();
????????user.setUsername(
"
lzqdiy
"
);
????????user.setPassword(
"
lzqdiy
"
);
????????session.save(user);
????????tx.commit();
????????HibernateUtil.closeCurrentSession();
????????System.out.println(
"
新增成功!
"
);
????}
????
public
?List?getUsers()?
????
{
????????Session?session?
=
?HibernateUtil.getCurrentSession();
????????Transaction?tx?
=
?session.beginTransaction();
????????String?hql?
=
?
"
select?new?User(password)?from?model.User??where?username=:name
"
;
????????Query?query?
=
?session.createQuery(hql);
????????query.setString(
"
name
"
,?
"
lzqdiy
"
);
????????List?list?
=
?query.list();
????????tx.commit();
????????HibernateUtil.closeCurrentSession();
????????
return
?list;
????}
????
public
?
void
?updateUsers()?
????
{
????????Session?session?
=
?HibernateUtil.getCurrentSession();
????????Transaction?tx?
=
?session.beginTransaction();
????????String?hql?
=
?
"
update??User??set?password='gm'?
"
;
????????Query?query?
=
?session.createQuery(hql);
????????query.executeUpdate();
????????tx.commit();
????????HibernateUtil.closeCurrentSession();
????????System.out.println(
"
更新成功!
"
);
????}
????
public
?
void
?deleteUsers()?
????
{
????????Session?session?
=
?HibernateUtil.getCurrentSession();
????????Transaction?tx?
=
?session.beginTransaction();
????????String?hql?
=
?
"
delete??User??where?id=1
"
;
????????Query?query?
=
?session.createQuery(hql);
????????query.executeUpdate();
????????tx.commit();
????????HibernateUtil.closeCurrentSession();
????????System.out.println(
"
刪除成功!
"
);
????}
????
public
?
static
?
void
?main(String[]?args)?
????
{
????????
//
?TODO?Auto-generated?method?stub
????????
new
?HibernateTest().insertUser();
????????
new
?HibernateTest().updateUsers();
????????
new
?HibernateTest().deleteUsers();
????????List?list?
=
?
new
?HibernateTest().getUsers();
????????
for
?(Iterator?iter?
=
?list.iterator();?iter.hasNext();)
????????
{
????????????User?user?
=
?(User)?iter.next();
????????????System.out.println(user.getPassword());
????????}
????}
}
其中使用的hql語句比較初級,大家不要見笑,以后我將做深入的研究。
補充:其實對于更新和刪除并不需要使用hql就可以實現。
將HibernateTest更改如下,同樣可以實現更新和刪除。
import
?java.util.Iterator;
import
?java.util.List;
import
?org.hibernate.HibernateException;
import
?org.hibernate.Query;
import
?org.hibernate.Session;
import
?org.hibernate.Transaction;
import
?model.User;
import
?db.HibernateUtil;
public
?
class
?HibernateTest
{
????
/**?*/
/**
?????*?
@param
?args
?????*?
@throws
?HibernateException
?????
*/
????
public
?
void
?insertUser()?
????
{
????????Session?session?
=
?HibernateUtil.getCurrentSession();
????????Transaction?tx?
=
?session.beginTransaction();
????????User?user?
=
?
new
?User();
????????user.setUsername(
"
lzqdiy
"
);
????????user.setPassword(
"
lzqdiy
"
);
????????session.save(user);
????????tx.commit();
????????HibernateUtil.closeCurrentSession();
????????System.out.println(
"
新增成功!
"
);
????}
????
public
?List?getUsers()?
????
{
????????Session?session?
=
?HibernateUtil.getCurrentSession();
????????Transaction?tx?
=
?session.beginTransaction();
????????String?hql?
=
?
"
select?new?User(password)?from?model.User??where?username=:name
"
;
????????Query?query?
=
?session.createQuery(hql);
????????query.setString(
"
name
"
,?
"
lzqdiy
"
);
????????List?list?
=
?query.list();
????????tx.commit();
????????HibernateUtil.closeCurrentSession();
????????
return
?list;
????}
????
public
?
void
?updateUsers()?
????
{
????????Session?session?
=
?HibernateUtil.getCurrentSession();
????????Transaction?tx?
=
?session.beginTransaction();
????????User?user
=
new
?User();
????????user.setId(
new
?Integer(
1
));
????????user.setUsername(
"
lzqdiy
"
);
????????user.setPassword(
"
gm
"
);
????????session.saveOrUpdate(user);
????????tx.commit();
????????HibernateUtil.closeCurrentSession();
????????System.out.println(
"
更新成功!
"
);
????}
????
public
?
void
?deleteUsers()?
????
{
????????Session?session?
=
?HibernateUtil.getCurrentSession();
????????Transaction?tx?
=
?session.beginTransaction();
????????User?user
=
new
?User();
????????user.setId(
new
?Integer(
1
));
????????session.delete(user);
????????tx.commit();
????????HibernateUtil.closeCurrentSession();
????????System.out.println(
"
刪除成功!
"
);
????}
????
public
?
static
?
void
?main(String[]?args)?
????
{
????????
//
?TODO?Auto-generated?method?stub
????????
new
?HibernateTest().insertUser();
????????
new
?HibernateTest().updateUsers();
????????
new
?HibernateTest().deleteUsers();
????????List?list?
=
?
new
?HibernateTest().getUsers();
????????
for
?(Iterator?iter?
=
?list.iterator();?iter.hasNext();)
????????
{
????????????User?user?
=
?(User)?iter.next();
????????????System.out.println(user.getPassword());
????????}
????}
}
posted on 2007-06-10 21:43
EricWong
閱讀(2267)
評論(1)
編輯
收藏
評論:
#
re: 用hibernate3實現增刪改查 [未登錄] 2007-08-09 15:36 |
haha
頂
回復
更多評論
#
re: 用hibernate3實現增刪改查 2007-09-06 16:15 |
吳楊明
好 在學hibernate 應用
謝謝啦 我的博客 m.tkk7.com/coacoa2008
大家一起進步
回復
更多評論
#
re: 用hibernate3實現增刪改查
2007-09-06 16:56 |
吳楊明
"
http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
用hibernate3實現增刪改查
"
http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
回復
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
進入生活博客
印度漂泊
<
2007年6月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
留言簿
(44)
給我留言
查看公開留言
查看私人留言
隨筆分類
(120)
Assembly(1)
C&C++ (9)
Hibernate
J2EE(1)
Java(62)
JavaScript
Linux(5)
others(38)
Spring
Sql server(4)
Struts
相冊
人在印度
我愛的車啊
明星相冊
雜7雜8的
收藏夾
(15)
car(1)
english(2)
others(10)
technology(2)
links
flox's blog
linuxforum
Pegy的午夜場
Rock王霏
中印留學生論壇
值得一看的
像"瘋顛婆"一樣的記者
室內設計的一個小才女
我以前的CSDN'S blog
我大學老師的小窩
段紹譯老師
真的是美人如畫
英語聽力狂人
財經高人
搜索
最新評論
1.?re: Java API中文版下載
怎么下載呢?怎么沒有反應
--何偉杰
2.?re: 基于java的權限控制系統設計
評論內容較長,點擊標題查看
--zuidaima
3.?re: 很形象的接口的使用——針對初學者
@中華乞丐
呵呵,通俗易懂,真不錯!
--sir
4.?re: 很形象的接口的使用——針對初學者 [未登錄]
碉堡了
--張
5.?re: Java API中文版下載
非常詳細,全面
--彭勝波
6.?re: 基于java的權限控制系統設計
抱著學習的心理來看,結果越看越看不懂。。。
--zhangyibin8111
7.?re: Java API中文版下載
kankan
--look
8.?re: Java API中文版下載
個級別、你看了就
--猜猜
9.?re: Java API中文版下載
不錯
--張晨
10.?re: Java API中文版下載
不知道
--不知道
閱讀排行榜
1.?Java API中文版下載 (70313)
2.?ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)解決方法(15946)
3.?WAP瀏覽器(模擬器)大全(13789)
4.?msn登錄不了錯誤代碼80048820擴展錯誤代碼 80048412(10710)
5.?基于java的權限控制系統設計(8783)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 EricWong
主站蜘蛛池模板:
mm1313亚洲国产精品无码试看
|
亚洲AV蜜桃永久无码精品
|
亚洲AV乱码久久精品蜜桃
|
免费人成在线观看播放a
|
国产精品永久免费视频
|
国产成人免费视频
|
日本亚洲成高清一区二区三区
|
国产精品高清免费网站
|
国产亚洲人成A在线V网站
|
亚洲高清视频在线播放
|
美女无遮挡免费视频网站
|
国产片免费在线观看
|
77777_亚洲午夜久久多人
|
免费人成视频在线观看网站
|
2022年亚洲午夜一区二区福利
|
中文字幕成人免费视频
|
亚洲AV无码一区二区三区牛牛
|
午夜两性色视频免费网站
|
亚洲成色在线影院
|
免费三级毛片电影片
|
亚洲av无码偷拍在线观看
|
最近中文字幕免费完整
|
77777午夜亚洲
|
免费人成网站7777视频
|
成全视频高清免费观看电视剧
|
亚洲AV无码专区在线厂
|
亚洲视频在线免费
|
亚洲GV天堂无码男同在线观看
|
最近中文字幕完整免费视频ww
|
亚洲一级毛片免费在线观看
|
国产成人精品免费直播
|
本免费AV无码专区一区
|
亚洲人成7777影视在线观看
|
午夜精品一区二区三区免费视频
|
亚洲成av人片在线看片
|
国产三级电影免费观看
|
亚欧免费一级毛片
|
午夜亚洲国产精品福利
|
一本久久综合亚洲鲁鲁五月天
|
免费看h片的网站
|
亚洲黄色在线观看视频
|