当前位置: 首页 > news >正文

Java学习-JDBC(一)

JDBC

概念
  • JDBC(Java Database Connectivity)Java数据库连接
  • JDBC提供了一组独立于任何数据库管理系统的API
  • Java提供接口规范,由各个数据库厂商提供接口的实现,厂商提供的实现类封装成jar文件,也就是我们俗称的数据库驱动jar包
  • JDBC充分体现了面向接口编程的好处,程序员只关心标准和规范,无需关注实现过程
    在这里插入图片描述
核心组成
接口规范
  • 为了项目代码的可移植性,可维护性,SUN公司制订了Java程序连接数据库的统一接口规范,不管连接哪种DBMS软件,Java代码可以保持一致
  • 接口存储在java.sql和javax.sql包下
实现规范
  • 各个数据库厂商DBMS各不相同,各自内部如何通过SQL实现增、删、改、查等操作管理数据,厂商最清楚,接口规范的实现由各个数据库厂商自己实现
  • 厂商将实现内容和过程封装成jar文件,程序员只需在项目中引入jar文件,就可以进行开发了
搭建环境
  • ①准备数据库

//创建数据库和表
create database jdbc;
use jdbc;
create table t_emp(emp_id int auto_increment comment ‘员工编号’ primary key,
emp_name varchar(100)not null comment’员工姓名’,
emp_salary double(10,5) not null comment’员工薪资’,
emp_age int not null comment ‘员工年龄’);
insert into t_emp(emp_name,emp_salary,emp_age) values(‘edison’,777.77,23),(‘dizzy’,888.88,24),(‘tye’,999.99,25),(‘water’,333.33,27);

```bash
mysql> use jdbc
Database changed
mysql> show tables;
+----------------+
| Tables_in_jdbc |
+----------------+
| t_emp          |
+----------------+
1 row in set (0.00 sec)mysql> select * from t_emp-> ;
+--------+----------+------------+---------+
| emp_id | emp_name | emp_salary | emp_age |
+--------+----------+------------+---------+
|      1 | edison   |  777.77000 |      23 |
|      2 | dizzy    |  888.88000 |      24 |
|      3 | tye      |  999.99000 |      25 |
|      4 | water    |  333.33000 |      27 |
+--------+----------+------------+---------+
4 rows in set (0.00 sec)
  • ②根据安装数据库版本官方下载驱动jar包
  • ③创建Java项目,在项目下创建lib文件夹,将下载的驱动复制到lib文件夹
  • ④选中lib文件夹,右键->Add as Libary,与项目集成
    在这里插入图片描述
    在这里插入图片描述
  • ⑤编写代码
package com.lotus.base;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;/*** 基础测试代码*/
public class JDBCQuick {public static void main(String[] args) throws Exception {//1.注册驱动Class.forName("com.mysql.cj.jdbc.Driver");//2.获取连接对象String url = "jdbc:mysql://192.168.29.201:3306/jdbc";String username = "root";String password = "Lotus!1120";Connection conn = DriverManager.getConnection(url,username,password);//3.获取执行SQL语句对象Statement statement = conn.createStatement();//4.编写SQL语句并执行,接收返回结果集String statement_sql = "select * from jdbc.t_emp";ResultSet rs = statement.executeQuery(statement_sql);//5.处理结果,遍历while (rs.next()) {int emp_id = rs.getInt("emp_id");String emp_name = rs.getString("emp_name");double emp_salary = rs.getDouble("emp_salary");int emp_age = rs.getInt("emp_age");System.out.println(emp_id + "\t" + emp_name + "\t" + emp_salary + "\t" + emp_age);}//6.释放资源rs.close();statement.close();conn.close();}
}
//执行结果
1	edison	777.77	23
2	dizzy	888.88	24
3	tye	999.99	25
4	water	333.33	27

相关文章:

Java学习-JDBC(一)

JDBC 概念 JDBC(Java Database Connectivity)Java数据库连接JDBC提供了一组独立于任何数据库管理系统的APIJava提供接口规范,由各个数据库厂商提供接口的实现,厂商提供的实现类封装成jar文件,也就是我们俗称的数据库驱动jar包JDBC充分体现了…...

异步复位和同步释放

文章目录 前言一、为什么需要复位呢?二、同步复位1. 同步复位定义2. 同步复位的实现3. 同步复位的优点和缺点同步复位优点同步复位缺点 三、异步复位1. 异步复位定义2. 异步复位的实现3. 异步复位的优点和缺点异步复位优点异步复位缺点 四、异步复位同步释放1. reco…...

03-3.2.4 双端队列

👋 Hi, I’m Beast Cheng👀 I’m interested in photography, hiking, landscape…🌱 I’m currently learning python, javascript, kotlin…📫 How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以订…...

SpringBoot的Mapper文件什么时候需要使用@Param注解

解决:nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘XXX‘ not found 关于加注解,其他博客说的很清楚!但是有的人会遇见明明使用的springboot2.x以上版本,仍然提示需要加注解!这是为…...

2024.6.8

2024.6.8 **每日一题** 3040.相同分数的最大操作数目 Ⅱ,通多题意可知,该题最多有三种操作分数,分别是前两个,最后两个,以及第一个和最后一个的和。从这里也可以看出一共有三种状态转移方式,所以我们可以利…...

室内外融合定位是如何做到成为定位领域的新宠

在信息化高速发展的今天,定位技术已成为人们生活和工作中不可或缺的一部分。随着物联网、智慧城市等领域的蓬勃发展,传统的单一定位方式已无法满足复杂多变的环境需求。在这样的背景下,室内外融合定位技术应运而生,以其独特的优势…...

【刷题篇】分治-归并排序

文章目录 1、排序数组2、交易逆序对的总数3、计算右侧小于当前元素的个数4、翻转对 1、排序数组 给你一个整数数组 nums&#xff0c;请你将该数组升序排列。 class Solution { public:vector<int> tmp;void mergeSort(vector<int>& nums,int left,int right){…...

【经验】Ubuntu上离线安装VsCode插件浏览Linux kernel源码

1、下载VsCode离线安装包 1.1 下载 下载地址:https://marketplace.visualstudio.com/vscode 本人安装的插件: C/C++ checkpatch Chinese clangd kconfig Makefile Tools Perl Perl Toolbox注意:C/C++插件要安装Linux 64版本 1.2 安装 将离线安装包拷贝到Ubuntu中,执…...

鼠标侧键映射虚拟桌面切换 —— Win11

鼠标侧键映射虚拟桌面切换 —— Win11 基于 AutoHotkey 实现功能 下载软件 AutoHotkey建议安装在默认路径下&#xff08;C盘&#xff09; 此软件非常小&#xff0c;几乎不占用资源软件安装在默认路径以外的位置可能导致部分功能不可用 新建一个 .ahk 文件使用记事本打开该 .a…...

2024全国大学生数据统计与分析竞赛B题【电信银行卡诈骗的数据分析】思路详解

电信诈骗是指通过电话、网络和短信方式&#xff0c;编造虚假信息&#xff0c;设置骗局&#xff0c;对受害人实施远程、非接触式诈骗&#xff0c;诱使受害人打款或转账的犯罪行为&#xff0c;通常以冒充他人及仿冒、伪造各种合法外衣和形式的方式达到欺骗的目的&#xff0c;如冒…...

鸿蒙emitter 订阅事件封装 EmitterUtils

适用于api11 和api12 废话不多说&#xff0c;直接上代码 import emitter from ohos.events.emitter; import { StringUtils } from ohos/flutter_ohos;export class EmitterUtils{/*** 发射字符串类型的* param eventId* param data*/public static sendEvent(eventId:stri…...

C语言---深入指针(4)

回调函数 //回调函数就是通过函数指针调用的函数 //这个在之前的转移表-计算器里面很明显&#xff0c;通过函数指针数组内的函数指针进行函数的调用 // // // 将这四段代码分装成一个函数&#xff0c;一个代码将这4个问题都解决 int Add(int x, int y) {return x y; } int S…...

【启程Golang之旅】让文件操作变得简单

欢迎来到Golang的世界&#xff01;在当今快节奏的软件开发领域&#xff0c;选择一种高效、简洁的编程语言至关重要。而在这方面&#xff0c;Golang&#xff08;又称Go&#xff09;无疑是一个备受瞩目的选择。在本文中&#xff0c;带领您探索Golang的世界&#xff0c;一步步地了…...

oracle视图无法删除,orcl视图删除卡住怎么办

话说&#xff0c;这是一个来自周四加班夜晚的故事&#xff0c;当时我的PL/SQL卡住了&#xff0c;每次查询这个表时都会卡住。 经过一番研究&#xff0c;我找到了解决办法&#xff0c;分为三个步骤&#xff1a; 使用以下查询语句获取正在执行的SQL查询的SID和OracleID&#xf…...

ug编程怎么录制宏:一步步探索自动化编程的奥秘

ug编程怎么录制宏&#xff1a;一步步探索自动化编程的奥秘 在UG编程的浩瀚领域中&#xff0c;录制宏是一项强大而神秘的功能。它就像一位魔法师&#xff0c;能够将繁琐的重复操作化为简单的指令&#xff0c;释放出惊人的编程效率。然而&#xff0c;对于许多初学者来说&#xf…...

深度学习Week16——数据增强

文章目录 深度学习Week16——数据增强 一、前言 二、我的环境 三、前期工作 1、配置环境 2、导入数据 2.1 加载数据 2.2 配置数据集 2.3 数据可视化 四、数据增强 五、增强方式 1、将其嵌入model中 2、在Dataset数据集中进行数据增强 六、训练模型 七、自定义增强函数 一、前言…...

python-自幂数判断

[题目描述]&#xff1a; 自幂数是指&#xff0c;一个N 位数&#xff0c;满足各位数字N 次方之和是本身。例如&#xff0c;153153 是 33 位数&#xff0c;其每位数的 33 次方之和&#xff0c;135333153135333153&#xff0c;因此 153153 是自幂数&#xff1b;16341634 是 44 位数…...

RocketMQ教程(三):RocketMQ的核心组件

四个核心组件 RocketMQ 的架构采用了典型的分布式系统设计理念,以确保高性能、高可用和可扩展性。RocketMQ 主要由四个核心组件构成:NameServer、Broker、Producer 和 Consumer。下面是对这些组件以及它们在 RocketMQ 中的角色和功能的概述: 1. NameServer 角色和功能:Name…...

46.SQLserver中按照多条件分组:查询每个地方的各种水果的种植数量,新增时,一个地方同时有几种水果,只插入一条记录,同时多种水果之间使用|隔开

1.SQLserver中按照多条件分组 &#xff0c;分组条件包括&#xff08;一个字段使用|进行分割&#xff0c;如&#xff1a;apple|orange,查询时&#xff0c;apple和orange分别对应一条数据&#xff09; 例如&#xff1a;SQL如下&#xff1a; SELECT FROM ( SELECT CDFBM 地方编码…...

C盘满了怎么办,Windows11的C盘没有磁盘清理选项怎么办,一次搞定

问题&#xff1a; 太久没清电脑了&#xff0c;满的跟垃圾堆一样。。。C盘红色看上去很不妙。 一. C盘满了怎么办&#xff1a; 1. 删除临时文件 找到 C:\Windows\Temp&#xff0c;进入Temp资料夹&#xff0c;选中所有文件夹和文件&#xff0c;按下ShiftDelete键&#xff0c;彻…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...