Spring 案例

1.完成Account类中的定义私有变量(id,userName,balance)

// com.spring.jdbc.JdbcTemplate; 
private Integer id;
private String userName;
private Double balance;

2.完成AccountManage接口类,定义接口(插入add、更新update、查询单个query、查询所有queryAll、删除delete)

// com.spring.jdbc.JdbcTemplate; 
public void addAccount(Account account);
public void updateAccount(Account account);
public void queryAllAccount();
public void deleteAccount(Interger id);

3.完成AccountManageImpl接口实现类

// com.spring.jdbc.JdbcTemplate;
package com.spring.jdbc.JdbcTemplate;

import java.util.List;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

//接口实现类
public  class AccountManageImpl implements AccountManage {
    //定义JdbcTemplate属性以及相关的set方法
	private JdbcTemplate jdbcTemplate;
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}
	@Override
	public void addAccount(Account account) {
		//定义一个SQL语句,实现插入一条数据
		String sql="insert into accounts(id,userName,balance) value(?,?,?)";
		//定义数组存放SQL语句中的参数
		Object[] obj = new Object[] {
				account.getId(),
				account.getUserName(),
				account.getBalance()
		};
		//执行SQL语句,返回执行添加操作的记录条数
		int num = jdbcTemplate.update(sql,obj);
		if(num >0) {
			System.out.println("成功插入了"+num+"条转账记录");
			System.out.println(account);
		}
		else {
			System.out.println("执行插入账号记录失败");
		}
	}
	@Override
	public void queryAccountById(Integer id) {
		//定义一个SQL语句,实现根据账户ID进行查询
		String sql="select * from accounts where id=?";
		//创建一个BeanProPertRowMapper对象
		RowMapper<Account> rowMapper;
		rowMapper = new BeanPropertyRowMapper<Account>(Account.class);
		//执行Sql查询语句,并通过rowMapper类返回Account类对象
		Account account = jdbcTemplate.queryForObject(sql,rowMapper,id);
		System.out.println("成功查询了1个用户记录");
		System.out.println(account);
	}
	@Override
	public void queryAllAccount() {
		//定义SQL查询语句,实现查询所有的账号记录
		String sql="select * from accounts";
		//创建一个BeanProPertRowMapper对象
		RowMapper<Account> rowMapper;
		rowMapper = new BeanPropertyRowMapper<Account>(Account.class);
		//执行Sql查询语句,并通过rowMapper类返回Account类对象
		List<Account>accounts = jdbcTemplate.query(sql,rowMapper);
		System.out.println("成功查询了所有的用户记录");
		//循环输出每个记录
		for(Account account:accounts) {
			System.out.println(account);
		}
	}
	@Override
	public void updateAccount(Account account) {
		//定义SQL查询语句,实现更新账号id余额
		String sql="update accounts set balance=? where id=?";
		//定义数组用来存放SQL语句中的参数
		Object[] params = new Object[] {account.getBalance(),account.getId()};
		//执行SQL更新语句,返回执行更新操作的记录条数
		int num = jdbcTemplate.update(sql,params);
		if(num>0) {
			System.out.println("数据更新成功"+num+"条账号记录");
		}else {
			System.out.println("执行更新账号记录失败");
		}
	}
	@Override
	public void deleteAccount(Integer id) {
		//定义SQL查询语句,实现更新账号id余额
		String sql="delete from accounts where id=?";
		//执行SQL删除语句,返回执行删除操作的记录条数
		int num = jdbcTemplate.update(sql,id);
		if(num>0) {
			System.out.println("数据成功删除"+num+"条账号记录");
		}else {
			System.out.println("执行删除账号记录失败");
		}
	}
	
}

4.完成jdbcTemplateTest程序测试类,完成创建数据表,查询、插入、更新、删除等操作。

// com.spring.jdbc.JdbcTemplate

//1、使用execute()方法执行sql创建表语句,创建账户表accounts
	jdbcTemplate.execute("create table if not exists accounts(id int,userName varchar(50),balance double)");
// 2.查询数据
	// 查询所有记录
	accountManage.queryAllAccount();
	// 按照id查询
	accountManage.queryAccountById(20240430);
// 3.插入数据
	account.setId(20240430);
	account.setUserName("小明");
	account.setBalance(1000.0);
	accountManage.addAccount(account);
// 4.更新数据(更新id为20240501的用户余额)
	account.setId(20240501);
	account.setBalance(1000.0);
	accountManage.updateAccount(account);
// 5.删除数据(删除id为20240504的用户记录)
	accountManage.deleteAccount(20240504);

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ROS2用c++开发参数节点通信

1.创建节点 cd chapt4/chapt4_ws/ ros2 pkg create example_parameters_rclcpp --build-type ament_cmake --dependencies rclcpp --destination-directory src --node-name parameters_basic --maintainer-name "joe" --maintainer-email "1027038527qq.com&…

大数据开发助手:Coze平台上一款致力于高效解决大数据开发问题的智能Bot!

大数据开发助手&#xff1a;Coze平台上一款致力于高效解决大数据开发问题的智能Bot 核心技术揭秘1. **自然语言处理&#xff08;NLP&#xff09;**2. **知识图谱构建**3. **个性化推荐算法** 功能特色概览1. **即时问题解答**2. **最佳实践分享**3. **个性化学习路径**4. **社区…

在 CentOS 上安装 Docker Engine

前言 Docker 是啥之类的就不必多说了&#xff0c;直接上安装步骤。 官网安装教程地址&#xff1a;https://docs.docker.com/engine/install/centos/ 1.Uninstall old versions &#xff08;卸载旧版本&#xff09; Older versions of Docker went by docker or docker-engin…

error LNK2019: 无法解析的外部符号 _SDL_main,该符号在函数 _main_getcmdline 中被引用

VC MFC情况下出现此问题&#xff0c; 网上搜索了很多文章无法解决。 error LNK2019: 无法解析的外部符号 _SDL_main&#xff0c;该符号在函数 _main_utf8 中被引用_sdl2main.lib出现无法解析的外部符号-CSDN博客 字符集必须设置为&#xff1a;

【Android面试八股文】性能优化相关面试题: 什么是内存抖动?什么是内存泄漏?

文章目录 一、什么是内存抖动?内存抖动的问题卡顿OOM(Out Of Memory)二、什么是内存泄漏(Memory Leak)?引用计数法可达性分析法一、什么是内存抖动? 在Java中,每创建一个对象,就会申请一块内存,存储对象信息; 每分配一块内存,程序的可用内存也就少一块; 当程序…

SwiftUI八与UIKIT交互

代码下载 SwiftUI可以在苹果全平台上无缝兼容现有的UI框架。例如&#xff0c;可以在SwiftUI视图中嵌入UIKit视图或UIKit视图控制器&#xff0c;反过来在UIKit视图或UIKit视图控制器中也可以嵌入SwiftUI视图。 本文展示如何把landmark应用的主页混合使用UIPageViewController和…

VaRest插件常用节点以及Http请求数据

1.解析json &#xff08;1&#xff09;Construct Json Object&#xff1a;构建json对象 &#xff08;2&#xff09;Decode Json&#xff1a;解析json 将string转换为json &#xff08;3&#xff09;Encode json&#xff1a;将json转换为string &#xff08;4&#xff09;Get S…

非标设备行业的数智化项目管理

近年来&#xff0c;中国制造快速发展&#xff0c;企业迫切需要加快转型升级。与传统制造业相比&#xff0c;高端制造业具有明显的优势&#xff1a;高技术、高附加值、低污染、低排放、竞争优势强。一方面&#xff0c;企业对于生产效率和自动化水平的要求不断提高&#xff0c;期…

[vue2/vue3] 详细剖析watch、computed、watchEffect的区别,原理解读

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;我是前端菜鸟的自我修养&#xff01;今天给大家分享【深入剖析watch、computed、watchEffect的区别】&#xff0c;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;原创不易&#xff0c;如果能帮助到带大家…

安装docker compose与elasticsearch,kibana

1.docker compose安装 1.1是否已安装docker docker -v 1.2安装docker compose curl -SL https://github.com/docker/compose/releases/download/v2.18.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-composeps:如果网络太慢可直接在博客中下载附属文件 下载后修…

缺失d3dx9_43.dll是怎么回事?教你几种靠谱的解决方法

在日常生活和工作中&#xff0c;电脑已经成为我们不可或缺的工具。然而&#xff0c;在使用电脑的过程中&#xff0c;我们常常会遇到一些问题&#xff0c;其中之一就是软件运行时提示d3dx9_43.dll丢失。这个问题会导致软件游戏无法启动运行&#xff0c;但只要我们了解其原因和解…

光扩散微球市场增长空间大 我国已实现其产业化

光扩散微球市场增长空间大 我国已实现其产业化 光扩散微球是一种高性能微球材料&#xff0c;具有优异的光学和力学性能&#xff0c;且不含杂质&#xff0c;将其涂抹在光扩散膜&#xff08;板&#xff09;上&#xff0c;可以将点光源变成面光源&#xff0c;使显示面板的布光更加…

论文阅读YOLO-World: Real-Time Open-Vocabulary Object Detection

核心&#xff1a; 开放词汇的实时的yolo检测器。重参数化的视觉语言聚合路径模块Re-parameterizable VisionLanguage Path Aggregation Network (RepVL-PAN)实时核心&#xff1a;轻量化的检测器离线词汇推理过程重参数化 方法 预训练方案&#xff1a;将实例注释重新定义为区域…

喜讯!安全狗荣获“2023年网络安全技术支撑优秀单位”称号

6月6日&#xff0c;由中共厦门市委网络安全和信息化委员会办公室&#xff08;以下简称“厦门市委网信办”&#xff09;主办的2023年网络安全技术支撑优秀单位颁奖仪式在厦门成功举行。 作为国内云原生安全领导厂商&#xff0c;安全狗受邀出席此次活动。 会上&#xff0c;安全狗…

【ai】ubuntu18.04 找不到 nvcc --version问题

nvcc --version显示command not found问题 这个是cuda 库: windows安装了12.5 : 参考大神:解决nvcc --version显示command not found问题 原文链接:https://blog.csdn.net/Flying_sfeng/article/details/103343813 /usr/local/cuda/lib64 与 /usr/local/cuda-11.3/lib64 完…

OZON家具用品有哪些是热销的

在俄罗斯电商市场中&#xff0c;OZON平台凭借其强大的影响力和广泛的用户基础&#xff0c;成为家具用品销售的重要阵地。那么&#xff0c;在这个平台上&#xff0c;哪些家具用品最受欢迎&#xff0c;销量持续走高呢&#xff1f;本文将为您揭秘OZON家具用品的热销秘诀&#xff0…

Golang开发:构建支持并发的网络爬虫

Golang开发&#xff1a;构建支持并发的网络爬虫 随着互联网的快速发展&#xff0c;获取网络数据成为了许多应用场景中的关键需求。网络爬虫作为一种自动化获取网络数据的工具&#xff0c;也因此迅速崛起。而为了应对日益庞大的网络数据&#xff0c;开发支持并发的爬虫成为了必…

INS-GPS组合导航——卡尔曼滤波

系列文章目录 《SAR笔记-卫星轨道建模》 《SAR笔记-卫星轨迹&#xff08;三维建模&#xff09;》 《常用坐标系》 文章目录 前言 一、经典卡尔曼滤波 二、扩展卡尔曼滤波 三、无迹卡尔曼滤波 总结 前言 SAR成像仪器搭载于运动平台&#xff0c;平台的自定位误差将影响SAR…

20240701每日后端------------java启动JVM参数配置说明Parameters -D, -X, -XX

主题 JVM有很多参数&#xff0c;当我们通过命令行启动Java程序时&#xff08;例如&#xff0c; java -jar app.jar&#xff09; 我们经常指定各种参数选项。很多人对为什么有时我们使用 -D &#xff0c;有时我们使用 -X &#xff0c;偶尔我们使用 -XX 感到困惑。 名词解释 …

08:结构体

结构体 1、为什么需要结构体2、如何定义结构体3、怎么使用结构体变量3.1、赋值和初始化3.2、结构体变量的输出 1、为什么需要结构体 为了表示一些复杂的事物&#xff0c;而普通的基本类型无法满足实际要求。什么叫结构体 把一些基本类型数据组合在一起形成的一个新的数据类型&…