學習筆記——定義切麵優先順序 ;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
  • 最近做項目過程中,使用到了海康相機,官方只提供了C/C++的SDK,沒有搜尋到一個合適的封裝了的C#庫,故自己動手,簡單的封裝了一下,方便大家也方便自己使用和二次開發 ...
  • 前言 MediatR 是 .NET 下的一個實現消息傳遞的庫,輕量級、簡潔高效,用於實現進程內的消息傳遞機制。它基於中介者設計模式,支持請求/響應、命令、查詢、通知和事件等多種消息傳遞模式。通過泛型支持,MediatR 可以智能地調度不同類型的消息,非常適合用於領域事件處理。 在本文中,將通過一個簡 ...
  • 前言 今天給大家推薦一個超實用的開源項目《.NET 7 + Vue 許可權管理系統 小白快速上手》,DncZeus的願景就是做一個.NET 領域小白也能上手的簡易、通用的後臺許可權管理模板系統基礎框架。 不管你是技術小白還是技術大佬或者是不懂前端Vue 的新手,這個項目可以快速上手讓我們從0到1,搭建自 ...
  • 第1章:WPF概述 本章目標 瞭解Windows圖形演化 瞭解WPF高級API 瞭解解析度無關性概念 瞭解WPF體繫結構 瞭解WPF 4.5 WPF概述 ​ 歡迎使用 Windows Presentation Foundation (WPF) 桌面指南,這是一個與解析度無關的 UI 框架,使用基於矢 ...
  • 在日常開發中,並不是所有的功能都是用戶可見的,還在一些背後默默支持的程式,這些程式通常以服務的形式出現,統稱為輔助角色服務。今天以一個簡單的小例子,簡述基於.NET開發輔助角色服務的相關內容,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 第3章:佈局 本章目標 理解佈局的原則 理解佈局的過程 理解佈局的容器 掌握各類佈局容器的運用 理解 WPF 中的佈局 WPF 佈局原則 ​ WPF 視窗只能包含單個元素。為在WPF 視窗中放置多個元素並創建更貼近實用的用戶男面,需要在視窗上放置一個容器,然後在這個容器中添加其他元素。造成這一限制的 ...
  • 前言 在平時項目開發中,定時任務調度是一項重要的功能,廣泛應用於後臺作業、計劃任務和自動化腳本等模塊。 FreeScheduler 是一款輕量級且功能強大的定時任務調度庫,它支持臨時的延時任務和重覆迴圈任務(可持久化),能夠按秒、每天/每周/每月固定時間或自定義間隔執行(CRON 表達式)。 此外 ...
  • 目錄Blazor 組件基礎路由導航參數組件參數路由參數生命周期事件狀態更改組件事件 Blazor 組件 基礎 新建一個項目命名為 MyComponents ,項目模板的交互類型選 Auto ,其它保持預設選項: 客戶端組件 (Auto/WebAssembly): 最終解決方案裡面會有兩個項目:伺服器 ...
  • 先看一下效果吧: isChecked = false 的時候的效果 isChecked = true 的時候的效果 然後我們來實現一下這個效果吧 第一步:創建一個空的wpf項目; 第二步:在項目裡面添加一個checkbox <Grid> <CheckBox HorizontalAlignment=" ...
  • 在編寫上位機軟體時,需要經常處理命令拼接與其他設備進行通信,通常對不同的命令封裝成不同的方法,擴展稍許麻煩。 本次擬以特性方式實現,以兼顧維護性與擴展性。 思想: 一種命令對應一個類,其類中的各個屬性對應各個命令段,通過特性的方式,實現其在這包數據命令中的位置、大端或小端及其轉換為對應的目標類型; ...