【MySQL】JDBC编程

【MySQL】JDBC编程

MySQL(七)JDBC编程

一、驱动包

1.性质

1.1底层差异性

1.2JDBC接口统一性

2.导入

2.1复制导包

2.2标记作库

二、JDBC编程

1.寻找资源

1.1URL

1.1.1网址作用

1.1.2主机IP

1.1.3端口号

1.1.4数据库名

1.1.5访问资源参数

2.访问认证

2.1身份

2.2密码

3.连接通道

4.数据传输

4.1创建传输包

4.1.1创建sql

4.1.1.1+拼接变量

4.1.1.2?替换变量

4.2发送传输包

4.2.1发送写sql

4.2.2发送读sql

4.2.2.1遍历记录

4.2.2.2读取记录

5.回收资源

5.1销毁结果集合

5.2销毁传输包

5.3销毁通道


一、驱动包

1.性质

1.1底层差异性

应用程序 都是用代码写出来的,不同的应用程序,其设计时的编程模范 会不同,所以 为编程语言 代码操作使用层 设计给的驱动包里 类与接口的范式 也就会随着 对应上底层程序的代码 而不同


1.2JDBC接口统一性

在数据库应用程序里,Java规定了 必须以Java设计的 数据库编程接口JDBC 来操作使用数据库,所以各数据库厂商 就多设计了 底层接口 等效形式转化成 JDBC接口的 驱动程序,使得Java 用JDBC统一了 所有数据库的API接口


2.导入

任何应用程序的 编程层操作使用,都需要将 应用程序设计好的 实现使用功能的 类与接口 通过驱动包导入 进编程项目中 作为第三方库使用

2.1复制导包

驱动包 复制导入 要作为第三方库的 目录

所有的.java文件 加载成 许多.class文件,所有的.class文件 整理打包好 到一个.jar压缩包文件 进行程序发布的


2.2标记作库

驱动包所处的目录 标记成 第三方库


二、JDBC编程

1.寻找资源



((MysqlDataSource)dataSource).setUrl(String_URL);

mysql数据源 通过URL网址 找到mysql服务器 所在网络上的 具体资源位置

1.1URL

"jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false"

1.1.1网址作用

jdbc:mysql 表明该网址 是用来给 jdbc程序操作mysql 使用的


1.1.2主机IP

127.0.0.1 是jdbc要操作的 mysql服务器的 所处主机的 网络IP地址,当jdbc应用程序 本身所处的主机 就同是mysql服务器所处的 同台主机时,使用127.0.0.1环回IP 指向应用程序自己所处的主机 即就指向了 mysql服务器主机的位置


1.1.3端口号

一台主机上 有许多的应用程序 都要操作网络,3306mysql与网络对接的 端口号


1.1.4数据库名

确定jdbc 要操作mysql服务器里的 哪个数据库


1.1.5访问资源参数

键对应填值 的形式填写参数,键值对之间 用&分隔

characterEncoding=utf8以utf8字符集 进行数据库与应用程序的 数据传输

useSSL=false数据库与应用程序之间的网络通信 中间是否要加密


2.访问认证

2.1身份

((MysqlDataSource)dataSource).setUser(String_Ident);

mysql数据源 确定jdbc 访问数据库的身份,root 是mysql默认自带有的用户(管理员)
2.2密码

((MysqlDataSource)dataSource).setPassword(String_Passworld);

mysql数据源 确定jdbc 访问数据库的密码

3.连接通道

dataSource.getConnection();

—> return Connection

数据源 寻找并成功访问上之后,数据源 向jdbc 建立连接通道,后续在通道中进行 请求-响应 的交互

4.数据传输

4.1创建传输包

connection.prepareStatement(String_sql);

—> return PreparedStatement

在连接通道中 创建传输包,将要发送的 sql语句字符串 存储在传输包中,传输包 会进行sql语句的 预处理解析、检查 并把解析的结构化数据打包,在应用程序这边 完成解析检查这部分的工作,减少了mysql服务器的 开销负担
4.1.1创建sql
4.1.1.1+拼接变量
String sql = "insert into student values("+id+",' "+name+" ')";

变量 可直接+拼接进sql语句字符串,但这样会使得 可以通过在sql语句中 对变量输入非法内容 实现对数据库的攻击,不安全

4.1.1.2?替换变量

preparedStatement.setDatatype(下标,变量);

使用占位符? 先替入 后规范换 的方式 可将变量安全替换进 sql字符串中,占位符的下标是从1开始的

4.2发送传输包

4.2.1发送写sql

preparedStatement.executeUpdate();

—> return int

传输包 以写的形式 将自己发送到数据库服务器 执行,返回数据库中 影响到的行数
4.2.2发送读sql

preparedStatement.executeQuery();

—> return ResultSet

传输包 以读的形式 将自己发送到数据库服务器 执行,返回 查询结果临时表的 结果集合
4.2.2.1遍历记录

resultSet.next();

—> return boolean

从临时表的 第0个记录开始,往后 保存光标位置遍历 取得一个记录,遍历到表尾空时 返回false
4.2.2.2读取记录

result.getDatatype("col_name");

—> return Datatype

获取 遍历所处记录的 指定字段数据

5.回收资源

后获取到的资源先释放 的顺序 回收资源

5.1销毁结果集合

resultSet.close();
5.2销毁传输包

preparedStatement.close();
5.3销毁通道

connection.close();

Read more

Flutter 组件 nextcloud 的适配 鸿蒙Harmony 实战 - 驾驭私有云协作协议、实现鸿蒙端文件极速分发与数据同步安全性审计方案

Flutter 组件 nextcloud 的适配 鸿蒙Harmony 实战 - 驾驭私有云协作协议、实现鸿蒙端文件极速分发与数据同步安全性审计方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 nextcloud 的适配 鸿蒙Harmony 实战 - 驾驭私有云协作协议、实现鸿蒙端文件极速分发与数据同步安全性审计方案 前言 在鸿蒙(OpenHarmony)生态的政务办公自动化、大型医疗影像云以及对数据主权(Data Sovereignty)有严格要求的企业级 SaaS 应用中,“私有化部署的云存储”是构建安全数字底座的必选项。面对需要在鸿蒙应用中深度对接 Nextcloud 服务器。实现海量文档、高清视频以及结构化数据库备份的无缝流转。如果仅仅依靠原始的 WebDAV 协议封装。那么不仅会导致通讯代码因应对复杂的身份验证(App Passwords)、多级目录递归以及大文件切片而变得难以维护。更会由于缺乏鸿蒙端原生的连接池优化方案引发严重的响应延迟。 我们需要一种“逻辑透明、协议受控”的私有云交互艺术。 nextcloud 是一套专为该开源平台设计的 Dart 包。它通过高度抽象的 API。将复杂的

By Ne0inhk
Flutter 组件 postgres_crdt 的适配 鸿蒙Harmony 实战 - 驾驭分布式无冲突复制数据类型、实现鸿蒙端高性能离线对等同步架构方案

Flutter 组件 postgres_crdt 的适配 鸿蒙Harmony 实战 - 驾驭分布式无冲突复制数据类型、实现鸿蒙端高性能离线对等同步架构方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 postgres_crdt 的适配 鸿蒙Harmony 实战 - 驾驭分布式无冲突复制数据类型、实现鸿蒙端高性能离线对等同步架构方案 前言 在鸿蒙(OpenHarmony)生态的分布式协作编辑器、多端同步的即时通讯资产库以及需要实现“本地优先(Local-first)”架构的各类大型数字化政务应用开发中,“数据一致性的最终收敛”是系统稳定性的灵魂。面对由 5 台鸿蒙设备在不同地点、不同弱网环境下同时对同一份 JSON 资产执行的交叉修改。如果依然采用基于“锁”或“版本号覆盖”的传统同步逻辑。不仅会导致频繁出现的由于并发冲突引发的“保存失败”报错,更会因为无法处理跨设备的时序漂移,引发严重的资产状态错乱。 我们需要一种“逻辑守恒、冲突自愈”的存储艺术。 postgres_crdt 是一套专注于将 PostgreSQL 生态的严谨性与无冲突复制数据类型(

By Ne0inhk

Code Llama 70B 实战指南:从环境部署到工业级代码生成

Code Llama 70B 实战指南:从环境部署到工业级代码生成 【免费下载链接】CodeLlama-70b-hf 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/CodeLlama-70b-hf 还在为大型代码库重构焦头烂额?还在为调试复杂算法浪费数小时?本文将带你全面掌握 Meta 最新发布的 700 亿参数代码大模型 Code Llama 70B,从硬件配置到企业级应用,一站式解决开发效率难题。读完本文你将获得: * 3 种部署方案适配不同硬件条件 * 5 大核心功能的实战代码模板 * 10+ 编程语言的优化提示词策略 * 企业级性能调优的 8 个关键参数 * 避坑指南:解决模型幻觉与代码安全问题 1. 模型全景解析:为什么选择 70B 版本? Code Llama 作为 Llama 2

By Ne0inhk

GitHub Copilot

1. GitHub Copilot(最适配 Vue3 的主流选择) GitHub Copilot 是目前最成熟的 AI 代码助手之一,对 Vue3 的 <script setup>、组合式 API(如 ref、reactive、computed)等语法支持极佳,能根据上下文生成 Vue3 组件、逻辑代码、甚至单元测试。 安装步骤: 1. 打开 VS Code,点击左侧边栏的「扩展」图标(或快捷键 Ctrl+Shift+X)。 2. 在搜索框输入 GitHub Copilot,找到官方插件(图标是章鱼猫),点击「安装」

By Ne0inhk