Java-数据库连接(JDBC小白教学)

!文章最后附有完整代码!

目录

🔖JDBC概述

🔖JDBC连接数据库

🔖添加数据(insert)

🔖修改数据(Update)

🔖删除数据(delete)

🔖查询数据(Select)

🔖关闭与数据库的链接通道

💡PreparedStatement和Statement 区别


🔖JDBC概述

 ⦁  JDBC全称Java DataBase Connection 即Java数据库连接

 ⦁  Java程序可以连接不同的数据库,但是,不同的数据库具体的连接细节有些不同,所以连接数据库的细节就需要由数据库的开发商去实现,而Java开发商只需设计出一系列连接数据库的接口规范即可,然后由不同的数据库开发商去实现。

2fe3802b565d4cbc924ef998cd04acec.png

//Java中提供一个连接数据库的接口规范   
interface oper{insert();delete();select();update();}
//oracle可以实现Java中提供的接口oracle implements oper{insert(){   }//在此接口中定义自己的功能 delete(){   } select(){   } update(){   }}//mysql也可以实现Java中提供的接口mysql implements oper{insert(){   }//定义属于mysql的功能delete(){   }select(){   }update(){   }}

🔖JDBC连接数据库

① 在项目添加  mysql-connector-java-8.0.16.jar  文件

    该文件是由mysql官方开发实现的,包含具体连接数据库的功能代码   

② 加载驱动类  Class.forName("com.mysql.cj.jdbc.Driver");

//加载驱动类
Class.forName("com.mysql.cj.jdbc.Driver");

③ 建立与数据库的连接,获得连接对象

//加载驱动类
Class.forName("com.mysql.cj.jdbc.Driver");//建立与数据库的连接,获得连接对象
String url="jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai";String user ="root";//账户String dbpassword="root";//密码Connection connection = DriverManager.getConnection(url, user, dbpassword);

🎉 就此,Java程序与数据库的连接就完成了,而我们所要连接的数据库名写在如下图的地方

     < 例如我连接的就是我的 test数据库 >
2e908b10eca745b3bf207ffcaac98731.png
 


🔖添加数据(insert)

 // //预先编译sql语句PreparedStatement ps = connection.prepareStatement("insert into score (id,name,subject,score)values (?,?,?,?)");ps.setObject(1,1 );ps.setObject(2, "小李");ps.setObject(3, "数学");ps.setObject(4, 88);ps.executeUpdate();  //用于执行查询语句 返回一个集合

 💡添加数据成功!

f4d58d2e13cd46f49326f2dd5dce8220.png

?占位符,表示此处需要接收一个参数

🔖修改数据(Update)

PreparedStatement ps = connection.prepareStatement("update score set score=? where id=?");
ps.setObject(1, 95);
ps.setObject(2, 1);
ps.executeUpdate();

 💡修改数据成功!

b7194828b64a4032a518f96cc0972f4a.png


🔖删除数据(delete)

PreparedStatement ps =  connection.prepareStatement("delete from score where id=?");
ps.setObject(1,1);
ps.executeUpdate();

💡删除数据成功!

ee4b7641a39643f4883aeb38c3335228.png


🔖查询数据(Select)

PreparedStatement ps =connection.prepareStatement("Select name,subject,score from score where id=?");ps.setObject(1, 2);ResultSet rs = ps.executeQuery();while (rs.next()){System.out.println( rs.getString("name"));System.out.println(rs.getString("subject"));System.out.println(rs.getString("score"));}

💡查询结果:

2528cfa0491d4318b4520368b389df66.pnga18585a71055496dbe3455cd354accdb.png


🔖关闭与数据库的链接通道

            //关闭数据库连接ps.close();connection.close();

💡PreparedStatement和Statement 区别

相同点: 都是向数据库发送sql

Statement:   将参数直接拼接到sql中,要拼接字符串,写起来麻烦,,安全性差,可以在参数中拼接 or 1=1进行攻击,删除表中所有数据

PreparedStatement : 先用 ?占位,然后通过setObject方法赋值,,写起来不用拼接字符串,,安全可靠,并且会在赋值时进行检测,可以防止sql注入攻击。

完整代码:

package chatproject;import java.sql.*;public class Demo {public static void main(String[] args) {try {//加载驱动类Class.forName("com.mysql.cj.jdbc.Driver");//建立与数据库的连接,获得连接对象String url="jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai";String user ="root";String dbpassword="root";Connection connection = DriverManager.getConnection(url, user, dbpassword);//发送sql//插入数据/*PreparedStatement ps = connection.prepareStatement("insert into score (id,name,subject,score)values (?,?,?,?)");ps.setObject(1,1 );ps.setObject(2, "小李");ps.setObject(3, "数学");ps.setObject(4, 88);ps.executeUpdate();  //用于执行查询语句 返回一个集合*///修改数据/* PreparedStatement ps = connection.prepareStatement("update score set score=? where id=?");ps.setObject(1, 95);ps.setObject(2, 1);ps.executeUpdate();*///删除数据/* PreparedStatement ps =  connection.prepareStatement("delete from score where id=?");ps.setObject(1,1);ps.executeUpdate();*///查询数据PreparedStatement ps =connection.prepareStatement("Select name,subject,score from score where id=?");ps.setObject(1, 2);ResultSet rs = ps.executeQuery();while (rs.next()){System.out.println( rs.getString("name"));System.out.println(rs.getString("subject"));System.out.println(rs.getString("score"));}//关闭数据库连接ps.close();connection.close();} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();}}
}

 ▐ 结语:

       希望这篇关于Java数据库连接方式的介绍能对大家有所帮助,欢迎大佬们留言或私信与我交流~~学海漫浩浩,我亦苦作舟!大家一起学习,一起进步!

本人微信: g2279605572


a6771da335744e72a4d4e585664c2409.png

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

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

相关文章

【千帆AppBuidler】零代码构建AI人工智能应用,全网都在喊话歌手谁能应战,一键AI制作歌手信息查询应用

欢迎来到《小5讲堂》 这是《千帆平台》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景创建应用平台地址随机生成快速创建应用头像应用名称应用描述…

VMware Workstation 17.5.2 Pro 发布,产品订阅模式首个重大变更

VMware Workstation 17.5.2 Pro 发布&#xff0c;产品订阅模式首个重大变更 基于 x86 的 Windows、Linux 桌面虚拟化软件 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-workstation-17/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页…

Python 全栈体系【四阶】(四十三)

第五章 深度学习 九、图像分割 3. 常用模型 3.4 DeepLab 系列 3.4.1 DeepLab v1(2015) 3.4.1.1 概述 图像分割和图像分类不一样&#xff0c;要对图像每个像素进行精确分类。在使用CNN对图像进行卷积、池化过程中&#xff0c;会导致特征图尺寸大幅度下降、分辨率降低&…

【java】异常与错误

Throwable包括Error和Expected。 Error Error错误是程序无法处理的&#xff0c;由JVM产生并抛出的。 举例&#xff1a;StackOverflowError \ ThreadDeath Expected Expected异常包括两类&#xff0c;即受检异常(非运行时异常)和非受检异常(运行时异常)&#xff0c;异常往往…

阿里云服务器下,部署LNMP环境安装wordpress

目录 1 LNMP部署1、简单说明2、nginx部署3、php8 安装4、mysql8安装5、配置 nginx 实现支持 PHP 程序6、安装 php 组件7、测试 2 wordpress部署1、安装2、配置 总结 1 LNMP部署 1、简单说明 首先需要明白&#xff0c;LNMP指的是Linux、Nginx、MySQL、PHP。而如果使用阿里云服…

数字化应用标杆 | 又两家成套厂效率翻倍,利用率高达93%以上!

利驰 联能 & 利驰 俊郎 近日&#xff0c;利驰数字科技&#xff08;苏州&#xff09;有限公司&#xff08;简称利驰软件&#xff09;成功与俊郎电气有限公司&#xff08;简称俊郎电气&#xff09;、浙江联能电气有限公司&#xff08;简称联能电气&#xff09;成功确立了数字…

【全开源】国际版JAVA同城服务美容美发到店服务上门服务系统源码支持Android+IOS+H5

国际版同城服务美容美发到店与上门服务系统&#xff1a;一站式打造美丽新体验 随着人们生活水平的提高和审美观念的升级&#xff0c;美容美发服务已成为人们日常生活中不可或缺的一部分。为了满足全球消费者的多样化需求&#xff0c;我们推出了“国际版同城服务美容美发到店与…

时间管理的误区:为什么你越高效就越没有时间?

在平衡生活和工作的过程中&#xff0c;时间管理无疑很重要。然而&#xff0c;许多人发现在提高效率后&#xff0c;却发现自己越来越感到时间紧迫&#xff0c;仿佛陷入了一个无解的循环。这背后的原因&#xff0c;往往是由于一系列时间管理的误区所致。 一个常见的误区是&…

鸿蒙 DevEcoStudio:关系型数据库增删改查练习

修改entry/src/main/ets/entryability目录下的EntryAbility.ts文件&#xff1a; 在 export default class EntryAbility extends UIAbility {onCreate(want, launchParam) {hilog.info(0x0000, testTag, %{public}s, Ability onCreate); 之后添加&#xff1a; const config…

学习Nginx(五):虚拟主机配置

核心功能 在演示虚拟主机配置之前&#xff0c;来看一下Nginx配置的核心功能说明。 了解配置更多功能&#xff0c;请查看官方说明&#xff1a; http://nginx.org/en/docs/ngx_core_module.html [rootRockyLinux9 conf]# cat nginx.conf # 核心功能&#xff0c;全局配置 # 设置启…

Linux 生态与工具

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 目录 Linux生态简介:Linux工具lrzsz&#xff…

智能仪表在铁塔行业的应用

应用场景 可应用于基站的交直流配电箱及对基站内的动力设备进行数据采集和控制。 功能 1.对多个回路进行全电参量测量&#xff0c;实现基站内各回路用电能耗的集中管理&#xff1b; 2.丰富的DI/DO输入输出&#xff0c;NTC测温&#xff0c;温湿度测量等非电参量监测&#xff…

分体工业读写器的适用场景有哪些?

工业读写器根据设计方式不同&#xff0c;可分为一体式读写器和分体式读写器&#xff0c;不同读写器特点不同&#xff0c;适用场景也不同&#xff0c;下面我们就一起来了解一下超高频分体读写器适用场景有哪些。 超高频分体读写器介绍 超高频分体读写器是一种射频识别(RFID)设…

Sass语法介绍-导入

11【Sass语法介绍-导入】 1.前言 在 CSS 中我们可以通过 import 来导入一个样式文件&#xff0c;Sass 扩展了 CSS 的 import 规则&#xff0c;使得可以导入 CSS 后缀的样式文件和 Scss 后缀的样式文件&#xff0c;并且提供了对 mixin 、函数和变量的访问。 与 CSS 的 import…

初识C语言——第二十天

do while ()循环 do 循环语句; while(表达式); 句式结构&#xff1a; 执行过程&#xff1a; do while循环的特点&#xff1a; 代码练习&#xff1a; 二分法算法&#xff1a; int main() {int arr[] { 0,1,2,3,4,5,6,7,8,9};int k 7;//查找数字7&#xff0c;在arr这个数组…

80%的产品经理被辞退不是因为能力,而是因为…

新手刚入门做产品经理&#xff0c;对产品经理的工作其实也是没有把握&#xff0c;这是对这份工作不够了解&#xff0c;不知道整个工作的流程&#xff0c;所以会感觉“没把握”&#xff0c;结果就是导致焦虑。 如果你硬着头皮做一遍&#xff0c;知道大概是怎么回事&#xff0c;…

Advanced RAG 07:在RAG系统中进行表格数据处理的新思路

编者按&#xff1a; 目前&#xff0c;检索增强生成&#xff08;RAG&#xff09;系统成为了将海量知识赋能于大模型的关键技术之一。然而,如何高效地处理半结构化和非结构化数据&#xff0c;尤其是文档中的表格数据&#xff0c;仍然是 RAG 系统面临的一大难题。 本文作者针对这一…

中国仓储物流装备产业链上最全产品资料大全(目前238家公司产品资料……)...

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 知识星球【智能仓储物流技术研习社】内已经收录了如下中国230多家仓储物流装备和技术相关产业链的公司的产品手册&#xff0c;请星球会员…

好文推荐:基于热红外的双源能量平衡(TSEB)模型--从植物到全球尺度的蒸散诊断简史

文献 近日&#xff0c;美国农业部农业研究服务局&#xff08;USDA-ARS&#xff09;的科学家们发表了一篇重要的研究论文——“Agricultural and Forest Meteorology” &#xff08;https://www.sciencedirect.com/journal/agricultural-and-forest-meteorology&#xff09;&…

智慧公厕系统:改变“上厕所”体验的科技革新

公共厕所是城市建设中不可或缺的基础设施&#xff0c;然而&#xff0c;由于较为落后的管理模式&#xff0c;会常常存在着管理不到位、脏乱差的问题。为了改善公厕的使用体验&#xff0c;智慧公厕系统应运而生&#xff0c;并逐渐成为智慧城市建设的重要组成部分。本文将以智慧公…