Java开发基础-JDBC-核心对象的使用—01

【JDBC - 核心技术】01 JDBC概述 【JDBC概述】{数据的持久化}{Java中的数据存储技术} {JDBC介绍}{JDBC体系结构}{JDBC程序编写步骤} 阅读详情

PreparedStatement对象的使用:

下面结合Junit展示PreparedStatement的基本使用:

/**
 * 使用Junit4方式测试DBUtil数据库连接工具类
 * Junit4测试类:
 * 可以让满足以下条件的任意方法单独直接执行。
 * 条件:
 *    1.public
 *    2.void
 *    3.无参数
 *    4.方法前必须添加@Test
 * @author Cher_du
 *
 */
public class TestDay02 {
	
	/**
	 * PreparedStatement的修改
	 */
	@Test
	public void test4(){
		//假设用户传入了如下要修改的数据
		int empno =80;
		String ename = "悟空";
		String job = "保镖";
		int mgr = 1111;
		
		Date date = new Date(System.currentTimeMillis());
		double sal =5000.0;
		double comm = 0;
		int deptno = 2;
		
		Connection conn =null;
		try {
			conn = DBUtil.getConnection();
			String sql = "update emp set "
					     +"ename=?, "
					     +"job=?, "
					     +"mgr=?, "
					     +"hiredate=?, "
					     +"sal=?, "
					     +"comm=?, "
					     +"deptno=? "
					     +"where empno=? ";
			PreparedStatement ps = conn.prepareStatement(sql);
			
			ps.setString(1, ename);
			ps.setString(2, job);
			ps.setInt(3, mgr);
			ps.setDate(4, date);
			ps.setDouble(5, sal);
			ps.setDouble(6, comm);
			ps.setInt(7, deptno);
			ps.setInt(8, empno);
			
			ps.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
			throw new RuntimeException("修改员工失败!",e);
		}finally{
			DBUtil.close(conn);
		}
		
	}
	
	/**
	 * PreparedStatement的增加
	 */
	@Test
	public void test3(){
		//假设用户传入了如下要添加的数据
		int empno = 1111;
		String ename = "唐僧";
		String job = "领导";
		int mgr = 0;
		//java.sql.Date
		Date date = new Date(System.currentTimeMillis());
		double sal = 9000.0;
		double comm = 3000.0;
		int deptno = 2;
		
		Connection conn = null;
		try {
			conn = DBUtil.getConnection();
			String sql = "insert into emp values("
						+"?,?,?,?,?,?,?,?)";
			PreparedStatement ps = conn.prepareStatement(sql);
			ps.setInt(1, empno);
			ps.setString(2, ename);
			ps.setString(3, job);
			ps.setInt(4, mgr);
			ps.setDate(5, date);
			ps.setDouble(6, sal);
			ps.setDouble(7, comm);
			ps.setInt(8, deptno);
			ps.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
			throw new RuntimeException("增加员工失败!",e);
		}finally{
			DBUtil.close(conn);
		}
			
	}
	
	
	/**
	 * PreparedStatement之查询
	 *  查询工资高于某值的所有员工
	 */
	@Test
	public void test2() {
		// 假设传入的工资
		double salary = 4500.0;

		Connection conn = null;
		try {
			conn = DBUtil.getConnection();
			String sql = "select * from emp " 
						+ "where sal>=?";// 预处理设置占位符
			// 创建PreparedStatement对象
			// 发送SQL并建立执行计划
			PreparedStatement ps = conn.prepareStatement(sql);
			// 设置参数
			// ps.set类型(?的索引,?的值)
			ps.setDouble(1, salary);
			// 执行SQL
			ResultSet rs = ps.executeQuery();
			while (rs.next()) {
				//System.out.println(rs.getInt(1));
				System.out.println(rs.getInt("empno"));
				System.out.println(rs.getString("ename"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
			throw new RuntimeException("查询员工失败!",e);
		} finally {
			DBUtil.close(conn);
		}

	}
	
	/**
	 * 根据ID查询员工
	 */
	@Test
	public void test1(){
		//假设传入的员工ID是
		int id =7499;
		
		//创建连接
		Connection conn = null;
		try {
			conn = DBUtil.getConnection();
			String sql ="select * from emp "
						+"where empno="+id;

			Statement smt	= conn.createStatement();
			//执行查询
			ResultSet rs	= smt.executeQuery(sql);
			//结果集中封装了多行数据,需要遍历
			while(rs.next()){
				//rs.get类型(字段名)
				//rs.get类型(字段索引)
				System.out.println(rs.getInt(1));
				System.out.println(rs.getInt("empno"));
				System.out.println(rs.getString("ename"));
			}
		} catch (SQLException e) {
			//1.记录日志
			e.printStackTrace();
			//2.能处理则自己处理(如返回默认值)
			//3.处理不了则上报(向上抛出)
			throw new RuntimeException("查询员工失败!",e);
		}finally{
			//归还连接
			DBUtil.close(conn);
		}
		
	}

}

执行程序后数据库表中数据变化:


大致的处理逻辑参考下面的图示:

07【Java核心API-01】 一、API概述 1.1 API概述 API(Application Programming Interface,应用程序接口)是一些预先定义的接口(功能),提供给开发人员使用,开发人员无需访问源码,或理解内部工作机制的细节;在JDK中提供了非常丰富的API接口,这些类将底层代码封装起来对外提供非常丰富而又强大的功能;我们这一章节主要来学习JDK给我提供的那些类的使用方法; 简单来说API就是提供的一些方法给我们开发时使用,不使用这些API也能开发,只不过API中封装 阅读详情

相关推荐

SIMetrix教程-001.SIMetrix软件简介与安装

  由于某些原因需要用到SIMetrix仿真软件,然而网上的资料并不是特别多,故在此记录一下这款仿真软件的学习过程,也给有需要的人提供一些参考,免走弯路。如果使用过Pspice或者LTspice软件,学习SIMetrix会很容易入门,仿真软件都是大同小异的,会一样后都可以快速入门其他软件。   SIMetrix是一款以SPICE模型为基础的仿真软件,集成了SIMetrix和SIMPLIS两款内核,为工程师提供了可靠的、易于使用的、并完美结合了速度与精度的电路仿真方式。官方的话不多说,和LTspice一样,优

gaoyong_wang的博客 2万+

数据库基础面试题-JDBC的核心对象

20.JDBC的核心对象包含哪几个? A. Connection B. Statement C. PreparedStatement D. ResultSet 正确答案是:ABCD 数据库基础面试题-中级32题

songfelicity的博客 557

2021电子科技大学分布式系统期末考点精析与实战解析

本文深入解析2021年电子科技大学分布式系统期末考试核心考点,包括分布式事务、时钟同步、GFS架构等高频内容。基于回忆版试题,提供实战解析与应试技巧,帮助考生高效复习。重点涵盖两阶段提交、Cristian算法等关键技术,适合计算机专业学生备考参考。

weixin_29251131的博客 543

JDBC入门

目录   一、JDBC 1.JDBC的概念 2.JDBC的由来 3.JDBC的好处 4. JDBC会用到的包 5. JDBC四个核心对象 二、获取连接 1. API介绍 2.注册驱动 3.使用配置文件保存数据库帐号密码 三、JDB增删改操作 1. API介绍 2.Starement的API介绍 四、JDBC事务 1.API介绍 五、JDBC工具类 六、Prepa...

yfy的博客 439

C语言实现AES加解密

C语言实现AES加解密 #include<stdio.h> #include<string.h> #include<time.h> #include<windows.h> #define Nb 4 //数据块行数 #define Nk 4 //密码块行数 #define Nr 10 //轮加密次数 unsigned char RoundKey[4*Nb*(Nr+1)]; //轮密钥 unsigned char Key[17];

qq_44310495的博客 8891

CKA-题库-简洁参考答案-反复练习20遍-必过!!!

新版CKA考试已于2020年9月1日正式上线! 考试模式:线上考试 考试时间:2小时 认证有效期:3年 软件版本:Kubernetes v1.19 重考政策:可接受1次重考 经验水平:中級 题目数量:17题 题库量小:随机的题目重复率极高 考试时可打开两个浏览器Tab,一个是考试窗口,一个用来查阅官方文档](https://kubernetes.io/docs/) 01 Task - 英文 Create a new ClusterRole named deployment-clusterrole tha.

随笔记录-分享&记忆 7319

JDBC的使用

【代码】JDBC的使用。

G111222y的博客 149

华为OD机试真题 新系统 9月16号 【园区基站节能部署规划】

华为OD机试真题 新系统【园区基站节能部署规划】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【园区基站节能部署规划】多语言题解。

qq_45776114的博客 361

JDBC四个核心对象及其常用方法

JDBC中的四个核心对象 DriverManager类 java.sql.DriverManager Connection 接口 java.sql.Connection Statement 接口 java.sql.PreparedStatement ResultSet接口 java.sql.ResultSet DriverManager类 java.sql.DriverManag

hqtc0704的博客 4163

【学习系列】SAP RAP 16:RAP应用部署集成至Fiori Launchpad 【On-Premise】

本文详细介绍了如何将开发完成的RAP应用部署到S4HANA 2023 On-Premise环境并集成到Fiori Launchpad的完整流程。主要内容包括:1)通过ADT工具创建Fiori项目并配置外部IDE(VSCode);2)使用npm命令部署应用到系统;3)通过事务代码创建语义对象、磁贴目录和目标映射;4)配置PFCG角色分配;5)补充了部署失败解决方案、翻译问题处理、自定义主题设置以及登录页面LOGO修改等内容。文章提供了step-by-step的操作指南,帮助开发者将预览模式的应用正式部署到生产

DeveloperMrMeng的博客 637

Thinkpad可以安装Win11吗?Thinkpad升级Win11教程

win11正式版推出之后,不少用户也想要体验一把新系统,但是不知道thinkpad是否支持win11,其实基本上现在在售的都是可以升级win11的。2、如果大家使用的是老款的ThinkPad,那么可以通过软件来检测自己是否支持win11。【电脑健康状况检查下载】答:在售的ThinkPad都是可以支持win11的,但是部分旧版本不支持。2、这时候想要升级win11的话,就可以通过镜像系统的方式来跳过系统检测。3、如果使用上面的软件检测可以支持win11,那么只要进入“设置”

xhp618的博客 2989

Java开发基础-JDBC-核心对象的使用—04

JDBC中元数据(ResultSetMetaData元数据-简单介绍):ResultSet 是关于某个表的信息或一个查询的结果。您必须逐行访问数据行,但是您可以任何顺序访问列。ResultSetMetaData是可以获取ResultSet对象的列类型及名称和属性信息的对象使用ResultSet 的 getMetaData() 方法从 ResultSet 中获取 ResultSetMetaData ...

Coder_Boy_的博客 441

【YOLOv11多模态涨点改进】独家创新首发 | TGRS 2025 | 引入CDFIM跨模态差异特征交互模块,通过差异特征提取和融合增强机制,减少了冗余信息,显著提升了小目标的检测精度,高效涨点改进

🔥本文给大家介绍使用 CDFIM跨模态差异特征交互模块改进 YOLOv11多模态目标检测,通过有效的差异特征提取和增强,显著提升了小目标的检测精度,特别是在复杂背景和低对比度环境下。该模块通过残差加法和通道与空间注意力机制,增强了可见光与红外模态之间的互补特征交互,减少了冗余信息,提高了检测稳定性。尽管提升了特征交互,CDFIM 仍保持轻量化设计,计算开销和参数量较低,适合实时检测应用。总的来说,CDFIM 模块在保留原始模态信息的同时优化了特征融合,有效提高了 YOLO 在多模态目标检测中的鲁棒性和精度

Ai缝合怪、助力小伙伴高效发论文 132

2024年最新Java开发基础-JDBC-核心对象的使用—01,java面试知识点整理

由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档还有更多面试复习笔记分享如下本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取String ename = “唐僧”;String job = “领导”;try {+“?)”;

mxzsybkj的博客 650

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

2024年Java开发基础-JDBC-核心对象的使用—01(1),电商秒杀java面试题

什么是ActiveMQ?ActiveMQ服务器宕机怎么办?丢消息怎么办?持久化消息非常慢怎么办?消息的不均匀消费怎么办?死信队列怎么办?ActiveMQ中的消息重发时间间隔和重发次数吗?

2401_84584817的博客 279

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

01--JDBC核心技术

Java与数据库的连接。

憨憨浩浩的博客 1082

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java开发 - 尚硅谷JDBC学习笔记

JDBC是Java连接数据库技术的统称JDBC是由两部分组成的:Java提供的jdbc规范(接口)各个数据库厂商实现的驱动jar包JDBC技术是一种典型的面向接口编程JDBC是的缩写,直译为Java数据库连接JDBC是Java程序连接数据库的技术统称JDBC由Java语言的规范(接口)和各个数据库厂商的实现驱动(jar包)组成性能提升级。官方表示MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。

codeLearnerEternally的博客 2468

Java 使用 JDBC 连接 MySQL 数据库的详细解释

JDBC 概述 JDBC : Java DataBase Connectivity (Java 数据库连接) JDBC 本质:定义了一套操作所有关系型数据库的规则,即 接口

Lemon 1823

JDBC基础

在上面的代码中,我们首先创建了一个 ComboPooledDataSource 对象,这是 C3P0 提供的用于管理数据库连接池的类。PreparedStatement 用于执行预编译的 SQL 语句,它提供了比 Statement 更多的功能和优势,特别是在执行带有参数的 SQL 语句时。事务是数据库操作的一个单元,它由一系列的操作组成,这些操作要么全部成功,要么全部失败。数据库连接池是一种用于管理数据库连接的技术,它通过预先创建一定数量的数据库连接,并将这些连接保存在池中,以供应用程序重复使用。

happysmooth的博客 1344

01_JDBC

1. JDBC概述 序言:数据 持久化 持久化(persistence): 把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用, 数据持久化意味着将内存中的数据保存到硬盘上加以” 固化”,而持久化的实现过程大多通过各种 关系数据库来完成。 持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。 Java 中的数据存储技术 在Java中,数据库存取技术可分为如下几类: JDBC 直接访问数据库 JDO技术 第三方O/R工具,如Hibe

qq1075666462的博客 2736

Java JDBC教程

本篇博客将详细的介绍Java JDBC的内容,包括基础知识和进阶实践。

m0_52710583的博客 780

JDBC核心技术(笔记一)

目录一、JDBC概述1、数据的持久化2、Java 中的数据存储技术3、JDBC基础4、JDBC体系结构5、JDBC API6、JDBC程序访问数据库步骤二、获取数据库连接1、Driver 接口2、加载与注册 JDBC 驱动3、建立连接(Connection)4、几种常用数据库的JDBC URL4、使用Statement操作数据表的弊端 一、JDBC概述 1、数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中

diaolove的博客 1419

01-JDBC概念--JDBC(Java Database Connectivity:Java数据库连接):使用jdbc实现Java与数据库MySQL连接

1.JDBC(Java Database Connectivity:Java数据库连接)内容概览1.JDBC全称:Java DataBase Connectivity,SUN公司提供的一套操作数据库的标准规范;2.JDBC代表Java数据库链接,与数据库驱动的关系就如接口与实现的关系;3.更加形象描述图 2.JDBC作用与JDBC规范1)作用:它可以放任何类型的表列数据,特别是存储在关系数据库中的

Java仗剑走天涯 2055

JDBC的概念以及核心六步

JDBC 概念 JDBC(Java DataBase Connectivity):Java连接数据库,可以使用Java语言连接数据库完成CRUD操作; CRUD:指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写; JDBC核心思想 Java中定义了访问数据库的接口,可以为多种关系型数据库提供统一的访问方式; 由...

Willing卡卡的博客 592

01 JDBC介绍

01 JDBC介绍

m0_46695127的博客 889
上一篇: Java开发基础-JDBC-基本使用步骤—07
下一篇: Java开发基础-JDBC-核心对象的使用—02
Coder_Boy_
博客等级 码龄10年 2804粉丝 819原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder_Boy_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值