翠湖月色
No Buddha tree at all,And bright mirror nor.Now nothing at all,How dusts any more ?
首頁
新隨筆
聯系
聚合
管理
隨筆 - 251 文章 - 504 trackbacks - 0
<
2006年12月
>
日
一
二
三
四
五
六
26
27
28
29
30
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
31
1
2
3
4
5
6
本博客系個人收集材料及學習記錄之用,各類“大俠”勿擾!
留言簿
(14)
給我留言
查看公開留言
查看私人留言
隨筆分類
JavaEE(36)
Linux與Unix(6)
Web Services and SOA(16)
WordPress或PHP(1)
人文歷史(17)
名詞解釋(2)
品讀英語(18)
基礎編程篇(9)
所感所悟(25)
報表設計與開發(12)
數據庫(Sql server,My sql)(3)
數據結構與算法設計(9)
有關網絡(5)
雜錄(29)
經典視聽(12)
網站應用(6)
腳本語言及頁面設計(8)
軟件測試技術(8)
閱讀筆記(9)
收藏夾
開源項目(2)
編程開發(3)
網絡應用(2)
My Favorite Web Sites
CSDN Java 頻道
IBM developerWorks中國
Java開源大全
J道:Java解決之道
SpringFramwork中文論壇
中國萬維網聯盟論壇
中文Java學習網站-孫衛琴版主
中文Java技術主力站點-JR論壇
綠色軟件下載-霏凡軟件站
蝙蝠英語學習網
名Bloger
Martin Fowler's blog
No1
算法研究、C/C++
月光博客
非著名Bloger
willing的Blog
德賢Blog
放水老倌
搜索
積分與排名
積分 - 202423
排名 - 285
最新評論
1.?re: Jasperreport連續打印多個報表模板-原創
您好博主,多個jasper報表文件合并輸出pdf文件了,請問頁碼和總頁數怎么設置?謝謝!
--飛燕
2.?re: FckEditor上傳音頻視頻[未登錄]
樓主可以將此代碼共享出來呀 既然這么多人要!
--hello
3.?re: FckEditor上傳音頻視頻
能不能發一份fck支持上傳,播放視頻的給我,我急用!
--張德強
4.?re: Struts2 select標簽值從數據庫讀取,再提交給action
公司打個
--飛灑地方
5.?re: Jasperreport連續打印多個報表模板-原創
多謝,解決了我的問題
--黃曉潔
Spring IoC容器-編碼方式比較
下面會通過一個獲得數據源的例子來比較下傳統編碼模式和IoC編碼模式的不同。首先,在傳統編碼方式下,我們可能這樣獲得數據源并顯示結果:
package
?com.lnic.ioc;
import
?javax.sql.DataSource;
import
?java.sql.Connection;
import
?java.sql.Statement;
import
?java.sql.ResultSet;
import
?java.sql.SQLException;
import
?org.apache.commons.dbcp.BasicDataSource;
public
?
class
?BasicDataSourceExample?
{
????
public
?
static
?
void
?main(String[]?args)?
{
????????DataSource?dataSource?
=
?setupDataSource();
????????
//
?創建JDBC數據源
????????Connection?conn?
=
?
null
;
????????Statement?stmt?
=
?
null
;
????????ResultSet?rset?
=
?
null
;
????????
try
?
{
????????????
????????????conn?
=
?dataSource.getConnection();
????????????stmt?
=
?conn.createStatement();
????????????rset?
=
?stmt.executeQuery(
"
select?*?from?user
"
);
????????????System.out.println(
"
Basic?DataSource?executing?results:
"
);
????????????
int
?numcols?
=
?rset.getMetaData().getColumnCount();
????????????
while
?(rset.next())?
{
????????????????
for
?(
int
?i?
=
?
1
;?i?
<=
?numcols;?i
++
)?
{
????????????????????System.out.print(
"
\t
"
?
+
?rset.getString(i));
????????????????}
????????????????System.out.println(
""
);
????????????}
????????}
?
catch
?(SQLException?e)?
{
????????????e.printStackTrace();
????????}
?
finally
?
{
????????????
try
?
{
????????????????rset.close();
????????????}
?
catch
?(Exception?e)?
{
????????????}
????????????
try
?
{
????????????????stmt.close();
????????????}
?
catch
?(Exception?e)?
{
????????????}
????????????
try
?
{
????????????????conn.close();
????????????}
?
catch
?(Exception?e)?
{
????????????}
????????}
????}
????
//
?創建數據源
????
public
?
static
?DataSource?setupDataSource()?
{
????????BasicDataSource?ds?
=
?
new
?BasicDataSource();
????????ds.setDriverClassName(
"
com.mysql.jdbc.Driver
"
);
????????ds.setUsername(
"
root
"
);
????????ds.setPassword(
"
131421
"
);
????????ds.setUrl(
"
jdbc:mysql://localhost:3306/test
"
);
????????
return
?ds;
????}
????
//
?提示數據源狀態
????
public
?
static
?
void
?printDataSourceStats(DataSource?ds)?
throws
?SQLException?
{
????????BasicDataSource?bds?
=
?(BasicDataSource)?ds;
????????System.out.println(
"
NumActive:?
"
?
+
?bds.getNumActive());
????????System.out.println(
"
NumIdle:?
"
?
+
?bds.getNumIdle());
????}
????
//
?關閉數據源
????
public
?
static
?
void
?shutdownDataSource(DataSource?ds)?
throws
?SQLException?
{
????????BasicDataSource?bds?
=
?(BasicDataSource)?ds;
????????bds.close();
????}
}
這個累的測試結果顯示:
Basic DataSource executing results:
?123?matthew?YunNanUniversity
?1?lidexian?YunNanUniversity
?2?zhangzili?HunanUniversity
而在Spring 的IoC容器的幫助下我們的編碼會更簡單和靈活。首先,定義個Spring的配置文件:applicationContext.xml。在這個配置文件中,我們配置了三個bean組件,代表不同的數據庫數據源。然后,通過配置jdbcTemplate來啟用需要的具體數據庫數據源。如下:我們采用的MySql數據源。
<?
xml?version="1.0"?encoding="UTF-8"
?>
<!
DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?"http://www.springframework.org/dtd/spring-beans.dtd"
>
<
beans
>
????
<
bean?
id
="oracle_dataSource"
?class
="org.apache.commons.dbcp.BasicDataSource"
?destroy-method
="close"
>
????????
<
property?
name
="driverClassName"
?value
="oracle.jdbc.driver.OracleDriver"
?
/>
????????
<
property?
name
="url"
?value
="jdbc:oracle:thin:@localhost:1521:cyberdb"
?
/>
????????
<
property?
name
="username"
?value
="scott"
?
/>
????????
<
property?
name
="password"
?value
="tiger"
?
/>
????
</
bean
>
????
????
????
????
<
bean?
id
="mysql_dataSource"
?class
="org.apache.commons.dbcp.BasicDataSource"
?destroy-method
="close"
>
????????
<
property?
name
="driverClassName"
?value
="com.mysql.jdbc.Driver"
?
/>
????????
<
property?
name
="url"
?value
="jdbc:mysql://localhost:3306/test"
?
/>
????????
<
property?
name
="username"
?value
="root"
?
/>
????????
<
property?
name
="password"
?value
="131421"
?
/>
????
</
bean
>
????
????
<
bean?
id
="linux_oracle_dataSource"
?class
="org.apache.commons.dbcp.BasicDataSource"
?destroy-method
="close"
>
????????
<
property?
name
="driverClassName"
?value
="oracle.jdbc.driver.OracleDriver"
?
/>
????????
<
property?
name
="url"
?value
="jdbc:oracle:thin:@192.168.0.3:1521:linuxdb"
?
/>
????????
<
property?
name
="username"
?value
="scott"
?
/>
????????
<
property?
name
="password"
?value
="tiger"
?
/>
????
</
bean
>
????
<
bean?
id
="jdbcTemplate"
?class
="org.springframework.jdbc.core.JdbcTemplate"
?lazy-init
="true"
>
????????
<
property?
name
="dataSource"
>
????????????
<
ref?
local
="mysql_dataSource"
?
/>
????????
</
property
>
????
</
bean
>
????
</
beans
>
然后,如下在代碼中通過載入Spring的配置文件,并初始化bean組件:jdbcTemplate得到數據源,并完成數據查詢。可以看出比傳統的方法簡單和靈活多了,只需要簡單配置即可完成。
package
?com.lnic.ioc;
import
?java.sql.ResultSet;
import
?java.sql.SQLException;
import
?java.util.ArrayList;
import
?java.util.List;
import
?org.springframework.context.ApplicationContext;
import
?org.springframework.context.support.ClassPathXmlApplicationContext;
import
?org.springframework.jdbc.core.JdbcTemplate;
import
?org.springframework.jdbc.core.RowCallbackHandler;
public
?
class
?IocDataSourceExample?
{
????
public
?
static
?
void
?main(String[]?args)?
{
????????ApplicationContext?ctx?
=
?
new
?ClassPathXmlApplicationContext(
????????????????
"
com/lnic/ioc/applicationContext.xml
"
);
//
載入spring配置文件applicationContext.xml
????????String?sql?
=
?
"
select?*?from?user
"
;
????????JdbcTemplate?jt?
=
?(JdbcTemplate)?ctx.getBean(
"
jdbcTemplate
"
);
//
這里采用spring的JdbcTemplate,通過spring的配置文件啟用mysql_dataSource數據源。
????????jt.query(sql,?
new
?RowCallbackHandler()?
{
????????????
public
?
void
?processRow(ResultSet?rs)?
throws
?SQLException?
{
????????????????
//
?do?something?with?the?rowdata?-?like?create?a?new
????????????????
//
?object?and?add?it?to?the?List?in?the?enclosing?code
????????????????System.out.println(
"
IocDataSource?executing?results:
"
);
????????????????
int
?numcols?
=
?rs.getMetaData().getColumnCount();
????????????????
????????????????
do
?
{
????????????????????
for
?(
int
?i?
=
?
1
;?i?
<=
?numcols;?i
++
)?
{
????????????????????????System.out.print(
"
\t
"
?
+
?rs.getString(i));
????????????????????}
????????????????????System.out.println(
""
);
????????????????}
?
while
?(rs.next());
????????????}
????????}
);
????}
}
代碼輸出如下:
IocDataSource executing results:
?123?matthew?YunNanUniversity
?1?lidexian?YunNanUniversity
?2?zhangzili?HunanUniversity
posted on 2006-12-26 13:25
matthew
閱讀(457)
評論(0)
編輯
收藏
所屬分類:
JavaEE
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
Struts2 select標簽值從數據庫讀取,再提交給action
jbpm3插件的中文亂碼問題
FckEditor編輯器添加對話框的內容
動態載入jsp頁面到指定頁面的區域
在線編輯器FCKeditor2.6中文亂碼-解決過程
Struts的標簽使用(1)
中文漢字GB2312和UTF-8的編碼轉換程序(轉)
轉載:js技巧收集(200多個) 3
轉載:js技巧收集(200多個) 2
轉載:js技巧收集(200多個) 1
Copyright ©2025 matthew Powered by:
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
男人进去女人爽免费视频国产
|
国产亚洲Av综合人人澡精品
|
久久久国产亚洲精品
|
亚洲乱妇熟女爽到高潮的片
|
在线观看亚洲精品专区
|
CAOPORN国产精品免费视频
|
香蕉免费一区二区三区
|
欧美三级在线电影免费
|
亚洲国产成人VA在线观看
|
亚洲国产AV无码专区亚洲AV
|
亚洲熟妇色自偷自拍另类
|
亚洲精品无码少妇30P
|
九九全国免费视频
|
91成人免费观看
|
日本免费一区尤物
|
亚洲精品乱码久久久久久
|
亚洲中文字幕在线无码一区二区
|
亚洲国产成人久久综合
|
中文字幕在线免费播放
|
精品免费人成视频app
|
国产老女人精品免费视频
|
国产∨亚洲V天堂无码久久久
|
亚洲av一本岛在线播放
|
亚洲综合无码AV一区二区
|
日韩精品一区二区亚洲AV观看
|
亚洲欧洲日韩国产一区二区三区
|
一级毛片试看60分钟免费播放
|
69视频在线观看高清免费
|
免费看男女下面日出水视频
|
国产区卡一卡二卡三乱码免费
|
亚洲中文字幕在线第六区
|
亚洲a∨无码男人的天堂
|
一级毛片完整版免费播放一区
|
9420免费高清在线视频
|
亚洲成a人片在线观看日本麻豆
|
久久久久亚洲精品无码系列
|
亚洲AV日韩AV无码污污网站
|
免费无码中文字幕A级毛片
|
免费a级黄色毛片
|
亚洲春黄在线观看
|
4hu四虎免费影院www
|