日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring-学习笔记09【JdbcTemplate的基本使用】

發(fā)布時(shí)間:2024/9/30 javascript 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring-学习笔记09【JdbcTemplate的基本使用】 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • Java后端 學(xué)習(xí)路線 筆記匯總表【黑馬程序員】
  • Spring-學(xué)習(xí)筆記01【Spring框架簡介】【day01】
  • Spring-學(xué)習(xí)筆記02【程序間耦合】
  • Spring-學(xué)習(xí)筆記03【Spring的IOC和DI】
  • Spring-學(xué)習(xí)筆記04【Spring的常用注解】【day02】day02資料_dbutils
  • Spring-學(xué)習(xí)筆記05【基于XML的IOC的案例】
  • Spring-學(xué)習(xí)筆記06【Spring的新注解】
  • Spring-學(xué)習(xí)筆記07【銀行轉(zhuǎn)賬案例】【day03】
  • Spring-學(xué)習(xí)筆記08【面向切面編程AOP】
  • Spring-學(xué)習(xí)筆記09【JdbcTemplate的基本使用】【day04】
  • Spring-學(xué)習(xí)筆記10【Spring事務(wù)控制】
  • 目錄

    01 今日課程內(nèi)容介紹

    02 JdbcTemplate的概述和入門

    02.1、pom.xml

    02.2、準(zhǔn)備實(shí)體類Account.java

    02.3、測試JdbcTemplateDemo1.java

    03 JdbcTemplate在spring的ioc中使用

    04 JdbcTemplate的CRUD操作

    04.1、JdbcTemplateDemo3.java

    05 JdbcTemplate在Dao中的使用

    05.1、接口IAccountDao.java

    05.2、AccountDaoImpl.java

    05.3、bean.xml

    05.4、測試類JdbcTemplateDemo4.java

    06 JdbcDaoSupport的使用以及Dao的兩種編寫方式

    06.1、JdbcDaoSupport.java


    01 今日課程內(nèi)容介紹

    1、spring中的JdbcTemplate
    ?? ?JdbcTemplate的作用:它就是用于和數(shù)據(jù)庫交互的,實(shí)現(xiàn)對(duì)表的CRUD操作。
    ?? ?如何創(chuàng)建該對(duì)象
    ?? ?對(duì)象中的常用方法
    2、作業(yè):spring基于AOP的事務(wù)控制
    3、spring中的事務(wù)控制
    ?? ?基于XML的
    ?? ?基于注解的

    02 JdbcTemplate的概述和入門

    持久層總圖

    02.1、pom.xml

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>day04_eesy_01jdbctemplate</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.0.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.0.2.RELEASE</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency></dependencies></project>

    02.2、準(zhǔn)備實(shí)體類Account.java

    02.3、測試JdbcTemplateDemo1.java

    package com.itheima.jdbctemplate;import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DriverManagerDataSource;/*** JdbcTemplate的最基本用法*/ public class JdbcTemplateDemo1 {public static void main(String[] args) {//準(zhǔn)備數(shù)據(jù)源:spring的內(nèi)置數(shù)據(jù)源DriverManagerDataSource ds = new DriverManagerDataSource();ds.setDriverClassName("com.mysql.jdbc.Driver");ds.setUrl("jdbc:mysql://localhost:3306/eesy");ds.setUsername("root");ds.setPassword("root");//1.創(chuàng)建JdbcTemplate對(duì)象JdbcTemplate jt = new JdbcTemplate();//給jt設(shè)置數(shù)據(jù)源jt.setDataSource(ds);//2.執(zhí)行操作jt.execute("insert into account(name,money)values('ccc',1000)");} }

    03 JdbcTemplate在spring的ioc中使用

    04 JdbcTemplate的CRUD操作

    查詢所需的方法

    04.1、JdbcTemplateDemo3.java

    package com.itheima.jdbctemplate;import com.itheima.domain.Account; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper;import java.sql.ResultSet; import java.sql.SQLException;/*** JdbcTemplate的CRUD操作*/ public class JdbcTemplateDemo3 {public static void main(String[] args) {//1.獲取容器ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");//2.獲取對(duì)象JdbcTemplate jt = ac.getBean("jdbcTemplate", JdbcTemplate.class);//3.執(zhí)行操作//保存//jt.update("insert into account(name,money)values(?,?)","eee",3333f);//更新//jt.update("update account set name=?,money=? where id=?","test",4567,7);//刪除//jt.update("delete from account where id=?",8);//查詢所有 // List<Account> accounts = jt.query("select * from account where money > ?",new AccountRowMapper(),1000f); // List<Account> accounts = jt.query("select * from account where money > ?",new BeanPropertyRowMapper<Account>(Account.class),1000f); // for(Account account : accounts){ // System.out.println(account); // }//查詢一個(gè) // List<Account> accounts = jt.query("select * from account where id = ?",new BeanPropertyRowMapper<Account>(Account.class),1); // System.out.println(accounts.isEmpty()?"沒有內(nèi)容":accounts.get(0));//查詢返回一行一列(使用聚合函數(shù),但不加group by子句)Long count = jt.queryForObject("select count(*) from account where money > ?", Long.class, 1000f);System.out.println(count);} }/*** 定義Account的封裝策略*/ class AccountRowMapper implements RowMapper<Account> {/*** 把結(jié)果集中的數(shù)據(jù)封裝到Account中,然后由spring把每個(gè)Account加到集合中** @param rs* @param rowNum* @return* @throws SQLException*/@Overridepublic Account mapRow(ResultSet rs, int rowNum) throws SQLException {Account account = new Account();account.setId(rs.getInt("id"));account.setName(rs.getString("name"));account.setMoney(rs.getFloat("money"));return account;} }

    05 JdbcTemplate在Dao中的使用

    05.1、接口IAccountDao.java

    package com.itheima.dao;import com.itheima.domain.Account;/*** 賬戶的持久層接口*/ public interface IAccountDao {/*** 根據(jù)Id查詢賬戶** @param accountId* @return*/Account findAccountById(Integer accountId);/*** 根據(jù)名稱查詢賬戶** @param accountName* @return*/Account findAccountByName(String accountName);/*** 更新賬戶** @param account*/void updateAccount(Account account); }

    05.2、AccountDaoImpl.java

    package com.itheima.dao.impl;import com.itheima.dao.IAccountDao; import com.itheima.domain.Account; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.support.JdbcDaoSupport;import java.util.List;/*** 賬戶的持久層實(shí)現(xiàn)類*/ public class AccountDaoImpl extends JdbcDaoSupport implements IAccountDao {@Overridepublic Account findAccountById(Integer accountId) {List<Account> accounts = super.getJdbcTemplate().query("select * from account where id = ?", new BeanPropertyRowMapper<Account>(Account.class), accountId);return accounts.isEmpty() ? null : accounts.get(0);}@Overridepublic Account findAccountByName(String accountName) {List<Account> accounts = super.getJdbcTemplate().query("select * from account where name = ?", new BeanPropertyRowMapper<Account>(Account.class), accountName);if (accounts.isEmpty()) {return null;}if (accounts.size() > 1) {throw new RuntimeException("結(jié)果集不唯一。");}return accounts.get(0);}@Overridepublic void updateAccount(Account account) {super.getJdbcTemplate().update("update account set name=?,money=? where id=?", account.getName(), account.getMoney(), account.getId());} }

    05.3、bean.xml

    05.4、測試類JdbcTemplateDemo4.java

    package com.itheima.jdbctemplate;import com.itheima.dao.IAccountDao; import com.itheima.domain.Account; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;/*** JdbcTemplate的最基本用法*/ public class JdbcTemplateDemo4 {public static void main(String[] args) {//1.獲取容器ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");//2.獲取對(duì)象IAccountDao accountDao = ac.getBean("accountDao", IAccountDao.class);Account account = accountDao.findAccountById(1);System.out.println(account);account.setMoney(30000f);accountDao.updateAccount(account);} }

    06 JdbcDaoSupport的使用以及Dao的兩種編寫方式

    06.1、JdbcDaoSupport.java

    package com.itheima.dao.impl;import org.springframework.jdbc.core.JdbcTemplate;import javax.sql.DataSource;/*** 此類用于抽取dao中的重復(fù)代碼*/ public class JdbcDaoSupport {private JdbcTemplate jdbcTemplate;public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {this.jdbcTemplate = jdbcTemplate;}public JdbcTemplate getJdbcTemplate() {return jdbcTemplate;}public void setDataSource(DataSource dataSource) {if (jdbcTemplate == null) {jdbcTemplate = createJdbcTemplate(dataSource);}}private JdbcTemplate createJdbcTemplate(DataSource dataSource) {return new JdbcTemplate(dataSource);} }

    總結(jié)

    以上是生活随笔為你收集整理的Spring-学习笔记09【JdbcTemplate的基本使用】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。