JDBC学习

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.mzph.cn/diannao/1561.shtml

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

相关文章

【QT进阶】Qt http编程之用户登录注册功能实现

往期回顾 【QT进阶】Qt http编程之http与https简单介绍-CSDN博客 【QT进阶】Qt http编程之后端API测试工具postman使用介绍-CSDN博客 【QT进阶】Qt http编程之http相关类的简单介绍-CSDN博客 【QT进阶】Qt http编程之用户登录注册功能实现 一、最终效果展示 重点在逻辑实现&a…

6. DAX 时间函数-- DATE 日期--FIRSTDATE \LASTDATE\DATESMTD\DATESQTD\DATESYTD

函数名目的语法返回值FIRSTDATE 返回指定日期列在当前上下文中的第一个非空日期。FIRSTDATE ( <日期列> )表 包含具有日期值的单列和单行的表。LASTDATE返回指定日期列在当前上下文中的最后一个非空日期。LASTDATE ( <日期列> )表 包含具有日期值的单列和单行的表。…

为主机配置IP

第一种方法&#xff1a;nmcli #nmcli connection modify eth0 ipv4.method manual ipv4.addresses 172.25.254.100/24 ipv4.gateway 172.25.254.2 ipv4.dns 114.114.114.114 autoconnect yes #nmcli c up etho //激活网卡命令&#xff08;网卡早就配好&#xff0c;只是修改i…

详解JVM类加载

从类被加载到虚拟机内存中开始&#xff0c;到释放内存总共有7个步骤&#xff1a;加载&#xff08;Loading&#xff09;、验证&#xff08;Verification&#xff09;、准备&#xff08;Preparation&#xff09;、解析&#xff08;Resolution&#xff09;、初始化&#xff08;Ini…

golang学习笔记(net/http库基本使用)

关于net/http库 我们先看看标准库net/http如何处理一个请求。 import ("fmt""log""net/http" )var count 0func main() {http.HandleFunc("/", handler)http.HandleFunc("/count", counter)log.Fatal(http.ListenAndServ…

cd /op-bash: 无法为立即文档创建临时文件: 设备上没有空间

问题 在shell输入命令按tab键时出现以下报错 (base) [link999hadoop102 ~]$ cd /op-bash: 无法为立即文档创建临时文件: 设备上没有空间 -bash: cd: /op: 没有那个文件或目录原因分析 磁盘空间不够 df -Th # 通过命令查看具体情况解决 1、清理大文件 进入到 容量-已用 使…

使用easyexcel将csv转为excel

一.背景 供应商系统下载的csv文件不支持域控&#xff08;主要是第三方wps服务不能对csv文件加密&#xff0c;但是可以对office系列产品进行权限访问的加密控制&#xff09;。因此思路就改为现将csv文件转为excel文件&#xff0c;然后对excel文件进行加域控制。本文主要介绍如何…

12.Hexo helpers类似函数和data folder数据文件夹

helper Hexo里的helper&#xff0c;或者说是函数 基本上就是小函数&#xff0c;可以在layout布局中使用&#xff0c;可以允许做一些事情 如字符串操作、检查true或false、检查是否在一个页面上、打印出某个页面中的日期或时间特定格式 打开index.ejs trim 可以通过 <%…

向量数据库的崛起:如何改变数据存储与机器学习的未来

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

ExpertPrompting:指导大语言模型成为杰出专家

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 论文标题&#xff1a;ExpertPrompting: Instructing Large Language Models to be Distinguished Experts 论文地址&#xff1a;https://arxiv.org/abs/2305.14688 作者 & 机构&#xff1a;Benfen…

Linux嵌入式驱动开发-阻塞IO与非阻塞IO

文章目录 阻塞与非阻塞访问简介阻塞访问的实现等待队列等待队列头等待队列项从等待队列头添加/移除等待队列项等待唤醒等待事件API 非阻塞访问的实现轮询poll 函数原型可以返回的资源状态 阻塞与非阻塞访问简介 **IO&#xff1a;**Input/Output&#xff0c;也就是输入/输出&am…

Mysql学习大纲

文章目录 整体大纲总结 整体大纲 大纲 MySQL在金融互联网行业的企业级安装部署mysql启动关闭原理和实战&#xff0c;及常见错误排查 花钱9.9 订阅了专栏MySQL字符集和校对规则史上最详细的Mysql用户权原理和实战&#xff0c;生产案例InnoDB引擎原理和实战&#xff0c;通俗易懂…

IoT、IIoT、AIoT的区别是什么?

一、IoT、IIoT、AIoT的区别是什么&#xff1f; IoT、IIoT和AIoT都是物联网&#xff08;Internet of Things&#xff09;的不同应用和发展方向&#xff0c;但它们之间存在一些区别。 IoT&#xff08;物联网&#xff09;&#xff1a;物联网是指通过互联网连接各种物理设备&#x…

【Linux】小知识点温习---命令

许多常见命令会用&#xff0c;但是很少注意他们的区别&#xff1b;亦或在学习中使用较少&#xff0c;容易忘记&#xff0c;今天做一个回顾。 ls系列 -a:显示所有文件&#xff08;包括隐藏文件&#xff09; -l:将文件以竖列形式显示 -i&#xff1a;显示文件的inode编号 pwd 显…

MacOS 文件系统种类及介绍

MacOS 文件系统种类 详细介绍 详细介绍 从图片中我们可以看到一个文件系统选择器的界面&#xff0c;列出了多种不同的文件系统选项。这些文件系统各有其特点和用途&#xff0c;以下是它们之间的主要区别&#xff1a; APFS&#xff1a;Apple File System&#xff0c;是苹果公司为…

车载电子电器架构 —— 功能安全开发(首篇)

车载电子电器架构 —— 功能安全开发 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己…

江西智博环境| 邀您参加2024全国水科技大会暨技术装备成果展览会

展位号&#xff1a;A28 企业介绍 江西智博环境技术有限公司始创于2008年初&#xff0c;总部位于江西省域副中心城市-赣州。公司主要从事一体化净水设备、单村供站、泵船、无负压供水设备自动化控制系统、低配电系统、工艺设备及智慧水务的设计研发、生产、销售、安装、调试等业…

WordPress SQLite Docker 镜像封装细节

为了让大家用的放心&#xff0c;同时解答 GitHub 社区中的疑问。这篇文章聊聊上一篇文章的 Docker 容器封装细节。 写在前面 在前一篇文章《WordPress 告别 MySQL&#xff1a;Docker SQLite WordPress》中&#xff0c;如果你跟着文章实践&#xff0c;大概三分钟就能够启动一个…

【批量区域识别内容重命名】批量识别图片区域文字并重命名,批量图片部分识别内容重命文件,PDF区域识别提取重命名

我们在工作和生活中经常遇到这样的需求&#xff1a;比如将以下的图片区域识别进行重命名&#xff0c;批量识别后改成以时间和工作内容重命名&#xff0c;便于日后检索&#xff0c;快速查询 首先我们拍摄照片用到的是水印相机&#xff0c;这里的文字呢我们需要加个背景&#xff…

华为机考入门python3--(16)牛客16-购物单最大满意度

分类&#xff1a;动态规划&#xff0c;组合&#xff0c;最大值&#xff0c;装箱问题 知识点&#xff1a; 生成递减数 100, 90, 80, ..., 0 range(100, -1, -10) 访问列表的下标key for key, value in enumerate(my_list): 动态规划-捆绑装箱问题 a. 把有捆绑约束的物…