隨筆:15 文章:206 評論:35 引用:0
fenglin
創新、創意、挑戰
C++博客
首頁
發新隨筆
發新文章
聯系
聚合
管理
Spring3_Hibernate與Spring的整合
UserDAO.java
package
com.bebig.dao;
import
com.bebig.model.User;
public
interface
UserDAO
{
public
void
save(User u);
}
UserDAOImpl.java
package
com.bebig.dao.impl;
import
javax.annotation.Resource;
import
org.hibernate.Session;
import
org.hibernate.SessionFactory;
import
org.springframework.stereotype.Repository;
import
com.bebig.dao.UserDAO;
import
com.bebig.model.User;
@Repository
public
class
UserDAOImpl
implements
UserDAO
{
//
由Spring框架來注入
private
SessionFactory sessionFactory;
public
SessionFactory getSessionFactory()
{
return
sessionFactory;
}
@Resource
public
void
setSessionFactory(SessionFactory sessionFactory)
{
this
.sessionFactory
=
sessionFactory;
}
@Override
public
void
save(User u)
{
Session s
=
sessionFactory.getCurrentSession();
s.beginTransaction();
s.save(u);
s.getTransaction().commit();
System.out.println(
"
a user saved!
"
);
}
}
User.java
package
com.bebig.model;
import
javax.persistence.Entity;
import
javax.persistence.GeneratedValue;
import
javax.persistence.Id;
import
javax.persistence.Table;
@Entity
@Table(name
=
"
tab_User
"
)
public
class
User
{
private
int
id;
private
String name;
@Id
@GeneratedValue
public
int
getId()
{
return
id;
}
public
void
setId(
int
id)
{
this
.id
=
id;
}
public
String getName()
{
return
name;
}
public
void
setName(String name)
{
this
.name
=
name;
}
}
UserService.java
package
com.bebig.service;
import
javax.annotation.Resource;
import
org.springframework.stereotype.Service;
import
com.bebig.dao.UserDAO;
import
com.bebig.model.User;
@Service(
"
userService
"
)
public
class
UserService
{
private
UserDAO userDAO;
public
void
add(User u)
{
userDAO.save(u);
}
@Resource
public
void
setUserDAO(UserDAO userDAO)
{
this
.userDAO
=
userDAO;
}
public
UserDAO getUserDAO()
{
return
userDAO;
}
public
void
init()
{
System.out.println(
"
init.
"
);
}
public
void
destory()
{
System.out.println(
"
destory.
"
);
}
}
beans.xml
<?
xml version="1.0" encoding="UTF-8"
?>
<
beans
xmlns
="http://www.springframework.org/schema/beans"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context
="http://www.springframework.org/schema/context"
xmlns:aop
="http://www.springframework.org/schema/aop"
xsi:schemaLocation
="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"
>
<!--
a service object; we will be profiling its methods
-->
<
context:annotation-config
/>
<
context:component-scan
base-package
="com.bebig"
/>
<
bean
id
="dataSource"
class
="org.apache.commons.dbcp.BasicDataSource"
destroy-method
="close"
>
<
property
name
="driverClassName"
value
="${jdbc.driverClassName}"
/>
<
property
name
="url"
value
="${jdbc.url}"
/>
<
property
name
="username"
value
="${jdbc.username}"
/>
<
property
name
="password"
value
="${jdbc.password}"
/>
</
bean
>
<
context:property-placeholder
location
="classpath:jdbc.properties"
/>
<!--
讓Spring幫我們注入SessionFactory
-->
<
bean
id
="sessionFactory"
class
="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
>
<
property
name
="dataSource"
ref
="dataSource"
/>
<
property
name
="annotatedClasses"
>
<!--
將實體類注入annotatedClasses屬性
-->
<
list
>
<
value
>
com.bebig.model.User
</
value
>
</
list
>
</
property
>
<!--
hibernate的一些配置
-->
<
property
name
="hibernateProperties"
>
<
props
>
<
prop
key
="hibernate.dialect"
>
org.hibernate.dialect.SQLServerDialect
</
prop
>
<
prop
key
="hibernate.show_sql"
>
true
</
prop
>
<
prop
key
="hibernate.format_sql"
>
true
</
prop
>
<
prop
key
="hibernate.current_session_context_class"
>
thread
</
prop
>
</
props
>
</
property
>
</
bean
>
</
beans
>
jdbc.properties
jdbc.driverClassName
=
com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url
=
jdbc:sqlserver://localhost:
1433
;
DatabaseName=spring
jdbc.username
=
sa
jdbc.password
=
******
測試用例:
UserServiceTest.java
package
com.bebig.service;
import
org.junit.Test;
import
org.springframework.context.support.ClassPathXmlApplicationContext;
import
com.bebig.model.User;
public
class
UserServiceTest
{
@Test
public
void
testAdd()
throws
Exception
{
ClassPathXmlApplicationContext cxt
=
new
ClassPathXmlApplicationContext(
"
beans.xml
"
);
UserService service
=
(UserService) cxt.getBean(
"
userService
"
);
User u
=
new
User();
u.setName(
"
Test
"
);
service.add(u);
}
}
注:把Hibernate要用到的JAR包加進來。
發表于 2010-10-20 14:09
風林
閱讀(2604)
評論(0)
編輯
收藏
引用
所屬分類:
JAVA
、
Hibernate
、
Spring
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
[轉]java編程中'為了性能'一些盡量做到的地方
JAVAC命令行錯誤
Java基礎_Collection接口下的子類存儲特性
Android_常用控件使用
Android_Activity&Intent&Layout
Integer自動裝箱、拆箱問題
自定義比較器、排序
JDBC操作實例
常用數據庫的JDBC連接代碼
[轉]J2SE_內部類
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
CALENDER
<
2025年6月
>
日
一
二
三
四
五
六
25
26
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
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
給我留言
查看公開留言
查看私人留言
隨筆分類
jBPM
(rss)
隨筆檔案
2011年7月 (1)
2011年4月 (1)
2011年2月 (1)
2010年11月 (1)
2010年10月 (2)
2010年9月 (3)
2010年8月 (4)
2010年7月 (2)
文章分類
AJAX(2)
(rss)
Android(2)
(rss)
C#(20)
(rss)
C++(6)
(rss)
ckeditor&ckfinder(1)
(rss)
CSS
(rss)
Delphi(2)
(rss)
Hibernate(39)
(rss)
JAVA(95)
(rss)
jQuery(1)
(rss)
JSP(9)
(rss)
Maven(1)
(rss)
MySQL(4)
(rss)
OOP(1)
(rss)
Python(42)
(rss)
Spring(31)
(rss)
SQL Server(4)
(rss)
Struts2(35)
(rss)
SVN(1)
(rss)
Tomcat(1)
(rss)
Ubuntu(1)
(rss)
軟件加解密技術
(rss)
雜文(1)
(rss)
文章檔案
2011年8月 (1)
2011年7月 (3)
2011年6月 (19)
2011年5月 (2)
2011年4月 (1)
2011年2月 (1)
2010年12月 (2)
2010年11月 (21)
2010年10月 (67)
2010年9月 (48)
2010年8月 (37)
2010年7月 (4)
新聞檔案
2010年7月 (1)
相冊
CSS
Hibernate
搜索
最新評論
1.?re: Struts2_三種傳參數方法
方式的發生
--阿飛史蒂夫
2.?re: 在Win7上搭建JSP開發環境
評論內容較長,點擊標題查看
--鄒
3.?re: ckeditor&ckfinder&s2sh集成
評論內容較長,點擊標題查看
--庸幾何
4.?re: 在Win7上搭建JSP開發環境
下個 myeclipse@lou
--孫毅
5.?re: 在Win7上搭建JSP開發環境
@lou
運行 -cmd 找到startup.bat 在java 環境中運行
--孫毅
閱讀排行榜
1.?開始找Java開發類工作了(510)
2.?給一家公司的軟件做加密方案(443)
3.?一流、二流、三流(421)
4.?周一到周五都得出差,周末才能回(420)
5.?最近工作有點忙(381)
評論排行榜
1.?周一到周五都得出差,周末才能回(2)
2.?給力2011(2)
3.?最近工作有點忙(0)
4.?生活(0)
5.?在博客園開博了(0)
Powered By:
博客園
模板提供
:
滬江博客
亚洲国产精品无码久久久久久曰
|
亚洲精品无码久久毛片
|
国产精品无码久久综合
|
精品久久久久久中文字幕
|
久久精品国内一区二区三区
|
日韩久久久久中文字幕人妻
|
一本色道久久HEZYO无码
|
狠狠狠色丁香婷婷综合久久五月
|
日日狠狠久久偷偷色综合96蜜桃
|
久久久久久久综合狠狠综合
|
国产精品久久久久9999高清
|
亚洲va久久久久
|
日本久久久久久中文字幕
|
波多野结衣久久一区二区
|
国产精品免费久久久久影院
|
色婷婷久久综合中文久久一本
|
国产综合久久久久
|
久久综合偷偷噜噜噜色
|
99久久综合狠狠综合久久
|
一本久道久久综合狠狠爱
|
久久久久亚洲爆乳少妇无
|
久久国产乱子伦免费精品
|
久久久久久久综合狠狠综合
|
99久久精品免费看国产免费
|
久久精品人成免费
|
久久久久亚洲AV片无码下载蜜桃
|
人人狠狠综合久久亚洲
|
精品久久久无码中文字幕天天
|
久久精品国产亚洲77777
|
久久国产欧美日韩精品
|
亚州日韩精品专区久久久
|
国产福利电影一区二区三区,免费久久久久久久精
|
国产一级做a爰片久久毛片
|
无码专区久久综合久中文字幕
|
一本色道久久88综合日韩精品
|
久久综合久久综合九色
|
A狠狠久久蜜臀婷色中文网
|
午夜不卡久久精品无码免费
|
久久亚洲国产午夜精品理论片
|
久久久久99精品成人片欧美
|
无码人妻久久一区二区三区免费丨
|