【web】JDBC
项目连接数据库
右侧导航栏找到databsae

如果没有驱动,先下载驱动

填写数据库用户名密码

勾选对应的表即可

JDBC代码流程
1,配置信息
2,加载驱动 从MySQL Connector/J 5.1版本开始,推荐使用com.mysql.cj.jdbc.Driver这个新的驱动类。
3,链接数据库
4,向数据库发送SQL的对象statement:CURD
5,编写sql
6,执行查询SQL,返回一个ResultSet 结果集
7,关闭链接,释放资源 一定要做,先开的后关
代码流程如下:
public class TestIdbc {public static void main(String[] args) throws ClassNotFoundException, SQLException {//配置信息//useUnicode=ture&characterEncoding=utf-8解决中文乱码问题String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=ture&characterEncoding=utf-8";String username="root";String password="123456";//1,加载驱动 从MySQL Connector/J 5.1版本开始,推荐使用com.mysql.cj.jdbc.Driver这个新的驱动类。Class.forName("com.mysql.cj.jdbc.Driver");//2,链接数据库Connection cnno= DriverManager.getConnection(url,username,password);//3,向数据库发送SQL的对象statement:CURDStatement sta=cnno.createStatement();//4,编写sqlString sql="select * from user";//5,执行查询SQL,返回一个ResultSet 结果集ResultSet rs=sta.executeQuery(sql);//4,编写sql// String sql="update user set name='张三' where id=1";//5,执行查询SQL,返回一个int 修改的数据条数// int rs=sta.executeUpdate(sql);while (rs.next()){System.out.println("id="+rs.getObject("id"));System.out.println("name="+rs.getObject("name"));System.out.println("password="+rs.getObject("password"));System.out.println("age="+rs.getObject("age"));System.out.println("address="+rs.getObject("address"));}//6,关闭链接,释放资源 一定要做,先开的后关rs.close();sta.close();cnno.close();}
预编译sql
public class TestIdbc2 {public static void main(String[] args) throws ClassNotFoundException, SQLException {//配置信息//useUnicode=ture&characterEncoding=utf-8解决中文乱码问题String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=ture&characterEncoding=utf-8";String username="root";String password="123456";//1,加载驱动 从MySQL Connector/J 5.1版本开始,推荐使用com.mysql.cj.jdbc.Driver这个新的驱动类。Class.forName("com.mysql.cj.jdbc.Driver");//2,链接数据库Connection cnno= DriverManager.getConnection(url,username,password);//3,编写sqlString sql="insert into user(id,name,password,address,age,eamil) values (?,?,?,?,?,?)";//4,预编译PreparedStatement preparedStatement= cnno.prepareStatement(sql);preparedStatement.setInt(1,3);//给第一个占位符?的赋值为1preparedStatement.setString(2,"我们");//给第二一个占位符?的赋值为1preparedStatement.setString(3,"12345");preparedStatement.setString(4,"成都");preparedStatement.setString(5,"18");preparedStatement.setString(6,"11.qq.com");//5,执行sqlint i=preparedStatement.executeUpdate();if(i > 0){System.out.println("成功");}//6,关闭链接,释放资源 一定要做,先开的后关preparedStatement.close();cnno.close();}
}
JDBC事务
ACID原则:保证数据的安全性,要么都成功,要么都不成功
开启事务 start transaction;
事务提交 commit()
事务回滚 rollback()
关闭事务
单元测试依赖junit
<!--单元测试 方法上加@Test即可运行测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency>
事务案例
public class TestIdbc3 {public static void main(String[] args){//配置信息//useUnicode=ture&characterEncoding=utf-8解决中文乱码问题String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=ture&characterEncoding=utf-8";String username="root";String password="123456";Connection cnno = null;try {//1,加载驱动 从MySQL Connector/J 5.1版本开始,推荐使用com.mysql.cj.jdbc.Driver这个新的驱动类。Class.forName("com.mysql.cj.jdbc.Driver");//2,链接数据库cnno= DriverManager.getConnection(url,username,password);//通知数据库开启是事务cnno.setAutoCommit(false);//3,编写sqlString sql="update account set money = money-100 where name='A'";// 执行sqlcnno.prepareStatement(sql).executeUpdate();//制造错误int i=1/0;String sql2="update account set money = money+100 where name='B'";// 执行sqlcnno.prepareStatement(sql2).executeUpdate();cnno.commit();} catch (Exception e) {try {//如果出现异常,通知数据库回滚cnno.rollback();} catch (SQLException throwables) {throwables.printStackTrace();}e.printStackTrace();}finally {//6,关闭链接,释放资源 一定要做,先开的后关try {cnno.close();} catch (SQLException throwables) {throwables.printStackTrace();}}}
}
相关文章:
【web】JDBC
项目连接数据库 右侧导航栏找到databsae 如果没有驱动,先下载驱动 填写数据库用户名密码 勾选对应的表即可 JDBC代码流程 1,配置信息 2,加载驱动 从MySQL Connector/J 5.1版本开始,推荐使用com.mysql.cj.jdbc.Driver这个新的驱动类。 3,链接数据库…...
MATLAB代码介绍:一段轨迹的指纹定位,KNN,三维,四个锚点(附源代码,可复制粘贴)
文章目录 产品介绍:三维指纹定位 KNN MATLAB 模型概述源代码运行结果功能亮点代码结构应用场景结论产品介绍:三维指纹定位 KNN MATLAB 模型 概述 本 MATLAB 代码实现了一种基于 KNN(K-Nearest Neighbors)算法的三维指纹定位系统,利用四个基站(锚点)信号强度进行移动终…...
XML Schema 复合空元素
XML Schema 复合空元素 XML Schema 是一种用于定义 XML 文档结构和内容的语言。在 XML Schema 中,元素可以被定义为简单类型或复杂类型。简单类型元素不能包含其他元素或属性,而复杂类型元素可以包含其他元素、属性或两者都有。复合空元素是一种特殊类型…...
Java面向对象编程基础(二)
Java面向对象编程基础二 一、package与import关键字的使用1.说明2.包的作用3.JDK中主要的包4. import5.import关键字的使用 二、封装性1.为什么要封装?2.如何封装?3.作用4.权限修饰符的权限大小5.案例 三、构造器1 构造器的使用说明2 案例: 四、实例变量赋值过程1 …...
[PHP]重复的Notice错误信息
<?php $a []; var_dump($a[name]);执行结果: 原因: display_errors和error_reporting都打开了Notice错误信息...
2024年第四届“网鼎杯”网络安全大赛-赛前模拟训练
文章目录 网络安全(WEB)签到题WEB01WEB02 二进制漏洞安全(PWN)PWN01潜在的安全漏洞分析攻击步骤exp 逆向工程(REVERSE)REVERSE01代码分析重构密码 密码学(CRYPTO)CRYPTO01CRYPTO02 杂…...
AI金融攻防赛:YOLO理论学习及赛题进阶思路(DataWhale组队学习)
引言 大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月学习赛的AI金融攻防赛学习总结文档。本文主要讲解如何在金融场景凭证篡改检测中应用YOLO算法。我们将从模型概述、数据准备、训练流程以及模…...
Spring Security 基础配置详解(附Demo)
目录 前言1. 基本知识2. Demo3. 实战 前言 基本的Java知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新) 1. 基本知识 HttpSecurity 是 Spri…...
代码随想录打卡Day1
文章目录 day011 数组理论基础2 二分查找法3 移除元素4 平方数 day01 Java JDK是17.0.11 1 数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 数组下标都是从0开始的。 数组内存空间的地址是连续的。 因为数组在内存空间的地址是连续的,所以我们…...
Vue快速创建工程+Element Plus
创建Vue工程 执行命令 npm init vuelatest 执行这两个绿色的命令 执行这个命令启动 npm run dev Element 打开网站https://element-plus.org/zh-CN/ npm install element-plus --save 然后在vscode中打开你的项目工程 // main.ts import { createApp } from vue import Ele…...
汽车管理系统——主界面制作
目录 主界面需要有什么?然后要做什么?添加两个主菜单(声明)下一步应该干什么?能够跳转到文件有哪几个动作?动作如何声明?为什么用选择声明指针,不选择直接声明这个对象? …...
C++ 右值引用深入理解:特性、优化与底层
目录 一、左右值的概念及右值的种类 二、左值引用与右值引用 左值引用给右值取别名: 右值引用给左值取别名: 三、引用的意义及左值引用的场景 四、移动构造: 右值引用在底层里的实现: 一、左右值的概念及右值的种类 在 C …...
C# 文件操作
文章目录 文件系统FileInfo和DirectoryInfo类完成一个文件的拷贝判断一个文件是否存在FileInfo和DirectoryInfo的属性列表FileInfo和DirectoryInfo的方法列表读写文件文件系统 下面的类用于浏览文件系统和执行操作,比如移动,复制和删除文件。 System.MarshalByRefObject 这个…...
FFmpeg 4.3 音视频-多路H265监控录放C++开发三 :安装QT5.14.2, 并将QT集成 到 VS2019中。
一,安装QT, 重点:在安装QT的时候要安装msvc201x版本的组件, 二 , 安装 qt-vs-tools Index of /development_releases/vsaddin/2.8.1 三,需要安装过 windows10 SDK,一般我们在安装vs2019的时候就…...
Linux 累加计算递归算法汇编实现
1...n可以使用公式计算,同时也是递归实现的很好例子,其c实现代码为 int f(int i) {i && (if(i-1));return i; } 其终止条件为0,此时i && (if(i-1))表达式不成立,不计算if(i-1)直接返回0&…...
明日周刊-第23期
十月已过半,气温也转凉了,大家注意保温哦。冬吃萝卜,夏吃姜,在快要到来的冬季大家可以选择多吃点萝卜。 配图是本周末去商场抓娃娃的时候拍的照片,现在抓娃娃单次普遍都控制在1块钱以下了,还记得多年前的抓…...
kubernets(二)
集群操作 查看集群信息 kubectl get查看各组件信息 格式:kubectl get 资源类型 【资源名】 【选项】 events #查看集群中的所有日志信息 -o wide # 显示资源详细信息,包括节点、地址... -o yaml/json #将当前资源对象输出至 yaml/json 格式文…...
《YOLO 标注工具全览》
《YOLO 标注工具全览》 一、YOLO 标注工具的重要性二、常见的 YOLO 标注工具介绍(一)LabelImg(二)Yolo_Label(三)在线标注工具 Make Sense(四)Ybat - YOLO BBox Annotation Tool&…...
财富思维学习
四大象限: 人类财富创造史经历的五个阶段: 1、黄色(土地)财务阶段:拥有土地和劳动力是财富的要求 2、蓝色(海)财富阶段:谁拥有贸易的通道谁就拥有财富(如港口ÿ…...
python爬虫加解密分析及实现
第一种: 1、找到加密的接口地址,通过加密的接口地址全局搜索 2、通过打断点的方式,操作页面,跑到断点处时,即可找到加密串,如图二; 3、找到用的是哪种加密方式,如: cr…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
