Spring-jdbcTemplate-配置數據庫連接池,配置文件方式beans.xml

1、jdbc.properties?

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql:///studb
jdbc.user=root
jdbc.pwd=123456

2、beans.xml

<?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"xmlns:aop="http://www.springframework.org/schema/aop"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 http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd"><!--導入jdbc.properties--><context:property-placeholder location="classpath:jdbc.properties"/><!--創建數據源連接處--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.user}"/><property name="password" value="${jdbc.pwd}"/><property name="initialSize" value="5"/><property name="maxWait" value="5000"/></bean><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="dataSource"/></bean></beans>

3、Student.java

package com.atguigu.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {private Integer id;private String name;private String gender;private Integer age;private String classBean;
}

4、JdbcTemplateTest.java

package com.atguigu;
import com.atguigu.pojo.Student;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import javax.sql.DataSource;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
@SpringJUnitConfig(locations = "classpath:beans.xml")
public class JdbcTemplateTest {@Autowiredprivate DataSource dataSource;@Autowiredprivate JdbcTemplate jdbcTemplate;//測試連接數據庫@Testpublic void TestConnection() throws SQLException {System.out.println(dataSource.getConnection()==null?"連接失敗":"連接成功");//連接成功}//測試插入操作@Testpublic void InsertTest() {Student s1= new Student(0, "阿碧", "女", 18, "Java1班");String sql = "insert into students values(0,?,?,?,?)";jdbcTemplate.update(sql, s1.getName(), s1.getGender(), s1.getAge(), s1.getClassBean());}//演示刪除學生信息測試方法@Testpublic void DeleteTest() {String sql = "delete from students where id=?";jdbcTemplate.update(sql, 0);}//演示查詢單個字段值@Testpublic void QueryTest() {String sql = "select name from students where id=?";String name = jdbcTemplate.queryForObject(sql, String.class, 8);System.out.println("name = " + name);//name = 吳十}//演示查詢單個實體對象@Testpublic void QueryObjectTest() {String sql = "select * from students where id=?";Student s = jdbcTemplate.queryForObject(sql, new RowMapper<Student>() {@Overridepublic Student mapRow(ResultSet rs, int rowNum) throws SQLException {return new Student(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getString(5));}}, 8);System.out.println("s = " + s);//s = Student(id=8, name=吳十, gender=男, age=19, classBean=高中二班)}//演示查詢單個實體對象@Testpublic void QueryObjectLambdaTest() {String sql = "select * from students where id=?";Student s = jdbcTemplate.queryForObject(sql,(rs,rowNum)->new Student(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getString(5)), 8);System.out.println("s = " + s);//s = Student(id=8, name=吳十, gender=男, age=19, classBean=高中二班)}//演示查詢實體對象列表@Testpublic void QueryObjectListTest() {String sql = "select id,name,gender,age,class as classBean from students";List<Student> studentList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Student.class));studentList.forEach(System.out::println);//Student(id=1, name=張三, gender=男, age=20, classBean=高中一班)//Student(id=2, name=李四, gender=男, age=19, classBean=高中二班)//Student(id=3, name=王五, gender=女, age=18, classBean=高中一班)//Student(id=4, name=趙六, gender=女, age=20, classBean=高中三班)//Student(id=5, name=劉七, gender=男, age=19, classBean=高中二班)//Student(id=6, name=陳八, gender=女, age=18, classBean=高中一班)//Student(id=7, name=楊九, gender=男, age=20, classBean=高中三班)//Student(id=8, name=吳十, gender=男, age=19, classBean=高中二班)}
}

5、studb.sql

create database studb;use studb;CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50) NOT NULL,gender VARCHAR(10) NOT NULL,age INT,class VARCHAR(50)
);INSERT INTO students (id, name, gender, age, class)
VALUES(1, '張三', '男', 20, '高中一班'),(2, '李四', '男', 19, '高中二班'),(3, '王五', '女', 18, '高中一班'),(4, '趙六', '女', 20, '高中三班'),(5, '劉七', '男', 19, '高中二班'),(6, '陳八', '女', 18, '高中一班'),(7, '楊九', '男', 20, '高中三班'),(8, '吳十', '男', 19, '高中二班');

6、父工程pom.xml?

    <properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring.version>6.0.6</spring.version><junit.version>5.3.1</junit.version><lombok.version>1.18.20</lombok.version><mysql.version>8.0.25</mysql.version><druid.version>1.2.8</druid.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>${junit.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><scope>test</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency></dependencies></dependencyManagement>

?7、子工程pom.xml

    <dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency>

spring-jdbc-template是Spring框架中提供的一個JDBC模板,簡化了開發者對JDBC API的調用。你可以使用它來執行各種JDBC操作,如查詢、插入、更新、刪除等。下面是使用spring-jdbc-template的步驟:

  1. 添加spring-jdbc依賴

首先需要在Maven或Gradle項目中添加spring-jdbc依賴。

<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.6</version>
</dependency>

  1. 配置數據源

配置使用的數據源,在Spring配置文件中添加以下配置。

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/test"/><property name="username" value="root"/><property name="password" value="root"/>
</bean>

  1. 配置JdbcTemplate

配置JdbcTemplate,配置JdbcTemplate時需要注入數據源。

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="dataSource"/>
</bean>

  1. 使用JdbcTemplate

最后,你可以在Java代碼中使用JdbcTemplate。

@Autowired
private JdbcTemplate jdbcTemplate;public void insert(User user) {String sql = "INSERT INTO users (name, age) VALUES (?, ?)";jdbcTemplate.update(sql, user.getName(), user.getAge());
}

以上是使用spring-jdbc-template的步驟,你可以根據項目的需要來調整代碼實現,具體的JDBC操作方法可以在Spring的官方文檔中查找。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165436.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165436.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165436.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python BDD 框架比較之 pytest-bdd vs behave

pytest-bdd和behave是 Python 的兩個流行的 BDD 測試框架&#xff0c;兩者都可以用來編寫用戶故事和可執行的測試用例&#xff0c; 具體選擇哪一個則需要根據實際的項目狀況來看。 先簡單看一下兩者的功能&#xff1a; pytest-bdd 基于pytest測試框架&#xff0c;可以與pytest…

港口大型設備狀態監測及預測性維護策略

在現代港口運營中&#xff0c;大型設備的正常運行對于保障港口作業的高效性至關重要。為了實現設備的可靠性和持續性&#xff0c;港口管理者需要采取一系列狀態監測和預測性維護策略。 推進自動化和智能化是提高港口大型設備狀態監測和維護管理效率的重要途徑。通過應用先進的…

【計算機網絡筆記】數據鏈路層概述

系列文章目錄 什么是計算機網絡&#xff1f; 什么是網絡協議&#xff1f; 計算機網絡的結構 數據交換之電路交換 數據交換之報文交換和分組交換 分組交換 vs 電路交換 計算機網絡性能&#xff08;1&#xff09;——速率、帶寬、延遲 計算機網絡性能&#xff08;2&#xff09;…

讀像火箭科學家一樣思考筆記07_探月思維

1. 挑戰“不可能”的科學與企業 1.1. 互聯網 1.1.1. 和電網一樣具有革命性&#xff0c;一旦你插上電源&#xff0c;就能讓自己的生活充滿活力 1.1.2. 互聯網的接入可以幫助人們擺脫貧困&#xff0c;拯救生命 1.1.3. 互聯網還可以提供與天氣相關的信息 1.2. 用廉價、可靠的…

Windows如何截取屏幕圖片以及動態圖

在制作PPT或是其他演示文稿或是說明文檔的時候&#xff0c; 常常需要截取網頁或是屏幕的截圖&#xff0c;在Windows中有多種方式可以實現截取屏幕。 Windows 截取屏幕圖片的方式 在Windows 中截取屏幕中某個區塊的方式有&#xff1a; 方式1. 最原始的方式&#xff1a; 點擊 …

C練習題_2

一、單項選擇題(本大題共20小題,每小題2分,共40分。在每小題給出的四個備選項中選出一個正確的答案&#xff0c;并將所選項前的字母填寫在答題紙的相應位置上。&#xff09; 以下敘述中錯誤的是&#xff08;) A.對于double類型數組&#xff0c;不可以直接用數組名對數組進行整…

機器學習與藥物篩選的心得體會

機器學習在藥物設計里面的應用可以說還是比較常見的&#xff0c;尤其是搞計算的都會或多或少的涉及到這塊。比如國內做這塊比較多的&#xff0c;浙江大學的侯廷軍教授&#xff0c;北京化工大學的閆愛霞教授&#xff0c;華東理工大學的幾個做模擬計算的老師&#xff0c;上海藥物…

Unity機器學習 ML-Agents第一個例子

上一節我們安裝了機器學習mlagents的開發環境&#xff0c;本節我們創建第一個例子&#xff0c;了解什么是機器學習。 我們的例子很簡單&#xff0c;就是讓機器人自主移動到目標位置&#xff0c;不能移動到地板范圍外。 首先我們來簡單的了解以下機器學習的過程。 機器學習的過…

分布式鎖之基于zookeeper實現分布式鎖(三)

3. 基于zookeeper實現分布式鎖 實現分布式鎖目前有三種流行方案&#xff0c;分別為基于數據庫、Redis、Zookeeper的方案。這里主要介紹基于zk怎么實現分布式鎖。在實現分布式鎖之前&#xff0c;先回顧zookeeper的相關知識點 3.1. 知識點回顧 3.1.1. 安裝啟動 安裝&#xff1a…

『亞馬遜云科技產品測評』活動征文|搭建圖床chevereto

『亞馬遜云科技產品測評』活動征文&#xff5c;搭建圖床chevereto 提示&#xff1a;本篇文章授權活動官方亞馬遜云科技文章轉發、改寫權&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒體平臺&#xff0c;第三方開發者媒體等亞馬遜云科技官方渠道 文章目錄 『…

Python 獲取本地和廣域網 IP

Python 獲取本地IP &#xff0c;使用第三方庫&#xff0c;比如 netifaces import netifaces as nidef get_ip_address():try:# 獲取默認網絡接口&#xff08;通常是 eth0 或 en0&#xff09;default_interface ni.gateways()[default][ni.AF_INET][1]# 獲取指定網絡接口的IP地…

字符串相加

題意&#xff1a; 給定兩個字符串形式的非負整數 num1 和num2 &#xff0c;計算它們的和并同樣以字符串形式返回。 你不能使用任何內建的用于處理大整數的庫&#xff08;比如 BigInteger&#xff09;&#xff0c; 也不能直接將輸入的字符串轉換為整數形式。 示例 1&#xff…

利用STM32CubeMX解讀時鐘樹

1&#xff0c;低速時鐘 LSE是外部晶振作時鐘源&#xff0c;主要提供給實時時鐘模塊&#xff0c;所以一般采用32.768KHz。LSI是由內部RC振蕩器產生&#xff0c;也主要提供給實時時鐘模塊&#xff0c;頻率大約為40KHz。(LSE和LSI)只是提供給芯片中的RTC(實時時鐘)及IWDG(獨立看門…

【c++】棧教程

今天來講講棧 棧是什么&#xff1f; 老樣子&#xff0c;先來看一道題&#xff1a; 【棧】棧的基本操作 描述 棧的定義&#xff1a;棧是一種特殊的表這種表只在表頭進行插入和刪除操作。因此&#xff0c;表頭對于棧來說具有特殊的意義&#xff0c;稱為棧頂。相應地&#xff0…

佳易王羽毛球館計時計費軟件燈控系統安裝教程

佳易王羽毛球館計時計費軟件燈控系統安裝教程 佳易王羽毛球館計時計費軟件&#xff0c;點擊開始計時的時候&#xff0c;自動打開燈&#xff0c;結賬后自動關閉燈。 因為場館每一場地的燈功率都很大&#xff0c;需要加裝交流接觸器。這個由專業電工施工。 1、計時計費功能 &…

docker安裝mysql8

之前自己在網上找了一些docker安裝mysql8的方法&#xff0c;結果都不行&#xff0c;于是自己根據自己遇到的情況再結合網上搜索到的安裝方式調整了一下&#xff0c;成功執行安裝。以下是我自己的執行命令 先拉取docekr鏡像 docker pull mysql:8.0.20啟動鏡像 docker run -p 3…

使用Git bash切換Gitee、GitHub多個Git賬號

Git是分布式代碼管理工具&#xff0c;使用命令行的方式提交commit、revert回滾代碼。這里介紹使用Git bash軟件來切換Gitee、GitHub賬號。 ? ? 假設在gitee.com上的郵箱是alicefoxmail.com 、用戶名為alice&#xff1b;在github上的郵箱是bobfoxmail.com、用戶名為bob。 賬號…

tcp/ip協議2實現的插圖,數據結構2 (19 - 章)

(68) 68 十九1 選路請求與消息 函rtalloc,rtalloc1,rtfree (69)

HarmonyOS ArkTS 保存應用數據(十)

1 概述 在移動互聯網蓬勃發展的今天&#xff0c;移動應用給我們生活帶來了極大的便利&#xff0c;這些便利的本質在于數據的互聯互通。因此在應用的開發中數據存儲占據了非常重要的位置&#xff0c;HarmonyOS應用開發也不例外。 2 什么是首選項 首選項為應用提供Key-Value鍵…

Java面向對象第2天

精華筆記&#xff1a; 構造方法&#xff1a;構造函數、構造器、構建器---------------復用給成員變量賦初始值代碼 作用&#xff1a;給成員變量賦初始值 與類同名&#xff0c;沒有返回值類型(連void都沒有) 在創建(new)對象時被自動調用 若自己不寫構造方法&#xff0c;則編…