在Spring中使用JdbcTemplate進(jìn)行數(shù)據(jù)庫管理操作

1噩峦、JdbcTemplate概念及使用

a)Spring 框架對 JDBC 進(jìn)行封裝,使用 JdbcTemplate 方便實(shí)現(xiàn)對數(shù)據(jù)庫操作

b)引入相關(guān) jar 包

c)在 spring 配置文件配置數(shù)據(jù)庫連接池

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
????destroy-method="close">
????<property name="url" value="jdbc:mysql:///test" />
????<property name="username" value="root" />
????<property name="password" value="root" />
????<property name="driverClassName" value="com.mysql.jdbc.Driver" />
</bean>

d)配置 JdbcTemplate 對象客叉,注入 DataSource

<!-- JdbcTemplate 對象 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!--注入 dataSource-->
<property name="dataSource" ref="dataSource"></property><!--set方式注入-->
</bean>

e)創(chuàng)建 service 類,創(chuàng)建 dao 類,在 dao 注入 jdbcTemplate 對象

<!-- 組件掃描 -->
<context:component-scan base-package="com.atguigu"></context:component-scan>

@Service
public class BookService {
//注入 dao
@Autowired
private BookDao bookDao;
}

@Repository
public class BookDaoImpl implements BookDao {
//注入 JdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
}


2荒辕、JdbcTemplate 操作數(shù)據(jù)庫(添加)

a)對應(yīng)數(shù)據(jù)庫創(chuàng)建實(shí)體類

b)創(chuàng)建service和dao

(1)在 dao 進(jìn)行數(shù)據(jù)庫添加操作

(2)調(diào)用 JdbcTemplate 對象里面 update 方法實(shí)現(xiàn)添加操作

@Repository
public class BookDaoImpl implements BookDao {
????//注入 JdbcTemplate
????@Autowired
????private JdbcTemplate jdbcTemplate;
????//添加的方法
????@Override
????public void add(Book book) {
????//1 創(chuàng)建 sql 語句
????String sql = "insert into t_book values(?,?,?)";
????//2 調(diào)用方法實(shí)現(xiàn)
????Object[] args = {book.getUserId(), book.getUsername(),book.getUstatus()};
????int update = jdbcTemplate.update(sql,args);
????System.out.println(update);
????}
}


3司顿、JdbcTemplate 操作數(shù)據(jù)庫(修改和刪除)

//1、修改
@Override
public void updateBook(Book book) {
????String sql = "update t_book set username=?,ustatus=? where user_id=?";
????Object[] args = {book.getUsername(), book.getUstatus(),book.getUserId()};
????int update = jdbcTemplate.update(sql, args);
????System.out.println(update);
}
//2兄纺、刪除
@Override
public void delete(String id) {
????String sql = "delete from t_book where user_id=?";
????int update = jdbcTemplate.update(sql, id);】
????System.out.println(update);
}
//使用JdbcTemplate 模板所實(shí)現(xiàn)的 “增刪改” 都是調(diào)用了同一個(gè) “update” 方法


4大溜、JdbcTemplate 操作數(shù)據(jù)庫(查詢返回某個(gè)值)

//查詢表記錄數(shù)
@Override
public int selectCount() {
????String sql = "select count(*) from t_book";
????//queryForObject方法中:第一個(gè)參數(shù)代表--sql語句;第二個(gè)參數(shù)代表--返回類型class
????Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
????return count;
}
JdbcTemplate 操作數(shù)據(jù)庫(


5估脆、JdbcTemplate 操作數(shù)據(jù)庫(查詢返回對象)

//查詢返回對象
@Override
public Book findBookInfo(String id) {
????String sql = "select * from t_book where user_id=?";
????//調(diào)用方法
/*
????queryForObject方法中:
????第一個(gè)參數(shù):sql語句
????第二個(gè)參數(shù):RowMapper 是接口钦奋,針對返回不同類型數(shù)據(jù),使用這個(gè)接口里面 實(shí)現(xiàn)類 完成數(shù)據(jù)封裝
????第三個(gè)參數(shù):sql 語句值
*/
????Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Book>(Book.class), id);
????return book;
}


6疙赠、JdbcTemplate 操作數(shù)據(jù)庫(查詢返回集合)

//所用場景:查詢圖書列表分頁付材、、
//查詢返回集合
@Override
public List<Book> findAllBook() {
????String sql = "select * from t_book";
????//調(diào)用方法
????List<Book> bookList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Book>(Book.class));
????return bookList;
}


7圃阳、JdbcTemplate 操作數(shù)據(jù)庫(批量操作)

//批量添加
@Override
public void batchAddBook(List<Object[]> batchArgs) {
????String sql = "insert into t_book values(?,?,?)";
????//batchUpdate方法 第一個(gè)參數(shù):sql語句 第二個(gè)參數(shù):List集合厌衔,添加多條記錄數(shù)據(jù)
????int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
????System.out.println(Arrays.toString(ints));
}

//批量添加測試
List<Object[]> batchArgs = new ArrayList<>();
Object[] o1 = {"3","java","a"};
Object[] o2 = {"4","c++","b"};
Object[] o3 = {"5","MySQL","c"};
batchArgs.add(o1);
batchArgs.add(o2);
batchArgs.add(o3);
//調(diào)用批量添加
bookService.batchAdd(batchArgs);


8、JdbcTemplate 實(shí)現(xiàn)批量修改操作

//批量修改(同批量添加一樣捍岳,調(diào)用同一個(gè)方法)
@Override
public void batchUpdateBook(List<Object[]> batchArgs) {
????String sql = "update t_book set username=?,ustatus=? where user_id=?";
????int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
????System.out.println(Arrays.toString(ints));
}


版權(quán)聲明:本文為CSDN博主「來點(diǎn)淦貨」的原創(chuàng)文章富寿,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明锣夹。原文鏈接:https://blog.csdn.net/weixin_45496190/article/details/107092107

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末页徐,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子银萍,更是在濱河造成了極大的恐慌变勇,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贴唇,死亡現(xiàn)場離奇詭異搀绣,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)戳气,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進(jìn)店門链患,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人物咳,你說我怎么就攤上這事锣险。” “怎么了览闰?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵芯肤,是天一觀的道長。 經(jīng)常有香客問我压鉴,道長崖咨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任油吭,我火速辦了婚禮击蹲,結(jié)果婚禮上署拟,老公的妹妹穿的比我還像新娘。我一直安慰自己歌豺,他們只是感情好推穷,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著类咧,像睡著了一般馒铃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上痕惋,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天区宇,我揣著相機(jī)與錄音,去河邊找鬼值戳。 笑死议谷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的堕虹。 我是一名探鬼主播卧晓,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鲫凶!你這毒婦竟也來了禀崖?” 一聲冷哼從身側(cè)響起衩辟,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤螟炫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后艺晴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體昼钻,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年封寞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了然评。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,918評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狈究,死狀恐怖碗淌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情抖锥,我是刑警寧澤亿眠,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站磅废,受9級特大地震影響纳像,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拯勉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一竟趾、第九天 我趴在偏房一處隱蔽的房頂上張望憔购。 院中可真熱鬧,春花似錦岔帽、人聲如沸玫鸟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鞋邑。三九已至,卻和暖如春账蓉,著一層夾襖步出監(jiān)牢的瞬間枚碗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工铸本, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肮雨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓箱玷,卻偏偏與公主長得像怨规,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子锡足,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容