JDBC学习

ops/2024/9/20 1:27:04/ 标签: 学习

DriverManager(驱动管理类)

Drivermanager的作用有:

1.注册驱动;

2.获取数据库连接

Class.forName("com.mysql.cj.jdbc.Driver");

这一行的作用就是注册Mysql驱动(把我们下载的jar包加载到内存里去)

常用的方法

这个方法用于与数据库建立链接,参数分别是数据库的地址,用户名,用户的密码;

public static void getConnection() {try {// 注册驱动Class.forName("com.mysql.cj.jdbc.Driver");// 获取连接connection = DriverManager.getConnection(url, user, password);} catch (ClassNotFoundException e) {System.out.println("找不到MySQL驱动程序类!");e.printStackTrace();} catch (SQLException e) {System.out.println("获取数据库连接时出现错误!");e.printStackTrace();}
}

Connection(数据库连接对象)

Connection的作用:

1.获取执行SQL的对象

2.管理事务

常用的方法

Statement

Statement唯一的作用就是用来执行SQL语句,在使用是还有被恶意SQL注入的风险。

常用的方法

executeUpdate(sql):用来执行增、删和修改的操作;

executeQuery(sql):用来执行查询的操作,查询的结果借助ResultSet对象来访问;

import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import java.util.Scanner;public class DataBase {static final String url = "jdbc:mysql://localhost:3306/chat";static final String user = "root";static final String password = "123456";static Connection connection = null;// 获取数据库连接public static void getConnection() {try {// 注册驱动Class.forName("com.mysql.cj.jdbc.Driver");//增删查改  jdbc er图// 获取连接connection = DriverManager.getConnection(url, user, password);} catch (ClassNotFoundException e) {System.out.println("找不到MySQL驱动程序类!");e.printStackTrace();} catch (SQLException e) {System.out.println("获取数据库连接时出现错误!");e.printStackTrace();}}public static void main(String[] args) throws SQLException {getConnection();//add();//print();//change();//delete();connection.close();}public static void change() throws SQLException {Statement st = connection.createStatement();st.executeUpdate("UPDATE users SET username=7,password=8,nickname=9");st.close();}public static void print() throws SQLException {Statement st = connection.createStatement();ResultSet s = st.executeQuery("SELECT ID,USERNAME,PASSWORD,NICKNAME FROM USERS");while (s.next()) {int id = s.getInt("id");String username = s.getString("username");String password = s.getString("password");String nickname = s.getString("nickname");System.out.println("id:" + id + "\t" + "username:" + username + "\t" + "password:" + password + "\t" + "nickname:" + nickname);}st.close();s.close();}public static void add() throws SQLException {Statement st = connection.createStatement();st.executeUpdate("INSERT INTO users(id,username,password,nickname) VALUES(5,5,5,5)");st.close();}public static void delete() throws SQLException {Statement st = connection.createStatement();st.executeUpdate("DELETE FROM users WHERE ID=5");st.close();}
}

ResultSet(结果对象集)

ResultSet封装了查询语句的结果。

getXxx(参数):参数是你需要的数据表的字段

注意:要获取数据的时候要先调用next移动光标才能获取数据

PreparedStatement(预编译)

PreparedStatement是Statement的升级版作用是预编译SQL语句并执行,防止恶意的SQL注入;

使用方法:

1.获取PreparedStatement对象

2.设置参数值

3.执行SQL语句

public int Add(Connection connection) throws SQLException {if(Find(connection)==1){return 0;}PreparedStatement preparedStatement =connection.prepareStatement("INSERT INTO STUDENTS(ID,PASSWORD,MAIL,NICKNAME,NAME,IDENTITY) " +"VALUES (?,?,?,?,?,?)");preparedStatement.setString(1,getId());preparedStatement.setString(2,getPassword());preparedStatement.setString(3,getMail());preparedStatement.setString(4,getNickname());preparedStatement.setString(5,getName());preparedStatement.setInt(6,getIdentity());preparedStatement.executeUpdate();preparedStatement.close();return 1;
}

http://www.ppmy.cn/ops/7741.html

相关文章

实现 Android 设备屏幕录制的批处理脚本

在本文中,我们将介绍如何使用批处理脚本来实现在 Android 设备上进行屏幕录制,并将录制的视频文件传输到计算机上。这个脚本利用了 Windows 的批处理脚本和 Android 的 adb 工具。 背景 在进行 Android 应用开发、教学演示或问题排查时,我们…

毕业设计——基于ESP32的智能家居系统(语音识别、APP控制)

ESP32嵌入式单片机实战项目 一、功能演示二、项目介绍1、功能演示2、外设介绍 三、资料获取 一、功能演示 多种控制方式 ① 语音控制 ②APP控制 ③本地按键控制 ESP32嵌入式单片机实战项目演示 二、项目介绍 1、功能演示 这一个基于esp32c3的智能家居控制系统,能实…

使用51单片机控制T0和T1分别间隔1秒2秒亮灭逻辑

#include <reg51.h>sbit LED1 P1^0; // 设置LED1灯的接口 sbit LED2 P1^1; // 设置LED2灯的接口unsigned int cnt1 0; // 设置LED1灯的定时器溢出次数 unsigned int cnt2 0; // 设置LED2灯的定时器溢出次数// 定时器T0 void Init_Timer0() {TMOD | 0x01;; // 定时器…

三、Flask模型基础

ORM 创建模型 # exts.py&#xff1a;插件管理 # 扩展的第三方插件 # 1.导入第三方插件 from flask_sqlalchemy import SQLAlchemy # ORM插件 from flask_migrate import Migrate # 2. 初始化 db SQLAlchemy() # ORM migrate Migrate() # 数据迁移 # 3. 和app对象绑定 def…

Flink的安装、项目创建、任务打包和部署完整实现,任务实现使用JAVA语言

Flink资源下载地址 Flink安装包下载地址 一、本地模式安装Flink 1、在Linux服务上&#xff0c;创建flink文件夹 mkdir flink 2、上传文件并解压 tar -zxvf flink-1.14.6-bin-scala_2.11.tgz 解压完成后&#xff0c;如图&#xff1a; 3、启动Flink 进入到解压目录下&#x…

Css切换不同窗口

代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>Title</title></head><style>/*label {*//* display: block;*//*}*/* {padding: 0;margin: 0;}body {height: 100vh;backgroun…

设计模式之原型模式

1、简单介绍 原型模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;它通过复制现有的实例来创建新对象&#xff0c;而不是通过调用类的构造函数来创建新实例。这种模式适用于需要快速复制大量相同或相似对象&#xff0c;或者创建对象需要消耗大量…

【图论 单源最短路】100276. 最短路径中的边

本文时间知识点 单源最短路 图论知识汇总 LeetCode100276. 最短路径中的边 给你一个 n 个节点的无向带权图&#xff0c;节点编号为 0 到 n - 1 。图中总共有 m 条边&#xff0c;用二维数组 edges 表示&#xff0c;其中 edges[i] [ai, bi, wi] 表示节点 ai 和 bi 之间有一条…

前端nodead面试题

1.CSR和SSR分别是什么&#xff1f; CSR是客户端渲染&#xff0c;客户端访问网站时&#xff0c;服务器向客户端发送Html文档&#xff0c;让浏览器去渲染。其中像js,图片等还需要再次发请求。就是要啥给啥绝不多给。 缺点&#xff1a;不利于SEO&#xff0c;首次加载速度慢&…

Vue-router的动态路由:获取传递的值

Vue.js是一款流行的JavaScript框架&#xff0c;用于构建单页面应用程序。它提供了许多有用的功能&#xff0c;其中之一是Vue-router&#xff0c;它允许您轻松地管理应用程序的路由。Vue-router支持动态路由&#xff0c;这意味着您可以在路由中使用变量&#xff0c;并在组件中访…

Redis入门

1.初始Redis Redis是一种键值型的NoSql数据库&#xff0c;这里有两个关键字&#xff1a; 键值型 NoSql 其中键值型&#xff0c;是指Redis中存储的数据都是以key、value对的形式存储&#xff0c;而value的形式多种多样&#xff0c;可以是字符串、数值、甚至json&#xff1a;…

Excel数据处理:动态数据分析报表、单元格数字格式、使用排序工具

1、在生成数据透视表之后选中一个单元格&#xff0c;点击插入&#xff0c;在图表中选择一个自己想要的图表。&#xff08;生成可视化的图表&#xff09; 2、在分析中找到切片器&#xff0c;通过点击切片器可以即时变换生成不同的可视化图&#xff0c;可以右键切片器选择关联两个…

初始化Git仓库时应该运行哪个命令?

文章目录 初始化Git仓库时&#xff0c;你应该运行git init这个命令。这个命令的作用是在你当前所在的目录里创建一个新的Git仓库。这样&#xff0c;你就可以在这个目录里开始使用Git来管理你的文件了。 下面我给你举个详细的例子来说明一下&#xff1a; 首先&#xff0c;你需要…

【从浅学到熟知Linux】基础IO第一弹=>C语言文件操作接口、文件系统调用、文件描述符概念及分配规则

&#x1f3e0;关于专栏&#xff1a;Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。 &#x1f3af;每天努力一点点&#xff0c;技术变化看得见 文章目录 C语言文件接口回顾系统文件概念与接口文件基本概念系统接口openreadwritecloselseek 什么是当前路径 文件描…

Simba:Mamba 增强了 U-ShiftGCN,用于视频中的骨骼动作识别

Simba&#xff1a;Mamba 增强了 U-ShiftGCN&#xff0c;用于视频中的骨骼动作识别 摘要IntroductionRelated WorksMethodologyDown-sampling ShiftGCN Encoder Experiments & ResultsDatasets Simba: Mamba augmented U-ShiftGCN for Skeletal Action Recognition in Video…

大创项目推荐 深度学习+opencv+python实现车道线检测 - 自动驾驶

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV56 数据集处理7 模型训练8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &am…

搜索引擎中的倒排索引是什么

在搜索引擎领域&#xff0c;倒排索引是一种核心数据结构&#xff0c;它让搜索引擎能够以极高的效率找到包含用户查询关键词的所有网页。为了理解倒排索引的工作原理&#xff0c;我们可以将其与一种更直观、生活化的例子相比较&#xff1a;书店里的索引卡片系统。 假设你是一位…

AI安全之问:我们的智能助手真的安全吗?

在我们日益依赖人工智能来撰写文档、编写程序代码、甚至创作艺术作品的今天&#xff0c;我们是否曾经想过这些智能系统可能面临的被恶意操纵的风险&#xff1f; 分享几个网站 GPT-3.5研究测试&#xff1a; https://hujiaoai.cn GPT-4研究测试&#xff1a; https://higpt4.cn…

android学习笔记(三)

1、AndroidManifest.xml的解读&#xff1a; <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"><uses-p…

智能边缘计算采集网关助您远程调试SINAMICS S200伺服-天拓四方

您还在为每次调试都要去现场而烦恼吗&#xff1f;智能边缘计算采集网关助您远程调试SINAMICS S200伺服&#xff0c;让您足不出户&#xff0c;就能“运筹帷幄之中&#xff0c;决胜千里之外”。 新品介绍 SINAMICS S200 PN是西门子推出的新一代伺服驱动系统&#xff0c;采用Mot…