JDBC快速入门操作

一、jdbc简介

 JDBC是java用于连接数据库的api,数据库软件有多种,像MySQL,SQLsever,Oracle等数据库,这些数据库都是由不同的团队开发的,所以相同的功能的api的名字不同,当一个后端工程需要切换一个数据库软件时,就需要改写后端的大量跟数据库相关的代码,非常麻烦,所以Java自己提供了一套JDBC来兼容所有的数据库操作,各个厂商也根据Java的JDBC的api提供了自家数据库的驱动包,这样就是的JDBC编写时,只需要下载对应数据库的驱动包,就能使用同一套api操作不同的数据软件。

二、引入数据库驱动包

有两种办法

  1. 直接下载
    • 在Maven仓库搜索Mysql
      在这里插入图片描述
    • 选择和数据库版本匹配的数据库驱动包
      在这里插入图片描述
    • 点击jar直接下载好驱动包
      在这里插入图片描述
    • 下载好之后在jdbc项目下面新建一个lib目录,将下载好的驱动包移动到目录下
      在这里插入图片描述
  2. 创建maven项目引入依赖(和之前的Maven项目引入依赖步骤一样创建maven项目引入依赖)

三、基本api介绍

  1. DataSourse接口
     这是一个描述一个数据库的接口,这个接口是java自带的,它实例化需要数据库驱动包提供的实现了这个接口的DataSource类,本文使用的MySQL驱动包,所以对应的类名叫做MySQLDataSource。
    在这里插入图片描述
     创建好这个DataSource之后要让这个DataSource和想要操作的数据库关联起来,所以给它赋值这个数据库的对应信息。这些信息就包括,数据库用户名(user),数据库密码(password),数据库的位置信息(url)。
    在这里插入图片描述
    用户名只要不去改,自动就是数据库生成的root,password就是每次运行数据库需要输入的密码,这两个是登录数据库的钥匙,url则描述了数据库到底是在网络上的那个位置。这个url和http中的url的结构是一样的。
    jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf8&useSSL=false
    
    1. jdbc:mysql
      jdbc的版本,此时jdbc使用的是mysql驱动版。
    2. 127.0.0.1:3306
      因为是操作的本机的数据库,所以此时的ip地址是127.0.0.1,冒号后面的端口号是3306,MySQL数据库默认使用的就是3306端口。
    3. /jdbc
      数据库路径,选中的jdbc这个数据库,这个库要首先自己创建好。
      在这里插入图片描述
      4.?后面的就是一些配置信息
      characterEncoding=utf8表示字符集使用utf8字符集
      useSSL=false表示不使用加密传输
      两者之间用&隔开。
  2. Connection类
    Connection是连接类,它抽象出了连接池中的连接,在实例化了DataSource,明确了目标数据库的各种信息之后,jdbc就会创建连接池,连接池会进行多个连接,当需要使用连接时,就用getConnection方法取出一个连接。然后就可以使用取出的连接进行消息的传递了。
    在这里插入图片描述
  3. Statement接口
     Statement是用来处理sql语句的类,主要使用两个它的子类,PreparedStatement和Statement。
     其中PreparedStatement会对sql语句进行预处理,statement不会。
    因为sql语句是字符串,距离真正数据库能执行的命令还需要被解析,而服务器需要接收四面八方传来的sql语句,所以一般客户端在发送sql语句时,要先对sql语句进行解析,将解析后的命令发送给服务器,从而减轻服务器的负担。所以一般Statement不建议使用
    在这里插入图片描述
    实例化PreparedStatement时需要传入String类型的sql语句。
  4. executeUpdate和executeQuery方法
     executeUpdate是提交sql语句到服务器,并且返回一个int类型的数表示sql语句影响了几行。(适合delete,create,insert等)
     executeQuery是提交sql语句到服务器,并获取到服务器返回的结果,用resultSet类来接收。(适合select)
    在这里插入图片描述
  5. 参数化的sql语句
    可以用?来代替sql语句中的参数。
    在这里插入图片描述
    通过下标来选中第几个?(下标是从1开始的),并且用方法名setInt,setString来表示插入的参数的类型。
    构造好之后就可以用executeQuery或者executeUpdate来提交代码。
    可以多次设置不同的值,来实现不同的提交语句

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

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

相关文章

tomcat的多实例,动静分离(web服务基础结束)

多实例 多实例就是在一台服务器上有多个tomcat的服务(核心是改端口) 实验:多实例 安装步骤 1.安装好 jdk 2.安装 tomcat cd /opt tar zxvf apache-tomcat-9.0.16.tar.gz mkdir /usr/local/tomcat mv apache-tomcat-9.0.16 /usr/local/tomca…

ChatGPT将会成为强者的外挂?—— 提高学习能力

目录 前言 一、提高学习力 🧑‍💻 1. 快速找到需要的知识 2. 组合自己的知识体系 3. 内化知识技能 二、提问能力❗ 三、思维、创新能力 🌟 1. 批判性思维 1.1 八大基本结构进行批判性提问 1.2 苏格拉底的提问分类方法 2. 结构化思…

【Java可执行命令】(十八)可视化监控和管理工具 jconsole:获取 JVM的内存使用情况、线程活动、GC 行为等重要指标的可视化工具 ~

Java可执行命令之jconsole 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法格式3.2 注意事项 4️⃣ 应用场景🌾 总结 1️⃣ 概念 jconsole 是 Java Development Kit (JDK) 自带的一款图形化监控和管理工具。它旨在提供一个简单而强大的界面,用于监视和管…

一百五十一、Kettle——Linux上安装的kettle8.2开启carte服务以及配置子服务器

一、目的 kettle8.2在Linux上安装好可以启动界面、并且可以连接MySQL、Hive、ClickHouse等数据库后,准备在Linux上启动kettle的carte服务 二、实施步骤 (一)carte服务文件路径 kettle的Linux运行的carte服务文件是carte.sh (二…

大语言模型之一 Attention is all you need ---Transformer

大语言模型已经在很多领域大显身手,其应用包括只能写作、音乐创作、知识问答、聊天、客服、广告文案、论文、新闻、小说创作、润色、会议/文章摘要等等领域。在商业上模型即产品、服务即产品、插件即产品,任何形态的用户可触及的都可以是产品&#xff0c…

AWS——04篇(AWS之Amazon S3(云中可扩展存储)-02——EC2访问S3存储桶)

AWS——04篇(AWS之Amazon S3(云中可扩展存储)-02——EC2访问S3存储桶) 1. 前言2. 创建EC2实例 S3存储桶3. 创建IAM角色4. 修改EC2的IAM 角色5. 连接EC2查看效果5.1 连接EC25.2 简单测试5.2.1 查看桶内存储情况5.2.2 复制本地文件…

PHP利用PCRE回溯次数限制绕过某些安全限制实战案例

目录 一、正则表达式概述 有限状态自动机 匹配输入的过程分别是: DFA(确定性有限状态自动机) NFA(非确定性有限状态自动机) 二、回溯的过程 三、 PHP 的 pcre.backtrack_limit 限制利用 例题一 回溯绕过步骤 &…

Springboot整合Druid

导入依赖 <!-- druid连接--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency> #配置数据源 spring:datasource:driver…

JavaScript中的交互的方式alert,prompt,confirm的用法

一.alert的用法 1.alert 它会显示一条信息,弹出的这个带有信息的小窗口被称为模态窗。“modal” 意味着用户不能与页面的其他部分&#xff08;例如点击其他按钮等&#xff09;进行交互&#xff0c;直到他们处理完窗口。在上面示例这种情况下 —— 直到用户点击“确定”按钮。 …

信息安全:防火墙技术原理与应用.

信息安全&#xff1a;防火墙技术原理与应用. 防火墙是网络安全区域边界保护的重要技术。为了应对网络威胁&#xff0c;联网的机构或公司将自己的网络与公共的不可信任的网络进行隔离&#xff0c;其方法是根据网络的安全信任程度和需要保护的对象&#xff0c;人为地划分若干安全…

本地项目如何连接git远程仓库

在本地新建项目后&#xff0c;如何连接git远程仓库呢&#xff1f;步骤如下&#xff1a; 第一步&#xff0c; 首先我们在git上新建仓库&#xff0c;设置模板可勾选Readme文件。&#xff08;readme文件的创建是为了介绍所写代码的一些详细信息,为了之后更好的维护。&#xff09;…

安卓改透明屏有哪些方法和步骤?壁纸、主题、软件

安卓改透明屏是指将安卓手机的屏幕背景变为透明&#xff0c;使得手机的背景图像或者壁纸能够透过屏幕显示出来。 这样的改变可以让手机的界面更加个性化&#xff0c;也能够增加手机的美观度。 要实现安卓手机的透明屏&#xff0c;可以通过以下几种方法&#xff1a; 1. 使用透…

[保研/考研机试] KY80 进制转换 北京大学复试上机题 C++实现

题目链接&#xff1a; KY80 进制转换https://www.nowcoder.com/share/jump/437195121691735660774 描述 写出一个程序&#xff0c;接受一个十六进制的数值字符串&#xff0c;输出该数值的十进制字符串(注意可能存在的一个测试用例里的多组数据)。 输入描述&#xff1a; 输…

嵌入式开发的学习与未来展望:借助STM32 HAL库开创创新之路

引言&#xff1a; 嵌入式开发作为计算机科学领域的重要分支&#xff0c;为我们的日常生活和产业发展提供了无限的可能。STMicroelectronics的STM32系列芯片以其出色的性能和广泛的应用领域而备受关注。而STM32 HAL库作为嵌入式开发的高级库&#xff0c;为学习者提供了更高效、更…

【BASH】回顾与知识点梳理(二十一)

【BASH】回顾与知识点梳理 二十一 二十一. Linux 的文件权限与目录配置21.1 使用者与群组属主(文件拥有者)属组(群组概念)其他人的概念root(万能的天神)Linux 用户身份与群组记录的文件 21.2 Linux 文件权限概念Linux 文件属性Linux 文件权限的重要性 21.3 如何改变文件属性与权…

嵌入式Linux驱动开发系列五:Linux系统和HelloWorld

三个问题 了解Hello World程序的执行过程有什么用? 编译和执行&#xff1a;Hello World程序的执行分为两个主要步骤&#xff1a;编译和执行。编译器将源代码转换为可执行文件&#xff0c;然后计算机执行该文件并输出相应的结果。了解这个过程可以帮助我们理解如何将代码转化…

5.PyCharm基础使用及快捷键

在前几篇文章中介绍了PyCharm的安装和汉化,本篇文章一起来看一下PyCharm的基本用法和一些快捷键的使用方法。 本篇文章PyCharm的版本为PyCharm2023.2 新建项目和运行 打开工具,在菜单中——文件——新建项目 选择项目的创建位置(注意最好不要使用中文路径和中文名项目名称…

C#在自动化领域的应用前景与潜力

人机界面&#xff08;HMI&#xff09;开发&#xff1a;使用C#开发人机界面软件&#xff0c;实现与自动化设备的交互和监控。C#的图形界面设计能力和丰富的控件库使得开发人员能够创建直观、易用的界面。 数据采集与处理&#xff1a;C#可以与各种传感器、设备进行数据通信和采集…

stable-diffusion 模型效果+prompt

摘自个人印象笔记&#xff0c;图不完整可查看原笔记&#xff1a;https://app.yinxiang.com/fx/55cda0c6-2af5-4d66-bd86-85da79c5574ePrompt运用规则及技巧 &#xff1a; 1. https://publicprompts.art/&#xff08;最适用于OpenArt 线上模型 https://openart.ai/&#xff09;…

PyTorch翻译官网教程-LANGUAGE MODELING WITH NN.TRANSFORMER AND TORCHTEXT

官网链接 Language Modeling with nn.Transformer and torchtext — PyTorch Tutorials 2.0.1cu117 documentation 使用 NN.TRANSFORMER 和 TORCHTEXT进行语言建模 这是一个关于训练模型使用nn.Transformer来预测序列中的下一个单词的教程。 PyTorch 1.2版本包含了一个基于论…