JDBC操作数据库

JDBC操作数据库

JdbcTemplate是Spring框架提供的一个对JDBC进行封装的工具类,它用于简化JDBC的使用。

以下是使用JdbcTemplate操作数据库的一些常见方法:

1、使用JdbcTemplate插入数据:

@Autowired
private JdbcTemplate jdbcTemplate;public void insertData(String name, String email) {String sql = "INSERT INTO CUSTOMER (NAME, EMAIL) VALUES (?, ?)";jdbcTemplate.update(sql, name, email);
}

2.使用JdbcTemplate更新数据:

public void updateData(String name, String email, int id) {String sql = "UPDATE CUSTOMER SET NAME = ?, EMAIL = ? WHERE ID = ?";jdbcTemplate.update(sql, name, email, id);
}

3.使用JdbcTemplate删除数据:

public void deleteData(int id) {String sql = "DELETE FROM CUSTOMER WHERE ID = ?";jdbcTemplate.update(sql, id);
}

4.使用JdbcTemplate查询数据:

public Customer getCustomer(int id) {String sql = "SELECT ID, NAME, EMAIL FROM CUSTOMER WHERE ID = ?";Customer customer = jdbcTemplate.queryForObject(sql, new Object[]{id}, new BeanPropertyRowMapper<>(Customer.class));return customer;
}

5.使用JdbcTemplate查询多条数据:

public List<Customer> getAllCustomers() {String sql = "SELECT ID, NAME, EMAIL FROM CUSTOMER";List<Customer> customers = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Customer.class));return customers;
}

以上代码中,Customer是一个实体类,用于映射数据库表中的记录。
注意:在使用JdbcTemplate操作数据库时,需要处理SQLException,可以在方法上抛出或者try-catch处理。以上示例代码中,为了简洁,没有展示异常处理的代码。

如果需要临时写一些脚本初始化数据,需要同时操作多个数据库,可以手动去初始化 JdbcTemplate 对象

    static {String BASE_URL = "jdbc:postgresql://ip:port/%s?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&useUnicode=true&useSSL=false";String driver = "org.postgresql.Driver";String user = "数据库用户名";String password = "数据库密码";String DB01_URL = String.format(BASE_URL, "db_01");String DB02_URL = String.format(BASE_URL, "db_02");DriverManagerDataSource dmds = new DriverManagerDataSource();dataSourceSLCYFH.setUrl(DB01_URL );dataSourceSLCYFH.setDriverClassName(driver);dataSourceSLCYFH.setUsername(user);dataSourceSLCYFH.setPassword(password);JDBC_TEMPLATE_01 = new JdbcTemplate(dmds);DriverManagerDataSource dataSource02 = new DriverManagerDataSource();dataSourceUcm.setUrl(DB02_URL );dataSourceUcm.setDriverClassName(driver);dataSourceUcm.setUsername(user);dataSourceUcm.setPassword(password);JDBC_TEMPLATE_02 = new JdbcTemplate(dataSource02);}@Testpublic void test01() {// 操作db_01数据库 使用 JDBC_TEMPLATE_01 // 操作db_02数据库 使用 JDBC_TEMPLATE_02 }

参考:
JdbcTemplate操作数据库
【SpringBoot框架篇】28.使用JdbcTemplate操作数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/22532.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDBC-MySQL

JDBC-MySQL 1.JDBC 操作步骤1.1 DriverManager1.2.Connection对象1.3 Statement1.4 PreparedStatement 1.JDBC 操作步骤 public void quickStart() throws ClassNotFoundException, SQLException {//1、注册驱动 &#xff08;确认要使用哪个数据库&#xff09;Class.forName(&…

嵌入式中,日志调试法的一些规则!

日志调试法是嵌入式系统开发中常用的一种调试手段&#xff0c;它通过在代码中添加日志信息来记录程序的运行状态&#xff0c;帮助开发者了解程序在运行过程中的行为&#xff0c;从而定位问题所在。以下是一些嵌入式日志调试的基本规则和示例代码。 日志调试的基本规则 确定日志…

C++使用QtHttpServer开发服务端Server的Http POST接口和客户端Client示例

Client HTTP POST 假设http://127.0.0.1:8888/post/是一个能够接受POST请求的路径&#xff0c;我们想要向它提交一段json数据&#xff0c;用Qt可以这样实现&#xff1a; Suppose we want to make an HTTP POST with json body to http://127.0.0.1:8888/post/. QCoreApplica…

短视频直播教学课程小程序的作用是什么

只要短视频/直播做的好&#xff0c;营收通常都不在话下&#xff0c;近些年&#xff0c;线上自媒体行业热度非常高&#xff0c;每条细分赛道都有着博主/账号&#xff0c;其各种优势条件下也吸引着其他普通人冲入。 然无论老玩家还是新玩家&#xff0c;面对平台不断变化的规则和…

《2024年DDoS趋势报告》:DDoS攻击规模飙升233.33%

2023年&#xff0c;数字领域面临着分布式拒绝服务&#xff08;DDoS&#xff09;攻击的变革浪潮&#xff0c;攻击速度创纪录地达到了每秒700 Gbps和8000万数据包。这些事件跨越了从游戏到金融服务的各个行业&#xff0c;突显了DDoS是一种普遍存在的风险。 值得注意的是&#xf…

Ubuntu server 24 (Linux) sudo 免输密码

1 sudo 使用要输入密码&#xff0c;费时费力。 2 sudo命令免输密码&#xff0c;需要修改/etc/sudoers文件 #本文以test用户为例,#允许不需要输入密码执行 sudo vi /etc/sudoers test ALL(ALL) NOPASSWD: ALL %sudo ALL(ALL:ALL) ALL --> #%sudo ALL(ALL:ALL) ALL#所有…

SASS语法基础

SASS基础语法 1. 变量和嵌套 变量&#xff1a;在SASS中&#xff0c;您可以使用变量来存储重复使用的值&#xff0c;例如颜色、字体大小等。定义一个变量时&#xff0c;使用$符号&#xff0c;如下所示&#xff1a; // 定义变量 $primary-color: #0074D9;// 使用变量 body {ba…

JavaScript逻辑中断

在JavaScript中&#xff0c;逻辑中断通常指的是在代码执行过程中&#xff0c;由于某些条件或异常&#xff0c;导致代码的正常流程被打断或改变。这种中断可以是由控制流语句&#xff08;如if、for、while、switch等&#xff09;引起的&#xff0c;也可以是由异常处理&#xff0…

掌握 NestJS 10.x:NestJS 结合 PostgreSQL 使用详解

NestJS 是一个用于构建高效、可扩展的 Node.js 服务端应用的框架。结合 PostgreSQL 数据库,可以为应用提供强大的数据存储和查询功能。本文将详细介绍如何在 NestJS 项目中集成和使用 PostgreSQL,并创建一个包含增加用户接口的完整示例。 1. 安装必要的依赖 首先,确保你的…

华为FPGA工程师面试题

FPGA工程师面试会涉及多个方面&#xff0c;包括基础知识、项目经验、编程能力、硬件调试和分析等。以下是一些必问的面试题&#xff1a; 基础知识题&#xff1a; 请解释FPGA的基本组成和工作原理。描述FPGA中的可编程互联资源以及它们在构建复杂数字电路中的作用。请解释嵌入式…

基于VITA57.4标准的单通道6GSPS 12位采样ADC,单通道 6GSPS 16位采样DAC子卡模块

板卡概述 FMC147是一款单通道6.4GSPS&#xff08;或者配置成2通道3.2GSPS&#xff09;采样率的12位AD采集、单通道6GSPS&#xff08;或配置成2通道3GSPS&#xff09;采样率16位DA输出子卡模块&#xff0c;该板卡为FMC标准&#xff0c;符合VITA57.4规范&#xff0c;该模块可以作…

Day 42 LVS四层负载均衡

一&#xff1a;负载均衡简介 1.集群是什么 ​ 集群&#xff08;cluster&#xff09;技术是一种较新的技术&#xff0c;通过集群技术&#xff0c;可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益&#xff0c;其任务调度则是集群系统中的核心技术 …

量化研究---大qmt实盘实现禄得可转债策略轮动

前面写了一个强大的可转债自定义系统&#xff0c;我们可以利用这个快速对接到大qmt,我提供实时数据支持 量化研究---强大的可转债分析系统上线&#xff0c;提供api&#xff0c;实时数据支持 打开网页 http://120.78.132.143:8023/ 强大可转债选择系统 http://120.78.132.143:8…

移植GT9XX遇到的问题

gt9xx驱动移植触摸不准&#xff1a;厂家提供的cfg有问题&#xff0c;重新问厂家要一份正确的 XY坐标镜像&#xff1a; 在gtp_get_points函数里修改代码&#xff1a; if(ts->pdata->reverse_xy) {points[i].x ts->pdata->abs_size_x - (coor_data[1] | (coor_da…

代码实操学会socket网络编程

一、网络编程接口 网络编程接口是一组提供给开发者使用的函数和方法集合,用于在应用程序中实现网络通信功能。它提供了一种抽象层,使得开发者能够使用高级编程语言(如C、C++、Java、Python等)来进行网络编程,而无需直接处理底层的网络协议和细节。 网络编程接口的功能和作…

容器中运行ifconfig提示bash: ifconfig: command not found【笔记】

容器中运行ifconfig提示bash: ifconfig: command not found 这个问题是因为在容器中没有安装ifconfig命令。 在容器中安装ifconfig命令&#xff0c;可以使用以下命令&#xff1a; 对于基于Debian/Ubuntu的容器&#xff0c;使用以下命令&#xff1a; apt-get update apt-get …

【小海实习日记】金融-现货以及合约理解

在股票和金融市场中&#xff0c;“单项持仓”和“双向持仓”是两个常见的概念&#xff0c;主要用于描述投资者在市场中的头寸及其策略。 单项持仓&#xff08;单向持仓&#xff09; 单项持仓是指投资者在市场中只持有一种方向的头寸&#xff08;多头或空头&#xff09;&#…

每日一练:利用多态思想和ArrayList集合,编写一个模拟KTV点歌系统的程序。【多态思想和ArrayList集合的综合应用】

目录 一、设计程序使用ArrayList集合&#xff0c;编写一个模拟KTV点歌系统的程序。参考代码歌曲类歌单类KTV类测试类运行效果 总结 最后 一、设计程序 使用ArrayList集合&#xff0c;编写一个模拟KTV点歌系统的程序。 要求&#xff1a; 输入0代表添加歌曲输入1代表将所选歌曲…

云原生环境下GPU算力调度发展分析

云原生环境下GPU算力调度深度分析 概述&#xff1a; 云原生时代&#xff0c;GPU算力调度与管理备受瞩目&#xff0c;成为企业和云服务提供商关注的焦点&#xff0c;助力AI、深度学习、高性能计算等领域&#xff0c;满足对GPU资源的迫切需求。 容器化与编排&#xff1a; Kube…

突破开源天花板!最强文本转语音工具ChatTTS:对话式高可控的语音合成模型

ChatTTS 一夜爆火&#xff0c; 极速出圈&#xff0c; 3 天就斩获 9k 的 Star 量&#xff0c; 截止 2024.06.04&#xff0c; 已经 19.3k 的 star&#xff0c; 极速接近 GPT-soVITs 当天的 26.2k 的 star 数。 什么是ChatTTS&#xff1f; TTS全称&#xff1a;Text To Speech&am…