學習筆記——定義切麵優先順序 ;Spring中的JdbcTemplate;JdbcTemplate的常用API

来源:https://www.cnblogs.com/isDaHua/archive/2023/01/18/17059859.html
-Advertisement-
Play Games

2023-01-18 一、定義切麵優先順序 1、語法:@Order(value=index) ①index是int類型,預設值是int可存儲的最大值 ②數值越小,優先順序越高 二、Spring中的JdbcTemplate 1、JdbcTemplate簡介 (1)Spring提供的JdbcTemplate ...


2023-01-18

一、定義切麵優先順序 

 1、語法:@Order(value=index)

①index是int類型,預設值是int可存儲的最大值

②數值越小,優先順序越高

二、Spring中的JdbcTemplate

1、JdbcTemplate簡介

(1)Spring提供的JdbcTemplate是一個小型持久化層框架,簡稱Jdbc代碼

Mybatis是一個半自動化的ORM持久化層框架

2、JdbcTemplate基本使用

(1)導入Jar包

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.10</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.10</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>5.3.10</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.26</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

(2)編寫配置文件

db.properties:設置連接資料庫屬性

applicationContext.xml(spring配置文件)

    載入外部屬性文件、裝配數據源(DataSources)、裝配JdbcTemplate

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">


<!--    載入外部屬性文件-->
    <context:property-placeholder location="classpath:db.properties"></context:property-placeholder>

<!--    裝配數據源(DataSources)-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${db.driverClassName}"></property>
        <property name="url" value="${db.url}"></property>
        <property name="username" value="${db.username}"></property>
        <property name="password" value="${db.password}"></property>
    </bean>

    <!--    裝配JdbcTemplate-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    
</beans>

(3)使用核心類庫

三、JdbcTemplate的常用API

1、jdbcTemplate.update(String sql,Object... args):通用的增刪改查方法

 //創建容器對象
        ApplicationContext context =
                new ClassPathXmlApplicationContext("applicationContext_jdbcTemplate.xml");
        //獲取JdbcTemplate對象
        JdbcTemplate jdbcTemplate = context.getBean("jdbcTemplate", JdbcTemplate.class);

        ////        String sql = "insert into tbl_dept(dept_name) values(?)";
//        jdbcTemplate.update(sql,"採購部門");

        ////        String sql = "delete from tbl_dept where dept_id = ?";
//        jdbcTemplate.update(sql,4);

        //
        String sql = "update tbl_dept set dept_name=? where dept_id=?";
       jdbcTemplate.update(sql,"人事2部",3);

2、jdbcTemplate.batchUpdate(String,List<Object[ ]>):通用批處理增刪改查方法

//批量增
        String sql = "insert into tbl_employee(last_name,email,salary,dept_id) values(?,?,?,?)";
        List<Object[]> empList = new ArrayList<>();
        empList.add(new Object[]{"zs","[email protected]",100.0,1});
        empList.add(new Object[]{"lisi","[email protected]",100.0,2});
        empList.add(new Object[]{"wangwu","[email protected]",100.0,2});
        empList.add(new Object[]{"zhaoliu","[email protected]",100.0,1});
        empList.add(new Object[]{"qianqi","[email protected]",100.0,1});

        jdbcTemplate.batchUpdate(sql,empList);

 

3、jdbcTemplate.queryForObject(String sql,Class clazz,Object... args):查詢單個數值

String sql = "select count(1) from tbl_employee";
Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println("員工數量為:" + count);

4、jdbcTemplate.queryForObject(String sql,RowMapper<T> rm,Object... args):查詢單個對象

//查詢單個對象
        String sql = "select id,last_name,email,salary,dept_id from tbl_employee where id=?";
//        創建RowMapper
        RowMapper<Employee> rowMapper = new BeanPropertyRowMapper<>(Employee.class);
        Employee employee = jdbcTemplate.queryForObject(sql, rowMapper, 1);
        System.out.println("employee = " + employee);

5、jdbcTemplate.query(String sql,RowMapper<T> rm,Object... args):查詢多個對象

//查詢多個對象
         String sql = "select id,last_name,email,salary,dept_id from tbl_employee";
        //創建RowMapper<T>
        RowMapper<Employee> rowMapper = new BeanPropertyRowMapper<>(Employee.class);
        //測試
        List<Employee> query = jdbcTemplate.query(sql, rowMapper);
        for (Employee employee : query) {
            System.out.println("employee = " + employee);
        }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 隨著電腦系統的規模越來越大,業務量的迅速提升和互聯網的爆炸式增長,集中式系統採用大型主機單機部署帶來了一系列問題:系統大而複雜、難於維護、發生單點故障引起雪崩、擴展性差等。這些都使業務面臨巨大的壓力和嚴重的風險,為瞭解決集中式系統架構面臨的痛點,分散式系統架構逐步走上舞臺。分散式系統是一個硬體或軟... ...
  • 2023-01-18 一、Spring聲明式事務管理 1、事務四大特征(ACID) (1)原子性 (2)一致性 (3)隔離性 (4)持久性 2、事務三種行為 (1)開啟事務:connection.setAutoCommit(False) (2)提交事務:connection.commit() (3) ...
  • 1.數組元素的賦值(楊輝三角、回形數等)2.求數值型數組中元素的最大值、最小值、平均數、總和等 3.數組的複製、反轉、查找(線性查找、二分法查找) 4.數組元素的排序演算法一:楊輝三角(數組元素的賦值) public class yanghuisanjiao { public static void ...
  • Spring管理Bean-IOC-03 2.基於XML配置bean 2.15bean的生命周期 bean對象的創建是由JVM完成的,然後執行如下方法: 執行構造器 執行set相關方法 調用bean的初始化方法(需要配置) 使用bean 當容器關閉時,調用bean的銷毀方法(需要配置) 例子 Hous ...
  • Arrays類 一、Arrays類常見方法 Arrays裡面包含了一系列靜態方法,用於管理或操作數組(比如排序和搜索)。 toString 返回數組的字元串形式 Arrays.toString(arr) sort排序(自然排序和定製排序) import java.util.Arrays; impor ...
  • RocketMQ 5.0:雲原生“消息、事件、流”實時數據處理平臺,覆蓋雲邊端一體化數據處理場景。 核心特性 雲原生:生與雲,長與雲,無限彈性擴縮,K8s友好 高吞吐:萬億級吞吐保證,同時滿足微服務與大數據場景 流處理:提供輕量、高擴展、高性能和豐富功能的流計算引擎 金融級:金融級的穩定性,廣泛用於 ...
  • 本期主要講了講自己為什麼學Java、自我介紹了一下,以及用粗糙的語言勉強講了講 Java 程式設計的準備工作。 ...
  • pojo指簡單的Java對象 是實體類Entity和 值對象VO 還有DTO數據傳輸對象的統稱 Entity實體類,通常和對應的表欄位的數量是一致的 DTO數據傳輸對象, 當客戶端給伺服器傳遞參數時,參數的數量可能比實體類中的數量要少,比如實體類中有10個參數 但是客戶端只傳遞過來的3個參數,此時通 ...
一周排行
    -Advertisement-
    Play Games
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...