JDBC编程的学习——MYsql版本

目录

前言

什么是JDBC ???

前置准备

使用JDBC的五个关键步骤

1.建立与数据库的连接

2.创建具体的sql语句和Statement

3.执行SQL语句

4.处理结果集

5.释放资源

完整流程展示


前言

笔者在先前的博客就提过会写关于JDBC的内容

[Mysql] 的基础知识和sql 语句.教你速成(上)——逻辑清晰,涵盖完整-CSDN博客

作为一个初学者,JDBC很大程度上解决了我之前的困惑——应用程序是怎么和数据库关联起来的

在本文中,我以先前分享过的图书管理系统为例子,来向大家初步介绍如何使用JDBC

图书管理系统(java) 代码展示和思路介绍 (9000字小长文)_图书管理系统关键代码展示-CSDN博客

什么是JDBC ???

JDBC ,即 Java Database Connectivity java 数据库连接。
是一种用于执行 SQL 语句的 Java API ,它是 Java中的数据库连接规范。
这个 API java.sql.*,javax.sql.* 包中的一些类和接口组成,
它为 Java 开发人员操作数据库提供了一个标准的API ,可以为多种关系数据库提供统一访问。
JDBC提供了一个统一的接口,使得Java应用程序可以与任何支持JDBC标准的关系型数据库进行交互,无需关心具体的数据库实现细节。这种平台无关性使得开发的应用程序可以轻松地在不同的数据库系统上运行。
话句话说,通过使用JDBC以及它升级过的版本,我们就可以用相对低的知识成本,使JAVA程序连接数据库
在之前的图书管理系统中笔者就说过,程序的缺陷就是没法长期保存数据,一旦程序执行结束,数据就会丢失,因此,我们可以将它写入我们的MYsql数据库中,长期保存.

前置准备

1.下载好驱动包

2.创建好项目以后,再创建目录存放驱动包,并且设置为library

具体操作可以看我另一篇博客

图文讲解IDEA如何导入JDBC驱动包-CSDN博客

使用JDBC的五个关键步骤

1.建立与数据库的连接

在Java中创建一个数据源(DataSource)对象,并实例化为MySQL数据库的数据源(MysqlDataSource) (向上转型)

然后设置好 URL  User 和Password   

其中关于URL 说明如下:

URL(Uniform Resource Locator,统一资源定位符)是用于标识和定位互联网上资源的地址。它是一个字符串,描述了资源的位置和访问方式

URL是互联网中标准的资源定位方式,用于浏览器访问网页、下载文件、发送请求等操作。在编程中,通过URL可以指定需要访问的网络资源,进行网络通信和数据传输。

同时呢,代码如下

  DataSource dataSource=new MysqlDataSource();((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jsh?characterEncoding=utf8&useSSL=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("你的数据库密码");

关于URL,作为我们自己练习来说,127.0.0.1 是一个回环IP地址 ,3306是我们的端口号, jsh在这代表连接哪个数据库,基本都是默认的,直接复制即可(除了连接什么数据库自己定)

然后建立连接

 Connection connection=dataSource.getConnection();

2.创建具体的sql语句和Statement

这里就要考验你的sql语句是否扎实了

举例来说

我们要写一个sql命令,它的数据类型是String

 String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";
default 是默认值,这么什么好说的,你肯定会疑惑?是什么
这里的?是占位符,便于我们在程序中输入数据以填充
我们以增加图书这个命令来看,代码如下
     System.out.println("增加图书");Scanner scanner=new Scanner(System.in);System.out.println("请输入您要添加的图书的书名:");String name = scanner.nextLine();System.out.println("请输入您要添加的图书的作者名:");String author = scanner.nextLine();System.out.println("请输入您要添加的图书的类型:");String type = scanner.nextLine();System.out.println("请输入您要添加的图书的价格:");int price = scanner.nextInt();String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";PreparedStatement preparedStatement=connection.prepareStatement(sql);preparedStatement.setString(1,name);preparedStatement.setString(2,author);preparedStatement.setInt(3,price);preparedStatement.setString(4,type);

在写好我们的命令以后,创建 PreparedStatement,它的作用是将sql语句传到数据库当中,

它也给了我们一组方法,可以手动输入数据去替换我们的占位符(?)

在方法中,左边的数字代表问好的位置,右边的标识符代表我们要替换的数据

3.执行SQL语句

现在,我们已经建立好连接,写好了命令,现在就需要他执行!

执行也有两种方法,分别去应用广义上的写(包括修改增加删除)和查询

 int n=preparedStatement.executeUpdate();

 这里我们以"写"作为例子去看

    int executeUpdate() throws SQLException;

 可以看到这是一个 int 方法,我们用n去接收,来查看有几条命令执行了

4.处理结果集

如果是查询操作,通常会有结果集,但这里我们就不细说了,到时候看案例就知道了

5.释放资源

顺序通常是释放最后调用的对象

 preparedStatement.close();connection.close();

完整流程展示

这里给大家看个大概的流程

     //1 创建DataSource dataSource=new MysqlDataSource();((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jsh?characterEncoding=utf8&useSSL=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("你的密码");//2 建立链接Connection connection=dataSource.getConnection();//3 创建sql语句System.out.println("增加图书");Scanner scanner=new Scanner(System.in);System.out.println("请输入您要添加的图书的书名:");String name= scanner.nextLine();System.out.println("请输入您要添加的图书的作者名:");String author = scanner.nextLine();System.out.println("请输入您要添加的图书的类型:");String type = scanner.nextLine();System.out.println("请输入您要添加的图书的价格:");int price = scanner.nextInt();String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";PreparedStatement preparedStatement=connection.prepareStatement(sql);preparedStatement.setString(1,name);preparedStatement.setString(2,author);preparedStatement.setInt(3,price);preparedStatement.setString(4,type);//4 发送给服务器int n=preparedStatement.executeUpdate();//5 释放资源preparedStatement.close();connection.close();

具体案例更新在下篇

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

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

相关文章

R包:reticulate R对python的接口包

介绍1 R和python是两种不同的编程语言,前者是统计学家发明并且服务数学统计计算,后者则是最万能的胶水语言。随着大数据时代的到来,两者在数据分析领域存在越来越多的共同点且可以相互使用,为了破解二者的编程壁垒,CR…

软考《信息系统运行管理员》-3.1信息系统设施运维的管理体系

3.1信息系统设施运维的管理体系 1 信息系统设施运维的对象 基础环境 主要包括信息系统运行环境(机房、设备间、配线室、基站、云计算中心 等)中的空调系统、供配电系统、通信应急设备系统、防护设备系统(如消防系统、安全系统) 等,能维持系统安全正常运转&#xf…

【第26章】MyBatis-Plus之高级特性

文章目录 前言一、数据审计(对账)二、数据敏感词过滤三、数据范围(数据权限)四、表结构自动维护五、字段数据绑定(字典回写)六、虚拟属性绑定七、字段加密解密八、字段脱敏九、多数据源分库分表&#xff08…

从零开始学习嵌入式----Linux系统命令集合与shell脚本

Shell是一门编程语言,作为学习shell的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? shell本身就是一门解释型、弱类型、动态语言,与python相对应,Python属于解…

aardio —— 今日减bug

打字就减bug 鼠标双击也减bug 看看有多少bug够你减的 使用方法: 1、将资源附件解压缩,里面的文件夹,放到aardio\plugin\plugins 目录 2、aardio 启动插件 → 插件设置 → 选中“今日减bug” → 保存。 3、重启 aardio,等aa…

旗晟智能巡检机器人:开启工业运维的智能化新篇章

在当今快速发展的工业领域,安全、效率和成本控制是企业运营的核心。旗晟科技以创新为驱动,推出了一站式的工业级智能巡检机器人数字化全景运维解决方案,为石油、天然气、化工、电力等高危行业提供了一个全新的运维模式。 一、面对挑战&#x…

提升机器视觉与机器学习软件安全性的实践策略

在近几年科技爆发中,机器学习(ML)和机器视觉(MV)的结合正在改变各行各业。机器学习通过数据驱动的算法让计算机能够自我学习,而机器视觉赋予计算机识别和理解图像的能力。这种结合使得计算机可以高效地执行…

上位机开发关键技术

《上位机开发关键技术》 在现代工业自动化、智能化的发展进程中,上位机作为人机交互的重要接口,发挥着至关重要的作用。上位机能够实现对下位机设备的监控、数据采集与处理、控制指令下达等功能,为生产过程的优化、设备的高效运行提供了有力支…

浅谈化工厂环保管理的痛点、智慧环保的必要性及EHS系统的实现路径

在全球环保意识日益增强的背景下,化工厂作为工业领域的重要组成部分,其环保管理显得尤为重要。然而,化工厂在追求经济效益的同时,也面临着诸多环保管理的痛点。本文将围绕化工厂环保管理的痛点、化工厂为何需要智慧环保以及如何借…

设计分享—国外后台界面设计赏析

国外后台界面设计将用户体验放在首位,通过直观易懂的布局和高效的交互设计,提升用户操作效率和满意度。 设计不仅追求美观大方,还注重功能的实用性和数据的有效展示,通过图表和图形化手段使数据更加直观易懂。 采用响应式布局&a…

Global Mapper:地理信息的温柔探索

引言 在这纷繁复杂的世界里,地理信息系统(GIS)如同一把利器,帮助我们剖析、理解和改造这个世界。而在众多GIS软件中,Global Mapper无疑是其中的佼佼者。作为一款功能全面且易于使用的GIS应用程序,Global M…

相机光学(三十一)——暗房设置的要求

ISO标准通常在测试相机时指定对周围条件的要求。由于摄影ISO组试图保持这些要求与所有标准一致,所以我们总结了这个“技术说明”中的重要方面。   温度应保持在23C /- 2C的范围内。在设计空调系统时,请记住图表照明的耗电量和发热量。湿度需要在&#…

数字安全护航技术能力全景图 | 亚信安全实力占据75领域

近日,2024全球数字经济大会——数字安全生态建设专题论坛在北京成功举办。会上,中国信息通信研究院(简称“中国信通院”)正式发布了《数字安全护航技术能力全景图》,亚信安全凭借全面的产品技术能力,成功入…

【网络安全】SSRF 之 Azure Digital Twins Explorer

未经许可,不得转载。 文章目录 正文 正文 Azure Digital Twins 是一个微软下的平台服务,允许开发者创建和运行数字孪生模型,这些模型能够反映物理世界中的实体及其关系,通过这些模型可以进行监控、分析和预测等操作。 1、进入主…

How to Describe Figures in a Research Article

How to Describe Figures in a Research Article DateAuthorVersionNote2024.07.10Dog TaoV1.0Finish the document. 文章目录 How to Describe Figures in a Research ArticleGeneral GuidelinesDetailed DescriptionsCommon Describing Phrases Effective communication of …

构建机部署之Azure DevOps添加代理机(Linux)

目录 一、权限检查二、添加代理机三、更换代理四、删除并重新配置代理 一、权限检查 确认用户具有权限 默认代理池的所有者有添加代理的权限 1)代理池所有者可以生成一个PAT,共享使用。代理不会在日常操作中使用此人凭据,但需要使用有权限的…

【多线程】线程同步--条件变量的原理及其使用

文章目录 前言线程同步的基本概念条件变量定义条件变量初始化条件变量销毁条件变量等待条件(重要)唤醒等待简单运用常见使用条件变量的格式 前言 线程同步意味着在多线程并发执行中,协调线程之间的执行顺序,以确保共享资源被正确…

Kylin系列(三)安装与配置:搭建你的第一个 Kylin 环境

目录 1. Kylin 简介 1.1 Kylin的核心特点 1.2 适用场景 2. 环境准备 2.1 硬件要求 2.2 软件依赖 3. 安装与配置 3.1 安装JDK 3.2 安装Hadoop 3.2.1 下载并解压Hadoop 3.2.2 配置Hadoop环境变量 3.2.3 配置Hadoop文件 3.2.4 格式化HDFS并启动Hadoop服务 3.3 安装H…

hive架构详解:HQL案例解析(第15天)

系列文章目录 一、Hive基础架构(重点) 二、Hive数据库,表操作(重点) 三、Hadoop架构详解(hdfs)(补充) 四、Hive环境准备(操作)(补充) 文章目录 系列文章目录前言一、Hive基础架构1、…

4. 小迪安全v2023笔记 javaEE应用

4. 小迪安全v2023笔记 javaEE应用 ​ 大体上跟随小迪安全的课程,本意是记录自己的学习历程,不能说是完全原创吧,大家可以关注一下小迪安全。 若有冒犯,麻烦私信移除。 默认有java基础。 文章目录 4. 小迪安全v2023笔记 javaEE应…