




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
JdbcTemplateJdbcTemplate類(lèi)
JdbcTemplate是對(duì)JDBC的一種封裝
JdbcTemplate構(gòu)造函數(shù)請(qǐng)求一個(gè)DataSource對(duì)象來(lái)完成初始化使用它提供的相關(guān)方法完成數(shù)據(jù)庫(kù)的操作JdbcTemplate類(lèi)常用方法使用JdbcTemplate的execute()方法執(zhí)行SQL語(yǔ)句execute方法使用java.sql.Statement,SQL語(yǔ)句不帶參數(shù),且不返回受影響記錄的計(jì)數(shù),更適合于創(chuàng)建和丟棄表的語(yǔ)句。例如:jdbcTemplate.execute("CREATE
TABLE
USER
(user_id
integer,
name
varchar(100))");
JdbcTemplate類(lèi)常用方法增加、刪除和修改例如:jdbcTemplate.update("INSERT
INTO
USER
VALUES('“
+
user.getId()
+
"',
'"
+
user.getName()
+
"',
'"
+
user.getSex()
+
"',
'"
+
user.getAge()
+
"')");①不帶參數(shù)的更新update方法返回的是受影響的記錄數(shù)目的一個(gè)計(jì)數(shù),并且如果傳入?yún)?shù)的話(huà),使用的是java.sql.PreparedStatement,更適合于插入,更新和刪除操作。JdbcTemplate類(lèi)常用方法增加、刪除和修改②帶參數(shù)的修改
//修改帶參數(shù)jdbcTemplate.update("UPDATE
USER
SET
name
=
?
WHERE
user_id
=
?",
new
Object[]
{name,
id});
//插入帶參數(shù)jdbcTemplate.update("INSERT
INTO
USER
VALUES(?,
?,
?,
?)",
new
Object[]
{user.g
etId(),
user.getName(),
user.getSex(),
user.getAge()});update方法JdbcTemplate類(lèi)常用方法JDBC的PreparedStatement①單個(gè)更新例如:jdbcTemplate.update("INSERT
INTO
USER
VALUES(?,
?,
?,
?)",
new
PreparedStatementSetter()
{
public
void
setValues(PreparedStatement
ps)
throws
SQLException
{
ps.setString(1,
id);
ps.setString(2,
name);
ps.setString(3,
sex);
ps.setInt(4,
age);
}
});
注意:匿名內(nèi)部類(lèi)只能訪(fǎng)問(wèn)外部最終局部變量JdbcTemplate類(lèi)常用方法JDBC的PreparedStatementpublicinterfaceBatchPreparedStatementSetter{
voidsetValues(PreparedStatementps,inti)throwsSQLException;
intgetBatchSize();}......publicint[]insertUsers(finalListusers){
Stringsql="INSERTINTOuser(name,age)VALUES(?,?)";
BatchPreparedStatementSettersetter=new
BatchPreparedStatementSetter(){
publicvoidsetValues(
PreparedStatementps,inti)throwsSQLException{
Useruser=(User)users.get(i);
ps.setString(1,user.getName());
ps.setInt(2,user.getAge().intValue());
}
publicintgetBatchSize(){
returnusers.size();
}
};
returnjdbcTemplate.batchUpdate(sql,setter);}......如果JDBC驅(qū)動(dòng)程序支持批處理,則直接使用它的功能;如果不支持,Spring則會(huì)一個(gè)一個(gè)自動(dòng)處理更新以模擬批處理②批量更新需要批處理,可以實(shí)現(xiàn)org.springframework.jdbc.core.BatchPreparedStatementSetter接口JdbcTemplate類(lèi)常用方法查詢(xún)①使用JdbcTemplate進(jìn)行查詢(xún)時(shí),使用queryForXXX()等方法int
count
=
jdbcTemplate.queryForInt("SELECT
COUNT(*)
FROM
USER");
String
name
=
(String)
jdbcTemplate.queryForObject(
"SELECT
name
FROM
USER
WHERE
user_id
=
?",
new
Object[]
{id},
java.lang.String.class);
//queryForList返回的List中的對(duì)象是MapList
rows
=
jdbcTemplate.queryForList("SELECT
*
FROM
USER");
Iterator
it
=
rows.iterator();
while(it.hasNext())
{
Map
userMap
=
(Map)
it.next();
System.out.print(userMap.get("user_id")
+
"\t");
System.out.print(userMap.get("name")
+
"\t");
System.out.print(userMap.get("sex")
+
"\t");
System.out.println(userMap.get("age")
+
"\t");
}
JdbcTemplate類(lèi)常用方法查詢(xún)②JDBC的callback方式—單行查詢(xún)final
User
user
=
new
User();
jdbcTemplate.query("SELECT
*
FROM
USER
WHERE
user_id
=
?",new
Object[]
{id},
new
RowCallbackHandler()
{
public
void
processRow(ResultSet
rs)
throws
SQLException
{
user.setId(rs.getString("user_id"));
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 卓越班組管理課件
- 華為公司管理課件
- 貴州歷年高考數(shù)學(xué)試卷
- 醫(yī)院院長(zhǎng)管理課課件
- 健康管理師課件知識(shí)
- 2025年中國(guó)高精度gnss行業(yè)競(jìng)爭(zhēng)格局分析及投資規(guī)劃研究報(bào)告
- 2025年中國(guó)載重汽車(chē)市場(chǎng)競(jìng)爭(zhēng)態(tài)勢(shì)及投資戰(zhàn)略規(guī)劃研究報(bào)告
- 2025-2031年中國(guó)木纖板行業(yè)發(fā)展前景預(yù)測(cè)及投資方向研究報(bào)告
- 健康的一天課件
- 醫(yī)藥與健康課件
- 采茶廠(chǎng)員工行為規(guī)范檢查監(jiān)督制度
- 2025年中國(guó)航天日知識(shí)競(jìng)賽考試題庫(kù)300題(含答案)
- 廣東高一考數(shù)學(xué)試卷
- 信息安全培訓(xùn)的課件
- 工廠(chǎng)安全生產(chǎn)管理規(guī)范
- 2025年中考英語(yǔ)廣東卷試題真題解讀及答案詳解
- 殘疾人專(zhuān)職委員筆試試題及答案
- 科室護(hù)理一級(jí)質(zhì)控內(nèi)容匯報(bào)
- 2025年廣東省中考物理試題卷(含答案)
- 防汛應(yīng)急預(yù)案方案范本
- 北師大版四年級(jí)數(shù)學(xué)上冊(cè)全冊(cè)單元檢測(cè)題及答案
評(píng)論
0/150
提交評(píng)論