最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring框架中的JdbcTemplate

 更新時間:2025年05月15日 14:36:09   作者:真真最可愛  
這篇文章主要介紹了Spring框架中的JdbcTemplate相關知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

JdbcTemplate

1、什么是 JdbcTemplate

(1)Spring 框架對 JDBC 進行封裝,使用 JdbcTemplate 方便實現對數據庫操作 JDBC講解

2、準備工作

(1)引入相關 jar 包

(2)在 spring 配置文件配置數據庫連接池

<!-- 數據庫連接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
 <property name="url" value="jdbc:mysql:///user_db" />
 <property name="username" value="root" />
 <property name="password" value="root" />
 <property name="driverClassName" value="com.mysql.jdbc.Driver" />
</bean>

(3)配置 JdbcTemplate 對象,注入 DataSource

<!-- JdbcTemplate 對象 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
 <!--注入 dataSource  源碼中是set方式構造,所以用property。有參構造用的是constructor-arg-->
 <property name="dataSource" ref="dataSource"></property>
</bean>

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

配置文件

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

Service類

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

Dao類

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

JdbcTemplate 操作數據庫(添加)

1、對應數據庫創(chuàng)建實體類

!](https://img-blog.csdnimg.cn/98bb8039e524427f906680d09d94663b.png)

2、編寫 service 和 dao

(1)在 dao 進行數據庫添加操作
(2)調用 JdbcTemplate 對象里面 update 方法實現添加操作

  • 第一個參數:sql 語句
  • 第二個參數:可變參數,設置 sql 語句值
@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 調用方法實現
    Object[] args = {book.getUserId(), book.getUsername(), book.getUstatus()};
    int update = jdbcTemplate.update(sql,args); //返回值是變化的行數 
    System.out.println(update);
    }
}

3、測試類

@Test
public void testJdbcTemplate() {
    ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
    //要調用Service類中的對象
    BookService bookService = context.getBean("bookService", BookService.class);
    Book book = new Book();
    book.setUserId("1");
    book.setUsername("java");
    book.setUstatus("a");
    bookService.addBook(book);
}

JdbcTemplate 操作數據庫(修改和刪除)

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 操作數據庫(查詢返回某個值)

1、查詢表里面有多少條記錄,返回是某個值

2、使用 JdbcTemplate 實現查詢返回某個值代碼

  • 第一個參數:sql 語句
  • 第二個參數:返回類型 Class
//查詢表記錄數
@Override
public int selectCount() {
    String sql = "select count(*) from t_book";
    Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
    return count;
}

JdbcTemplate 操作數據庫(查詢返回對象)

1、場景:查詢圖書詳情

2、JdbcTemplate 實現查詢返回對象

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

JdbcTemplate 操作數據庫(查詢返回集合)

1、場景:查詢圖書列表分頁…
2、調用 JdbcTemplate 方法實現查詢返回集合

  • 第一個參數:sql 語句
  • 第二個參數:RowMapper 是接口,針對返回不同類型數據,使用這個接口里面實現類完成數據封裝
  • 第三個參數:sql 語句值
//查詢返回集合
@Override
public List<Book> findAllBook() {
    String sql = "select * from t_book";
    //調用方法
    List<Book> bookList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Book>(Book.class));
    return bookList;
}

JdbcTemplate 操作數據庫(批量操作)

1、批量操作:操作表里面多條記錄

2、JdbcTemplate 實現批量添加操作

  • 第一個參數:sql 語句
  • 第二個參數:List 集合,添加多條記錄數據
//批量添加
@Override
public void batchAddBook(List<Object[]> batchArgs) {
    String sql = "insert into t_book values(?,?,?)";
    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);
   //調用批量添加
   bookService.batchAdd(batchArgs);

3、JdbcTemplate 實現批量修改操作

//批量修改
@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));
 }
   //批量修改
   List<Object[]> batchArgs = new ArrayList<>();
   Object[] o1 = {"java0909","a3","3"};
   Object[] o2 = {"c++1010","b4","4"};
   Object[] o3 = {"MySQL1111","c5","5"};
   batchArgs.add(o1);
   batchArgs.add(o2);
   batchArgs.add(o3);
   //調用方法實現批量修改
   bookService.batchUpdate(batchArgs);

4、JdbcTemplate 實現批量刪除操作

//批量刪除
@Override
public void batchDeleteBook(List<Object[]> batchArgs) {
    String sql = "delete from t_book where user_id=?";
    int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
    System.out.println(Arrays.toString(ints));
}
   //批量刪除
   List<Object[]> batchArgs = new ArrayList<>();
   Object[] o1 = {"3"};
   Object[] o2 = {"4"};
   batchArgs.add(o1);
   batchArgs.add(o2);
   //調用方法實現批量刪除
   bookService.batchDelete(batchArgs);

到此這篇關于Spring框架中的JdbcTemplate的文章就介紹到這了,更多相關Spring JdbcTemplate內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBoot配置MySQL5.7與MySQL8.0的異同點詳解

    SpringBoot配置MySQL5.7與MySQL8.0的異同點詳解

    MySQL 是 Java 開發(fā)中最常用的數據庫之一,而 Spring Boot 提供了便捷的配置方式,隨著 MySQL 8.0 的普及,許多開發(fā)者需要從 MySQL 5.7 升級到 8.0,在實際開發(fā)中,二者的配置方式既有相似之處,也有一些需要特別注意的不同點,所以本文給大家詳細介紹了它們的異同點
    2024-12-12
  • Java自定義長度可變數組的操作

    Java自定義長度可變數組的操作

    這篇文章主要介紹了Java自定義長度可變數組的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Spring系列中的beanFactory與ApplicationContext

    Spring系列中的beanFactory與ApplicationContext

    這篇文章主要介紹了Spring系列中的beanFactory與ApplicationContext,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • java?MultipartFile文件上傳重命名詳細代碼示例

    java?MultipartFile文件上傳重命名詳細代碼示例

    在文件上傳功能開發(fā)中,為防止文件重名導致數據覆蓋,常見的做法是在文件名前加上UUID或時間戳來區(qū)分,這篇文章主要介紹了java?MultipartFile?multipartFile文件上傳重命名的相關資料,需要的朋友可以參考下
    2024-09-09
  • MyBatis中不建議使用where?1=1原因詳解

    MyBatis中不建議使用where?1=1原因詳解

    這篇文章主要為大家介紹了MyBatis中不建議使用where?1=1的原因詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • SpringBoot整合Netty+Websocket實現消息推送的示例代碼

    SpringBoot整合Netty+Websocket實現消息推送的示例代碼

    WebSocket使得客戶端和服務器之間的數據交換變得更加簡單,允許服務端主動向客戶端推送數據,本文主要介紹了SpringBoot整合Netty+Websocket實現消息推送的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • java異步編程的7種實現方式小結

    java異步編程的7種實現方式小結

    異步處理的實現方式有很多種,常見多線程,消息中間件,發(fā)布訂閱的廣播模式,本文就詳細的介紹java異步編程的7種實現方式,感興趣的可以了解一下
    2023-03-03
  • 解讀Spring?Bean的作用域

    解讀Spring?Bean的作用域

    這篇文章主要介紹了解讀Spring?Bean的作用域,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Spring實戰(zhàn)之Bean的后處理器操作示例

    Spring實戰(zhàn)之Bean的后處理器操作示例

    這篇文章主要介紹了Spring實戰(zhàn)之Bean的后處理器操作,結合實例形式詳細分析了Bean的后處理器相關配置、操作方法及使用注意事項,需要的朋友可以參考下
    2019-12-12
  • idea無法識別注解,或pom文件異常的問題及解決

    idea無法識別注解,或pom文件異常的問題及解決

    文章介紹了三種解決IDEA無法識別注解或POM文件異常的方法:1.檢查省電模式設置;2.為未識別的POM文件添加Maven工程;3.移除并重新添加有問題的模塊
    2026-01-01

最新評論

应用必备| 克什克腾旗| 资阳市| 罗江县| 名山县| 尖扎县| 清新县| 梁山县| 五峰| 伊春市| 广平县| 嘉义市| 文化| 稻城县| 山丹县| 始兴县| 曲阳县| 抚松县| 衢州市| 原阳县| 丰城市| 佛山市| 深圳市| 南召县| 聊城市| 东辽县| 肥乡县| 平南县| 扎鲁特旗| 河东区| 澄迈县| 镇雄县| 赫章县| 永川市| 玉溪市| 金寨县| 甘谷县| 贵阳市| 如皋市| 儋州市| 察隅县|