WEB基础--JDBC基础

JDBC简介

JDBC概述

数据库持久化介绍

jdbc是java做数据库持久化的规范,持久化(persistence):把数据保存到可掉电式存储设备(断电之后,数据还在,比如硬盘,U盘)中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以"固化"

常见的持久化

文本文件(通过记事本等输入文本保存,程序中很少使用),

XML(把数据存在XML,但是XML查找,删除,修改 也是比较麻烦),

数据库(把数据存在数据库,可以直接通过SQL取到,比较容易)

​    结论:持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中,只是比较麻烦。

​    要把数据保存到数据库\-\--通过JAVA代码去操作数据库(通过JDBC访问数据库)

为什么要使用JDBC

因为把要数据持久化,持久化数据的最好方式就是把数据保存到数据库,而Java要数据保存到数据到数据库,就需要使用JDBC

JDBC接口说明

JDBC详解

是一种用于执行SQL语句(DML,DDL,DQL)的Java API,可以为多种关系数据(oracle,mysql,SQL server)提供统一访问,**它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口**,使数据库开发人员能够编写数据库应用程序

如何使用JDBC:jdbc是java定义的进行数据库持久化的规范,java程序员直接调用java集成在rt.jar包中的接口,每个数据库厂商提供驱动jar包,我们如果要想操作对应的数据库。就导入对应的驱动,然后直接调用接口就OK

JDBC简单快速入门

IDEA连接数据库

点击右侧的Database,在弹出页面输入对应信息

点击Test Connection,进行相关文件的下载与安装

导入JDBC jar包

注意:一定要导入自身计算机所安装的MySQL数据库对应大版本的mysql jar包,不然会导致一系列问题。添加完成后,将jar包添加为库,并重构项目即可。

使用JDBC操作数据库

加载驱动
 Class.forName("com.mysql.cj.jdbc.Driver");
创立连接
String url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
String username="root";
String password="123456";
connection = DriverManager.getConnection(url,username,password);
获取要执行的SQL语句
  statement=connection.createStatement();String sql="DELETE from  product WHERE  id=21";
执行SQL语句
statement.execute(sql);
释放资源
statement.close();
connection.close();

运行结果:id为21的数据被删除

完整代码:

import java.sql.*;public class JDBC1 {public static void main(String[] args) throws Exception {Statement statement=null;Connection connection=null;try {//贾琏欲执事//1.加载JDBC连接Class.forName("com.mysql.cj.jdbc.Driver");//2.连接数据库String url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";String username="root";String password="123456";connection = DriverManager.getConnection(url,username,password);//3.获取SQL语句statement=connection.createStatement();String sql="DELETE from  product WHERE  id=21";//4.执行SQLstatement.execute(sql);}catch (Exception e){e.printStackTrace();}finally {//5.释放资源try {statement.close();}catch (SQLException e){e.printStackTrace();}try {connection.close();}catch (SQLException e){e.printStackTrace();}}}
}
写在最后

JDBC是JAVA操作数据的规范,现在基本都是以Mybatis为主,但Mybatis的底层仍然为JDBC。笔者之前面试的时候,被问到相关Mybatis的题目,都是偏底层JDBC为主。会了JDBC,Mybatis自然而然便会十分顺手。笔者小,中,大厂均有面试经历,每日分享JAVA全栈知识,希望能与大家共同进步。

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

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

相关文章

Jsoncpp介绍

1.简介 Jsoncpp 是一个 C 库,用于解析和生成 JSON 数据。它提供了一个易于使用的 DOM(Document Object Model)风格的 API,允许开发者以树形结构的方式操作 JSON 数据。 Jsoncpp 是一个C库,允许操作JSON值,…

头歌C语言课程实验(递归函数、嵌套函数)

第1关:递归求阶乘数列 任务描述 题目描述:用递归求Sn1!2!3!4!5!…n!之值,其中n是一个数字。 相关知识(略) 编程要求 请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。 输…

Spring Framework事件机制

Spring Boot自身并不直接提供一个内置的发布/订阅(Pub/Sub)消息模型实现,但是它通过集成Spring Framework的核心功能以及与外部消息中间件(如RabbitMQ、Kafka)的整合,间接支持了发布/订阅模式。Spring Fram…

AI Agent智能应用从0到1定制开发(wanjie)

AI Agent(人工智能体)是一种能够感知环境、进行决策和执行动作的智能实体。不同于传统的人工智能,AI Agent 具备通过独立思考、调用工具去逐步完成给定目标的能力。 「完结12章」AI Agent智能应用从0到1定制开发 AI Agent 和大模型的区别在…

前端每日基础day1

闭包(Closure)是指在函数内部创建的函数,它可以访问其外部函数作用域中声明的变量和参数,即使外部函数已经执行完毕,这些变量仍然可以被内部函数访问和操作。换句话说,闭包可以“记住”并访问其词法作用域&…

【管理咨询宝藏95】SRM采购平台建设内部培训方案

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏95】SRM采购平台建设内部培训方案 【格式】PDF版本 【关键词】SRM采购、制造型企业转型、数字化转型 【核心观点】 - 重点是建设一个适应战略采…

PDF转word转ppt软件

下载地址:PDF转word转ppt软件.zip 平时工作生活经常要用到PDF转word转ppt软件,电脑自带的又要开会员啥的很麻烦,现在分享这款软件直接激活就可以免费使用了,超级好用,喜欢的可以下载

C++类和对象(基础篇)

前言: 其实任何东西,只要你想学,没人能挡得住你,而且其实学的也很快。那么本篇开始学习类和对象(C的,由于作者有Java基础,可能有些东西过得很快)。 struct在C中的含义: …

PyTorch模型的保存加载

一、引言 我们今天来看一下模型的保存与加载~ 我们平时在神经网络的训练时间可能会很长,为了在每次使用模型时避免高代价的重复训练,我们就需要将模型序列化到磁盘中,使用的时候反序列化到内存中。 PyTorch提供了两种主要的方法来保存和加…

值模板参数Value Template Parameters

模板通常使用类型作为参数&#xff0c;但它们也可以使用值。使用类型和可选名称声明一个值模板参数&#xff0c;方式与声明函数参数类似。值模板参数仅限于可以指定编译时常量的类型是bool、char、int等&#xff0c;但不允许使用浮点类型、字符串字面值和类。 #include <io…

控制反转(IOC)和依赖注入(DI)

什么是IOC&#xff08;控制反转&#xff09;&#xff1f; IoC 的思想就是将原本在程序中手动创建对象的控制权&#xff0c;交由 Spring 框架来管理。 控制&#xff1a;指的是对象创建&#xff08;实例化、管理&#xff09;的权力 反转&#xff1a;控制权交给外部环境&#xf…

缓存雪崩、击穿、击穿

缓存雪崩&#xff1a; 就是大量数据在同一时间过期或者redis宕机时&#xff0c;这时候有大量的用户请求无法在redis中进行处理&#xff0c;而去直接访问数据库&#xff0c;从而导致数据库压力剧增&#xff0c;甚至有可能导致数据库宕机&#xff0c;从而引发的一些列连锁反应&a…

MATLAB 基于规则格网的点云抽稀方法(自定义实现)(65)

MATLAB 基于规则格网的点云抽稀方法(自定义实现)(65) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 海量点云的处理,需要提前进行抽稀预处理,相比MATLAB预先给出的抽稀方法,这里提供一种基于规则格网的自定义抽稀方法,步骤清晰,便于理解抽稀内涵, 主要涉及到使…

springboot整合rabbitmq的不同工作模式详解

前提是已经安装并启动了rabbitmq&#xff0c;并且项目已经引入rabbitmq&#xff0c;完成了配置。 不同模式所需参数不同&#xff0c;生产者可以根据参数不同使用重载的convertAndSend方法。而消费者均是直接监听某个队列。 不同的交换机是实现不同工作模式的关键组件.每种交换…

DCL 的学习

-- 创建用户 itcast , 只能够在当前主机localhost访问, 密码123456; create user itcastlocalhost identified by 123456; -- 创建用户 heima , 可以在任意主机访问该数据库, 密码123456 ; create user heima% identified by 123456; -- 修改用户 heima 的访问密码为 1234 ; a…

赶紧收藏!2024 年最常见 100道 Java 基础面试题(三十五)

上一篇地址&#xff1a;赶紧收藏&#xff01;2024 年最常见 100道 Java 基础面试题&#xff08;三十四&#xff09;-CSDN博客 六十九、spring mvc和struts的区别是什么&#xff1f; Spring MVC和Struts都是Java EE&#xff08;Java Enterprise Edition&#xff09;中流行的MV…

三层交换机与防火墙连通上网实验

防火墙是一种网络安全设备&#xff0c;用于监控和控制网络流量。它可以帮助防止未经授权的访问&#xff0c;保护网络免受攻击和恶意软件感染。防火墙可以根据预定义的规则过滤流量&#xff0c;例如允许或阻止特定IP地址或端口的流量。它也可以检测和阻止恶意软件、病毒和其他威…

20240508日记

今天工作内容&#xff1a; 1.二号机S3点位焊接测试&#xff0c;调整位置精度。 2.一号机送针位置调整 3.自定义焊接功能测试 4.EAP服务启动测试 明日计划&#xff1a; 1.EAP流程修改功能开发 1.1 Read Barcode Complete 事件&#xff0c;上传料盘码和设备ID&#xff0c;等EA…

SlowFast报错:ValueError: too many values to unpack (expected 4)

SlowFast报错&#xff1a;ValueError: too many values to unpack (expected 4) 报错细节 File "/home/user/yuanjinmin/SlowFast/tools/visualization.py", line 81, in run_visualizationfor inputs, labels, _, meta in tqdm.tqdm(vis_loader): ValueError: too …

牛客题-链表内区间反转

链表内区间反转 这是代码 typedef struct ListNode listnode; struct ListNode* reverseBetween(struct ListNode* head, int m, int n ) {if (head NULL) {return NULL;}listnode* findhead head;listnode* findtail head;listnode* prev NULL;int count1 m;int count2…