Java 的 JDBC 编程

news2025/1/17 4:00:32

  • 一、数据库编程的必备条件
  • 二、Java 的数据库编程 JDBC
  • 三、JDBC 工作原理
  • 四、JDBC 使用
    • 4.1 下载驱动包
    • 4.2 打开编辑器,添加依赖
    • 4.3 编写连接数据库代码

一、数据库编程的必备条件

  • 编程语言,例如 Java、C、C++、Python 等.
  • 数据库,如 Oracle、MySQL、SQL Server 等.
  • 数据库驱动包,不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL 提供了 Java 驱动包 mysql-connector-java;Oracle 提供了 Java 驱动 Oracle 数据库的驱动包 ojdbc。

二、Java 的数据库编程 JDBC

JDBC,即 Java Database Connectivity,Java 数据库连接。是一种用于执行 SQL 语句的 Java API,它是 Java 中的数据库连接规范。
这个 API 由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为 Java 开发人员操作数据库提供了一个标准的 API,可以为多种关系数据库提供统一访问。

三、JDBC 工作原理

JDBC 访问数据库层次结构:

JDBC 优势:

  • Java 语言访问数据库操作完全面向抽象接口编程。
  • 开发数据库应用不用限定再特定数据库厂商的 API。
  • 程序的可移植性大大增强。

四、JDBC 使用

4.1 下载驱动包

首先,需要在本机上按照 MySQL 数据库服务,并且根据 MySQL 版本去 maven 中央仓库下载数据库驱动包。

启动 MySQL 服务后,通过 cmd,输入 mysql --version 查看 MySQL 的版本。

登录 Maven Repository 下载驱动包.

在这里插入图片描述

根据你的 MySQL 版本,选择对应的驱动包(8.0.31 和 8.0.28 这种最后小版本差距无所谓).

点击下载即可.


4.2 打开编辑器,添加依赖

打开 IDEA,将驱动包添加到项目的依赖中。

在项目中创建文件夹lib,并将依赖包复制到 lib 中。
再配置该 jar 包到本项目的依赖中:右键点击项目 Open Module Settings,在 Modules 中,点击项目,配置 Dependencies,点击+,JARS or Directories,将该 lib 文件夹配置进依赖中,表示该文件夹下的 jar 包都引入作为依赖。

看不懂文字,可以跟着图片走…

4.3 编写连接数据库代码

        // 1.创建一个数据源对象,准备存储数据库信息
        MysqlDataSource dataSource = new MysqlDataSource();

        // 2.把数据库位置信息,设置到 dataSource
        // 此处将父类的引用转换成子类引用,称为向下转型。
        // 编写转型的代码,好处是代码中其它部分拿到的 dataSource 都是 DataSource 类型,
        // 和具体的数据库种类无关,日后如果需要切换数据库,其它代码就完全不用改动了。
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java101?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("root");

        // 3.连接数据库
        Connection connection = dataSource.getConnection();

        Scanner scanne = new Scanner(System.in);
        System.out.println("请输入学号~");
        int id = scanne.nextInt();
        System.out.println("请输入姓名~");
        String name = scanne.next();

        // 4.构造一个 SQL 语句,准备插入
        String sql = "insert into stu2 values("+ id +",'" + name +"')";

        // 5.PreparedStatement 预编译语句,把 SQL 放进去
        PreparedStatement statement = connection.prepareStatement(sql);
        int ret = statement.executeUpdate();
        System.out.println(ret);

        // 6.关闭资源
        statement.close();
        connection.close();

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

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

相关文章

机器学习------ 基于ubuntu 22.04 系统下的pytorch 安装记录过程(包含cuda和cudnn的安装)

机器学习----- pytorch的安装过程 最近,在学习机器学习,在对于理论方面进行一段时间的学习后,打算开始上手代码。在此之前,选择了pytorch作为学习的工具,这里记录下安装的过程。在这里,先把我的设备展示一…

乌卡时代的云成本管理:从0到1了解FinOps

在上一篇文章中,我们介绍了企业云业务的成本构成以及目前面临的成本困境,以及当前企业逐步转向 FinOps 的行业趋势,这篇文章我们将详细聊聊 FinOps,包括概念、重要性以及成熟度评价指标。 随着对云服务和供应商的使用越来越多&…

2023年博管办香江学者计划、澳门青年学者开始申报

2023年2月20日,全国博士后管委会办公室官方网站发出了2023年香江学者计划、澳门青年学者计划和博士后国(境)外学术交流项目申报指南,以下知识人网小编仅转载香江学者计划和澳门青年学者计划申报指南并做重点解读。知识人网整理香江…

分布式之gossip共识算法分析

写在前面 假如你的业务对系统的可用性要求非常高,就算集群只剩下一个节点,也要能够正常对外提供服务(虽然此时系统能力已经骤降,但至少还在!),因为raft 要求大多数节点可用所以就没有用武之地了…

【2223sW1】LOG1

这里写自定义目录标题写在前面23.2.19报错Unable to allocate xxx GiB for an array with shape (xxxx, xxxx)23.2.20psi6图片绘制选择了部分r,绘制了g6(r)23.2.21从lammpstrj文件中导出了1001X6个csv文件虚拟内存扩展代码运行占用资源查询写…

字符串转换为二进制-课后程序(JAVA基础案例教程-黑马程序员编著-第五章-课后作业)

【案例5-4】 字符串转换为二进制 【案例介绍】 1.任务描述 本例要求编写一个程序,从键盘录入一个字符串,将字符串转换为二进制数。在转换时,将字符串中的每个字符单独转换为一个二进制数,将所有二进制数连接起来进行输出。 案…

PowerJob容器的今生,容器是如何部署到Worker上,并正常运行的

这仅仅是一篇PowerJob源码分析的文章,但是也有一些java基础知识,在实践中学习效果更好,感兴趣就留下来交流一下吧。 上回书说到,这个powerjob容器是如何生成模板,如何上传到服务器上去,本回主要总结的是&am…

死磕Node模块兼容性,ESM和CJS我全都要!

目录 前言 一些概念 CJS(CommonJS) ESM(ECMAScript Modules) 兼容操作 效果演示 总结 前言 在Node版本13.2.0(2019年)之前,我们一般使用CJS(CommonJS)模式在代码…

Java JDBC详解

1、JDBC概念、本质、好处 概念: JDBC 就是使用Java语言操作关系型数据库的一套API 全称:( Java DataBase Connectivity ) Java 数据库连接 本质: 官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口…

展现AI与自动化测试技术之间的神奇化学反应

目录 零:前言 一、介绍 1.1、什么是自动化测试技术 1.2、痛点 1.3、几款优秀的自动化测试工具介绍 1.3.1、Selenium 1.3.2、龙测AI-TestOps云平台 1.3.3、TestCafe 二、实操 2.1、主要功能模块介绍 2.2、实战演练 2.2.1、创建web项目 2.2.2、录制流程图…

Taro3.x 容易踩坑的点(阻止滚动穿透,弹框蒙层父级定位)

解决弹框滚动的时候,下层也会滚动问题》阻止滚动穿透(react,vue)案例描述:页面展示时需要滚动条才可以显示完整,但是当我们显示弹框的时候,即使不需要滚动条,但是页面仍然可以滚动,并且下层内容会随着滚动变…

MES助力灯具照明行业从制造到”智造”

现如今,LED照明行业产品更新换代太快,一个产品一两年不更新一下外观、材料,就会被对手超越。这直接导致LED产品标准化程度不够高,LED下游制造类厂家智能化生产程度普遍偏低。 加之大多属于劳动密集型产业,传统的依靠买…

Hive分区表与分桶表的使用具体说明

目录 一、分区表 (一)分区表基本语法 1.创建分区表 2.往分区表中写入数据的两种方法 (1)load装载本地数据 (2)insert...select...(常用) 3.读取分区表数据 4. Hive分区表的存储路径规划:分区字段分区值 5.分区表基本操作 (1)查看所有分区信息 (2)新增分区…

C#使用MQTT通信 .Net实现MQTT通信 java使用MQTT通信 java实现MQTT通信

MQTT是一种轻量级、基于发布/订阅模式的通信协议,通常用于物联网设备间的通信。MQTT协议采用简单的二进制消息格式,能够在不占用过多网络带宽的情况下进行高效的通信。以下是使用MQTT进行通信的一些基本概念:BrokerMQTT通信中的中间件&#x…

机器学习算法: AdaBoost 详解

1. 集成学习概述 1.1. 定义 集成学习(Ensemble learning)就是将若干个弱分类器通过一定的策略组合之后产生一个强分类器。 弱分类器(Weak Classifier)指的就是那些分类准确率只比随机猜测略好一点的分类器,而强分类器&…

住宅防雷接地的选择要求和施工方法

在您家的布线系统中,防雷接地系统是一项至关重要的安全功能。如果系统发生某种故障,接地系统提供电阻最小的路径,确保电流安全地流回大地本身。因此,它减少了短路导致火灾或危及生命的电击的可能性。家庭接地系统的最后一个也是最…

成都的Java培训机构有哪些?

强烈自荐 二十三年教学实力积累 "课工场是专注互联网教育的生态平台,汇聚中国和北美数百位来自互联网企业的行业大咖,向寻求技术提升和想进入IT行业的人群提供直播、录播、线下面授等多模式教学服务,并通过全国线下服务中心提供更加成熟…

【JVM】内存结构

【JVM】内存结构 文章目录【JVM】内存结构1. 程序计数器1.1 定义1.2 作用2. 虚拟机栈2.1 定义2.2 栈内存溢出2.3 线程运行诊断3. 本地方法栈4. 堆4.1 定义4.2 堆内存溢出4.3 堆内存诊断5. 方法区5.1 定义5.2 组成5.3 方法区内存溢出5.4 运行时常量池5.5 StringTable特性1. 程序…

Hadoop集群模式安装(Cluster mode)

1、Hadoop源码编译 安装包、源码包下载地址 Index of /dist/hadoop/common/hadoop-3.3.0为什么要重新编译Hadoop源码? 匹配不同操作系统本地库环境,Hadoop某些操作比如压缩、IO需要调用系统本地库(*.so|*.dll) 修改源码、重构源码 如何…

电子墨水屏的应用场景

电子纸挺好个东西,大家都把注意力集中在商超场景,其实还有更多有趣的场景方案可用,价值也不小,比如: 仓库场景:通过亮灯拣选,提高仓库作业效率。 仓库循环使用标签:做NFC类发卡式应…