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

后端开发——jdbc的学习(一)

上篇结束了Mysql数据库的基本使用,本篇开始对JDBC进行学习总结,开始先简单介绍jdbc的基本使用,以及简单的练习;后续会继续更新!以下代码可以直接复制到idea中运行,便于理解和练习。

JDBC的概念
JDBC(Java DataBase Connectivity:java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它是由一组用Java语言编写的类和接口组成的。
JDBC的作用:可以通过java代码操作数据库
JDBC的本质
JDBC实质上是java官方提供的一套规范(接口)。用于帮助开发人员快速实现不同关系型数据库的连接!

代码一:

import com.mysql.cj.jdbc.Driver;
import java.sql.*;
//TODO 简单练习感受jdbc:
public class data_test1 {public static void main(String[] args) throws SQLException {//1.注册驱动:DriverManager.registerDriver(new Driver());//2.获取连接:(桥梁)// java程序需要和数据库建立连接; 需要调用getConnection方法,并且需要填入连接数据库的基本信息:数据库ip地址,数据库端口号;账号;密码;连接数据库的名称;//该方法第一个参数:url;第二个参数:username;第三个参数:password;Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/atguigudb", "root", "dir99");//3.创建statement(创建将sql语句传入mysql的载具)Statement statement=connection.createStatement();//4.发送sql语句,并且获取返回结果:String sql="select *from jobs;";ResultSet resultSet = statement.executeQuery(sql);//5.将结果进行解析://先看看有没有下一行数据,有就可以获取:while(resultSet.next()){String job_id = resultSet.getString("job_id");String job_title = resultSet.getString("job_title");int min_salary = resultSet.getInt("min_salary");int max_salary = resultSet.getInt("max_salary");System.out.println(job_id+"  "+job_title+"  "+min_salary+"  "+max_salary);}//6.关闭资源:resultSet.close();statement.close();connection.close();}
}

代码二:

import java.sql.*;
import java.util.Scanner;
//TODO 正式使用jdbc:
//查询对应的id号的数据,statement载具,有点缺陷:
public class data_test2 {public static void main(String[] args) throws Exception {//获取用户输入信息Scanner scan=new Scanner(System.in);System.out.println("请输入房间id号:");String department_id=scan.next();System.out.println("请输入位置id号:");String location_id=scan.next();//1.注册驱动://注意像之前那个方法,有问题:其实是注册了两次驱动,1.DriverManager.registerDriver()方法本身会注册一次;// 2.Driver.static{DriverManager.registerDriver()},在这个静态代码块中还会执行一次,因为只要类加载静态代码块就会执行;//解决:只想注册一次驱动:只触发静态代码块://对于触发静态代码块:类加载机制:类的加载时刻,会触发静态代码块;有三个步骤:加载(class文件->jvm虚拟机的class对象);连接(验证(检查文件类型)->准备(静态变量默认值)->解析(触发静态代码块));初始化(静态属性赋真实值)//触发类加载:new关键字;调用静态方法;调用静态属性;反射;子类触发父类;所以从这几种中选择一个最合适的;//此处可以选择反射来注册驱动;Class.forName("com.mysql.jdbc.Driver");//此处参数是字符串,后面可以在配置文件中写入然后解析到这里,更改比较方便灵活;//2.获取连接://对于getConnection方法来说有三种不同的方法(重载);// 传入的参数为:1.数据库软件所在的主机ip地址;2.数据库所在的主机的端口号;3.连接的具体库;4.连接的账号;5.连接的密码://一、对于三个参数的getConnection方法: 1.String url:数据库所在的信息:具体语法:jdbc:mysql://127.0.0.1:3306/atguigudb;// 2.String user数据库的账号:root;3.String password:数据库的密码:dir99;//二、对于两个参数的方法:1.Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/atguigudb","root","dir99");//3.创建发送sql语句的statement对象:statement可以发送sql语句到数据库,并且可以获得返回结果;Statement statement = connection.createStatement();//4.发送sql语句:(编写sql语句,发送sql语句):/*对于sql分类:DDL(容器创建,修改,删除)DML(插入、修改、删除)DQL(查询)DCL(权限控制)TPL(事务控制语言)有两种方法:返回值为int类型的:适合非DQL;1.情况一执行DML 返回影响的行数:例如:插入两条数据,返回值为2;删除三条数据,返回值为3;2.情况二非DML 返回值为0;返回值为ResultSet类型的,结果封装对象;适合DQL;也就是说查询调用Query非查询调用Update;*///下面这种sql语句拼接方式复杂,而且容易注入攻击,因此一般不用这种方法:data_test3中进行了更改,用新的方式:String sql="select * from departments where department_id='"+department_id+"'and location_id='"+location_id+"';";//int类型的方法:int i = statement.executeUpdate(sql);//对于查询语句,用返回值为ResultSet类型的;ResultSet resultSet=statement.executeQuery(sql);//5.查询结果集解析://获取数据解析,移动游标获取数据行,然后获取对应行的列数据即可;采用next()方法移动光标,返回类型为boolean类型;// 初始指向第一行数据之前,然后next一下指向下一行,如果有数据返回true,没有返回false;//移动光标之后需要获取对应行的列数据:resultSet.get类型(String columLable|int columIndex);columLable:列名,如果有别名,可以写别名;columIndex:列的下角坐标,从左向右,从1开始,注意和数组区别;while(resultSet.next()){int depart_id=resultSet.getInt(1);String name=resultSet.getString("department_name");int manager_id=resultSet.getInt("manager_id");int locat_id=resultSet.getInt(4);System.out.println(depart_id+"--"+name+"--"+manager_id+"--"+locat_id);}resultSet.close();statement.close();connection.close();}
}

相关文章:

后端开发——jdbc的学习(一)

上篇结束了Mysql数据库的基本使用,本篇开始对JDBC进行学习总结,开始先简单介绍jdbc的基本使用,以及简单的练习;后续会继续更新!以下代码可以直接复制到idea中运行,便于理解和练习。 JDBC的概念 JDBC&#…...

阿里云免费SSL证书时长只有3个月,应对方法来了

阿里云免费SSL证书签发有效期从12个月缩短至3个月:尊敬的用户,根据供应商变更要求,免费证书(默认证书)的签发有效期将由12个月缩短至3个月。 免费证书(升级证书)的有效期不会改变。 没错&#…...

Flutter 中使用 ICON

Flutter Icon URL : https://fonts.google.com/icons: 在Flutter中使用 Icon 步骤如下: 导入图标库 在Dart 文件中导入 material.dart 包,该包包含了 Flutter 的图标库。 import package:flutter/material.dart;使用图标组件 …...

百度编辑器常用设置

1、创建编辑器 UE.getEditor(editor, { initialFrameWidth:"100%" //初始化选项 }) 精简版 UE.getEditor(editor) 2、删除编辑器 UE.getEditor(editor).destroy(); 3、使编辑器获得焦点 UE.getEditor(editor).focus(); 4、获取编辑器内容 UE.getEditor(editor).getCo…...

Java ORM 框架 Mybatis详解

📖 内容 Mybatis 的前身就是 iBatis ,是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。本文以一个 Mybatis 完整示例为切入点,结合 Mybatis 底层源码分析,图文并茂的讲解 Mybatis 的核心工作机制。 …...

前端:html+css+js实现CSDN首页

提前说一下,只实现了部分片段哈!如下: 前端:htmlcssjs实现CSDN首页 1. 实现效果2. 需要了解的前端知识3. 固定定位的使用4. js 监听的使用4. 参考代码和运行结果 1. 实现效果 我的实现效果为: 原界面如下,网址为&…...

三种 SqlSession

三种 SqlSession ​SqlSession​ 是一个接口,并且里面包含了许多 CRUD 操作数据库等方法。 ​SqlSession​​ 它有三个实现类,分别是 SqlSessionManager​​ 、DefaultSqlSession​​ 和 SqlSessionTemplate​​,其中 DefaultSqlSession​​…...

Mybatis SQL构建器类 - 问题答案

问题 Java开发人员可能会碰到的最棘手的事情之一就是在Java代码中嵌入SQL语句。通常情况下,这是因为需要动态生成SQL语句 - 否则可以将其外部化到文件或存储过程中。正如你已经了解到的,MyBatis在其XML映射功能中有一个强大的解决方案来生成动态SQL。然…...

React 是什么?有什么特性?有哪些优势?

一、是什么 React,用于构建用户界面的 JavaScript 库,只提供了 UI 层面的解决方案 这句话的意思是,React 是一个专注于构建用户界面的 JavaScript 库,它主要关注于解决 UI 层面的问题。它并不是一个全功能的框架,而是…...

瑞吉外卖项目详细总结

文章目录 瑞吉外卖1.技术栈2.项目文件架构3.业务功能模块(例子)3.1管理员登录接口层(Controller)3.2管理员登录实现层(ServiceImpl)3.3管理员登录服务层(Service)3.4管理员登录Mapper层 4.公共模块4.1 BaseContext(保存…...

Cytoscape 3.10安装包下载及安装教程

Cytoscape3.10下载链接:https://docs.qq.com/doc/DUkpuR0RVU0JVWkFP 1、选中下载好的安装包,右键选择解压到“Cytoscape 3.10”文件夹 2、双击打开“Cytoscape_3_10_0_windows_64bit.exe” 3.点击“Download”,请耐心等待“Java”完成 4、点击…...

data.TensorDataset解析

data.TensorDataset 是 PyTorch 中的一个类,用于创建一个包含多个张量的数据集。这个类的主要作用是将输入的张量组合成一个数据集,使得在训练过程中可以方便地进行数据加载和迭代。 具体来说,TensorDataset 接受一系列的张量作为输入参数&a…...

贝锐花生壳全新功能:浏览器一键远程访问SSHRDP远程桌面

为了满足特定场景的远程访问需求,如:远程群晖NAS设备、远程SQL Server数据库/MySQL数据库、3389远程桌面(RDP远程桌面)、远程SSH、我的世界游戏联机…… 贝锐花生壳推出了场景映射服务,不仅提供满足相应场景的网络带宽…...

2024 年度 AAAI Fellows 揭晓!清华大学朱军教授入选!

今日,国际人工智能领域最权威的学术组织 AAAI 揭晓 2024 年度 Fellows 评选结果,新增 12 位 Fellow。 其中,清华大学计算机系教授朱军因「在机器学习理论与实践方面做出的重大贡献」而成功入选,成为本年度入选的唯一华人学者&…...

Linux(openssl):用CA证书签名具有SAN的CSR

Linux(openssl):创建CA证书,并用其对CSR进行签名_生成ca证书签名请求文件csr-CSDN博客 提供了方法为CSR进行签名。 对于有SAN的CSR如何签名呢? 1.创建CA证书,与下面的帖子一样...

从零开始了解大数据(七):总结

系列文章目录 从零开始了解大数据(一):数据分析入门篇-CSDN博客 从零开始了解大数据(二):Hadoop篇-CSDN博客 从零开始了解大数据(三):HDFS分布式文件系统篇-CSDN博客 从零开始了解大数据(四):MapReduce篇-CSDN博客 从零开始了解大…...

增量预训练经验积累(3)

站在巨人的肩膀上才能走的更远~本文主要是针对《千亿参数开源大模型 BLOOM 背后的技术》进行学习和提取关键经验。 1、BLOOM与Megatron-DeepSpeed 1.1 BLOOM训练细节 BLOOM 的模型架构与 GPT3 非常相似,只是增加了一些改进,176B BLOOM 模型的训练于 2022 年 3 月至 7 月期…...

R语言【CoordinateCleaner】——cc_dupl():根据物种名称和坐标以及用户定义的附加列删除或标记重复的记录

Package CoordinateCleaner version 2.0-20 Parameters cc_dupl(x,lon "decimallongitude",lat "decimallatitude",species "species",additions NULL,value "clean",verbose TRUE ) 参数【x】:data.frame。包含地…...

Hadoop安装笔记1单机/伪分布式配置_Hadoop3.1.3——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

将下发的ds_db01.sql数据库文件放置mysql中 12、编写Scala代码,使用Spark将MySQL的ds_db01库中表user_info的全量数据抽取到Hive的ods库中表user_info。字段名称、类型不变,同时添加静态分区,分区字段为etl_date,类型为String&am…...

python数据分析之交叉验证

python数据分析之交叉验证 1、常用的分类算法 有监督:SVM向量机、梯度提升、决策树(随机森林)、朴素贝叶斯、逻辑斯蒂回归、神经网络(cnn、rnn) 无监督:k-means、隐马尔可夫 2、数据分析过程 1、采集数据 2、数据预处理 3、特征选择 4、模型训练、评估、保存 5、模型…...

机器人技能学习--数据集剖析

文章目录 前言数据总览数据介绍actionsrobot0_eef_poserobot0_eef_quatstatesobject 参考资料 前言 一切为了能自己构建属于自己的数据集,所以,从现有数据集剖析入手。    目前,基于 MimicGen 官方提供的数据集,初始数据集有11组…...

Jenkins的Transfers路径怎么配置,解决Transfers配置不生效的问题

Transfers配置: 1.配置Source files: 要填写jar包的相对路径,从当前项目工作空间的根目录开始,看看我的工作空间你就懂了 !如图 我填的是 parent/build/libs/parent-1.0.0.jar,即不要 fdw1/ 的前缀 2.配置Remote directory: 远程目标文件夹,也就是你jar包要放到远程…...

php安装扩展event 提示 No package ‘openssl‘ found 解决方法

在使用pecl编译安装最新版event模块的时候提示 No package openssl found , 可是本机是安装了openssl的, 编译时找不到, 大概率就是环境配置的问题了, 增加 OPENSSL_CFLAGS OPENSSL_LIBS环境变量即可解决. 异常提示信息: checking for openssl > 1.0.2... no configure: …...

基于SpringBoot的动物领养平台的设计与实现

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的动物领养平台的设计与实…...

计算机网络期末复习——计算大题(一)

个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:V…...

2024年深度学习、计算机视觉与大模型面试题综述,六大专题数百道题目

DeepLearning-Interview-Awesome-2024 本项目涵盖了大模型(LLMs)专题、计算机视觉与感知算法专题、深度学习基础与框架专题、自动驾驶、智慧医疗等行业垂域专题、手撕项目代码专题、优异开源资源推荐专题共计6大专题模块。我们将持续整理汇总最新的面试题并详细解析这些题目&a…...

解读 $mash 通证 “Fair Launch” 规则,将公平发挥极致

Solmash 是 Solana 生态中由社区主导的铭文资产 LaunchPad 平台,该平台旨在为 Solana 原生铭文项目,以及通过其合作伙伴 SoBit 跨链桥桥接到 Solana 的 Bitcoin 生态铭文项目提供更广泛的启动机会。有了 Solmash,将会有更多的 Solana 生态的铭…...

06、docker 安装mysql8

Docker 安装 MySQL8 下载mysql8的镜像 docker pull mysql:8.0.32启动镜像 docker run -p 3307:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD123456 -d mysql:8.0.32配置挂载 创建挂载目录 mkdir -p /docker/mysql8.0.32/copy配置文件到创建的目录下 docker cp mysql:/etc/mysql…...

魔改Stable Diffusion,开源创新“单目深度估计”模型

单目深度估计一直是计算机视觉领域的难点。仅凭一张 RGB 图像,想要还原出场景的三维结构,在几何结构上非常不确定,必须依赖复杂的场景理解能力。 即便使用更强大的深度学习模型来实现,也面临算力需求高、图像数据注释量大、泛化能力弱等缺点。 为了解决这些难题&a…...

使用JAVA Zookeeper构建分布式键值存储

在这篇文章中,我将使用 JAVA 和网络套接字构建一个简单的分布式键值存储。 我将展示如何在具有多个分区和复制的集群中使用 Zookeeper 作为协调服务。 本系统中Zookeeper服务的功能如下: 维护从服务器到分区的映射,即哪些服务器属于分区“i”。这些数据还可用于推断哪些服务…...

404 重定向 wordpress/佛山网站开发公司

接口测试 概念 跨过前端,直接测试后端实现是否符合接口规范,主要是校验数据的交互、传递和控制管理过程, 以及相互逻辑依赖关系 作用 1.更精准的定位 BUG 2. 发现程序中的安全隐患 3. 提高测试效率(项目越复杂越明显) 接口测试的特点 测…...

企业手机网站程序是什么/设计公司网站设计

本文实例讲述了mysql数据库创建账号、授权、数据导出、导入操作。分享给大家供大家参考,具体如下:1、账号创建及授权grant all privileges on *.* to yangxin% identified by yangxin123456 with grant option;privileges:表示将所有权限授予…...

使用vue做的商城网站/电子商务网站建设方案

RealThinClient SDK是用于开发标准的HTTP(S)服务器,ISAPI扩展以及客户端的VCL控件。可用于Windows下的CodeGear Delphi 6-2010。关于RealThinClient SDK的教程会持续更新,本节是RealThinClient SDK的第二课,如何使用构建的服务器发送动态生成…...

代理注册公司需要什么条件/搜索引擎优化seo优惠

把info类下面所有的a标签链接后天加"#article"。 jQuery(document).ready(function($){   $(.info a).each(function(){     let Ahref $(this).attr("href") "#article";     $(this).attr("href",Ahref);   });});转载…...

设计网站国外网站/百度云搜索

快速启动终端: ctraltt终端字体放大: ctrshift终端字体缩小: ctr-ls: 查看当前目录的下文件信息pwd: 查看当前目录的路径touch: 创建文件mkdir: 创建文件夹rmdir: 删除空文件夹rm: 默认删除的是文件, -r表示以递归的方式删除文件夹里面的所有文件信息最后…...

广东省阳江网络问政平台/安徽关键词seo

前面几章早已讲到了科技公司与金融力量之间的关系,而当这个金融力量发生动乱的时候,这些科技公司又会发生什么?科技像是我们这个社会的大脑,而金融则是血液。发生金融危机时,就像人的血液出了问题,自然会对…...