Spring in Action 筆記(II) part II
Spring in Action 筆記(II) part II
下面是測試Spring提高的Jdbc功能的主要測試類, 測試了一些使用JDBC操作數據的常用功能, 其他沒有測試的請查看其Doc,TestJdbcTemplate.java
package?
test.jdbc;
|
下面是函有main函數的 主類. TestApp.java
package?
test.jdbc;
import?
java.util.ArrayList;
import?
java.util.List;
import?
org.springframework.context.ApplicationContext;
import?
org.springframework.context.support.ClassPathXmlApplicationContext;
public?class?
TestApp?{
??
/**
???
*?
@param?
args
???
*/
??
public?static?void?
main(String[]?args)?{
????
DatabaseUtils?dataUtils?=?
new?
DatabaseUtils();
????
dataUtils.connect();
????
System.out.println(
"Open?database:!"
);
????
//?TODO?Auto-generated?method?stub
????
//測試連接數據源?......
????
ApplicationContext?context?=?
new?
ClassPathXmlApplicationContext(
"test/jdbc/spring-traning.xml"
);
????
/*?測試?DataSource?配置*/
????
TestDataSource?ds?=?(TestDataSource)?context.getBean(
"dataBean"
);
????
ds.testDataSource();
????
/*?測試JdbcTemplate?配置*/
????
????
TestJdbcTemplate?tjt?=?(TestJdbcTemplate)?context.getBean(
"testJdbcTemplate"
);
????
tjt.insertTestData(
2
,?
"test?name2"
);
????
tjt.insertTestDataWithTypeChecked(
3
,?
"test?name?3"
);
????
List<TestData>?datas?=?
new?
ArrayList<TestData>();
????
datas.add(
new?
TestData(
4
,
"test?name?4"
));
????
datas.add(
new?
TestData(
5
,
"test?name?5"
));
????
datas.add(
new?
TestData(
6
,
"test?name?6"
));
????
tjt.insertTestDataByBatchInsert(datas);
????
tjt.getTestData(
1
);
????
tjt.getTestData(
2
);
????
tjt.getTestData(
5
);
????
tjt.getDataUsingRowMapper(
5
);
//TODO?類型轉換錯誤.????TestData?data?=?tjt.getDataUsingRowMapperResultReader(1);
//????System.out.println("測試使用?RowMapperResultSetExtractor?讀取一行數據:?"?+?data.id?+?":::?name?"?+?data.name);
????
TestData?tdata?=?
new?
TestData(
9
,
"TestSqlUpdate."
);
????
tjt.insertDataUsingSqlUpdate(tdata);??
//?插入數據
????
????
tjt.getDataUsingRowMapper(
9
);?
//?測試上面插入的數據是否成功
????
????
????
dataUtils.disconnect();
??
}
}
JDBC配置文件:jdbc.properties
# Sample ResourceBundle properties file
db.username=
addressuserdb.password=
addressuserdb.driver=
org.apache.derby.jdbc.EmbeddedDriverdb.url=
jdbc : derby:db.table=
testdb.schema=
APPdb.urlName=
jdbc : derby:test
最后是最重要的配置文件: spring-traning.xml
<?
xml version = "1.0" encoding = "UTF-8" ?><!
DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd" ><
beans >< bean id = "propertyConfigurer" class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
< property name = "location" >
< value > test/jdbc/jdbc.properties </ value >
</ property >
</ bean >
<!-- get dataSource,配置dataSource -->
<!-- 從JNDI得到DataSource -->
<!-- bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/myDataSource</value>
</property>
</bean> -->
<!-- 使用Spring中的 DriverManagerDataSource -->
<!-- bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>${db.driver}</value>
</property>
<property name="url">
<value>${db.urlName}</value>
</property>
<property name="username">
<value>${db.username}</value>
</property>
<property name="password">
<value>${db.password}</value>
</property>
</bean -->
<!-- 使用DBCP dataSource -->
< bean id = "dataSource" class = "org.apache.commons.dbcp.BasicDataSource" >
< property name = "driverClassName" >
< value > ${db.driver} </ value >
</ property >
< property name = "url" >
< value > ${db.urlName} </ value >
</ property >
< property name = "username" >
< value > ${db.username} </ value >
</ property >
< property name = "password" >
< value > ${db.password} </ value >
</ property >
</ bean >
< bean id = "dataBean" class = "test.jdbc.TestDataSource" >
< property name = "dataSource" >
< ref bean = "dataSource" />
</ property >
</ bean >
<!-- ################################################################# -->
<!-- 配合DataSource測試JdbcTemplate -->
< bean id = "jdbcTemplate" class = "org.springframework.jdbc.core.JdbcTemplate" >
< property name = "dataSource" >
< ref bean = "dataSource" />
</ property >
</ bean >
< bean id = "testJdbcTemplate" class = "test.jdbc.TestJdbcTemplate" >
< constructor-arg >
< ref bean = "jdbcTemplate" />
</ constructor-arg >
<!-- 測試 SqlUpdate 接口... -->
< property name = "insertData" >
< ref bean = "insertDataUsingSqlUptate" />
</ property >
</ bean >
<!-- 測試SqlUpdate......接口 -->
< bean id = "insertDataUsingSqlUptate" class = "test.jdbc.InsertData" >
< constructor-arg >
< ref bean = "dataSource" />
</ constructor-arg >
</ bean >
</
beans >
ok, Jdbc測試的代碼就結束了.
在這里主要學習了,Spring提高的使用Jdbc的一些包裝類和接口, 來更方便的使用Jdbc操作數據, 不用些那么一些煩人的 try ... catch...... finally.....
感覺使用Sprig效率是很好,代碼看起來也很優美哦. 呵呵:
ok ,今天就終結完了, 下一次看看在Spring中如何高效使用Hibernate吧, 下次見啦
posted on 2006-05-25 20:22 junky 閱讀(473) 評論(0) 編輯 收藏 所屬分類: spring