Java用JDBC链接mysql

news2024/11/23 20:15:06

一、什么是JDBC:

       是Java平台上的标准数据库访问技术。它提供了一套API(应用程序编程接口),允许Java应用程序与各种类型的数据库进行交互,包括关系型数据库(如MySQL、Oracle、SQL Server等)和非关系型数据库(NoSQL)。JDBC为开发者提供了一个统一的接口、使得他们能够编写一次数据库代码,而无需针对不同数据库做特别修改就能在多种数据库系统上运行。

二、JDBC包括什么:

1. DriverManager:这是一个类,用于加载JDBC驱动程序并建立与数据库的连接。它提供了获取数据库连接的方法,如`getConnection()`。

2. Connection:这是一个接口,代表与数据库的连接。通过这个接口,你可以创建`Statement`、`PreparedStatement`或`CallableStatement`对象,这些对象用于执行SQL语句。

3. Statement:这是一个接口,用于发送SQL语句到数据库并接收结果。它有几种类型,包括:
   - `Statement`:用于执行简单的SQL语句。
   - `PreparedStatement`:用于执行预编译的SQL语句,可以防止SQL注入并提高性能。
   - `CallableStatement`:用于执行存储过程或函数调用。

4. ResultSet:这是一个接口,用于表示从数据库检索出来的结果集。你可以遍历这个结果集来获取查询结果的每一行数据。

5. SQLException:这是一个异常类,用于表示任何与数据库相关的错误。

 三、应用实例:

 1、查:

 public void cha() throws ClassNotFoundException, SQLException {
        //加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //获取链接
        Connection root = DriverManager.getConnection("jdbc:mysql://localhost:3306/lianxi?useSSL=false&serverTimezone=UTC", "root", "123456");
       // System.out.println(root);
        //实现功能
       // String sql="select * from courses ";
        //创建将sql语句应用到数据库的对象
       // Statement statement = root.createStatement();
        //执行语句得到结果
        ResultSet resultSet = root.createStatement().executeQuery("select * from courses ");
       //通过next指向结果
        while(resultSet.next()){
            System.out.println(resultSet.getString("cno")+resultSet.getString("cname")+resultSet.getInt("tno"));
        }
        //关闭资源
        root.createStatement().close();
        root.close();
    }

核心代码讲解:

结果输出:

2、删:

  public void shanchu() throws ClassNotFoundException, SQLException {
        //加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //获取链接
        Connection root = DriverManager.getConnection("jdbc:mysql://localhost:3306/lianxi?useSSL=false&serverTimezone=UTC", "root", "123456");
        //实现功能
        //执行语句得到结果
        int resultSet = root.createStatement().executeUpdate("DELETE FROM courses WHERE tno=555;");
        //通过next指向结果
        System.out.println(resultSet);//如果删除成功就显示为1
        //关闭资源
        root.createStatement().close();
        root.close();
    }
executeUpdate()是在除查找外用到的方法;

 

输出结果: 

这是删除失败的,成功的话为1

3、改 :

 public void update() throws ClassNotFoundException, SQLException {
        //加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //获取链接
        Connection root = DriverManager.getConnection("jdbc:mysql://localhost:3306/lianxi?useSSL=false&serverTimezone=UTC", "root", "123456");
        //实现功能
        //执行语句得到结果
        int resultSet = root.createStatement().executeUpdate("UPDATE courses SET cno='7-654', cname='计算机编程',tno=452 WHERE cno='-647' ;");
        //通过next指向结果
        System.out.println(resultSet);
        //关闭资源
        root.createStatement().close();
        root.close();

输出结果: 

如果失败就为0

4、增: 

 public void insert() throws ClassNotFoundException, SQLException {
        //加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //获取链接
        Connection root = DriverManager.getConnection("jdbc:mysql://localhost:3306/lianxi?useSSL=false&serverTimezone=UTC", "root", "123456");
       int resultSet = root.createStatement().executeUpdate("insert into courses value ('5-111','计算机',555)");
        //通过next指向结果
        System.out.println(resultSet);
        //关闭资源
        root.createStatement().close();
        root.close();
    }

结果输出: 

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

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

相关文章

MBR30200PT-ASEMI智能AI应用MBR30200PT

编辑:ll MBR30200PT-ASEMI智能AI应用MBR30200PT 型号:MBR30200PT 品牌:ASEMI 封装:TO-247 批号:最新 恢复时间:35ns 最大平均正向电流(IF):30A 最大循环峰值反向…

中国最受欢迎的起名大师国学泰斗颜廷利:世界公认的伟大思想家

物质构成了文化的根基,而精神则象征着文明的光辉。汉字文化和汉语言文明,作为历经数千年而不衰的宝贵遗产,巧妙地平衡了综合性与创新性、继承性与变革性、民族性与时代性的关系,确保了中国文化在传承中既保持了一贯的学术传统、道…

最新付费进群修复版本站亲测试

PHP必需7.2 sg11扩展 tp伪静态 *数据库修改地址:config/database.php 导入数据库 关闭防跨站 *编辑数据库找到qing_config表,更改网站域名codenet.cc改为自己的域名 后台账号18888888888 密码123456 分销后台:域名fenxiao.php 分站后台&am…

80万开一家零食店,每日1万营业额还亏本

在探讨以80万资金投资开设一家零食店的决策时,我们不得不深入剖析这一商业行为的多个层面,以更全面的视角审视其盈利潜力与潜在风险。 首先,提及的这家拥有千余家门店的零食连锁品牌,其招商宣传中的高存活率固然诱人,…

什么软件修复视频画质比较好,视频画质修复工具

有些视频中可能会出现噪点、残影、颜色失真等问题,导致观看时体验感不太好,修复视频画质可以去除这些问题,使视频更加干净、清晰和真实。 高质量的视频画质能够提高观众的观看体验,让观众更加享受观看视频的过程。特别是在需要展示…

线上观看 3 万+!「智能运维MeetUp」精彩回顾,探讨智能体构建新方向

龙蜥社区“走进系列”第 11 期走进中兴通讯-智能可观测运维技术 MeetUp 于成都圆满结束,由中兴通讯联合龙蜥社区系统运维联盟(SOMA)(以下简称“联盟”)共同举办。本次活动现场汇聚了阿里云、谐云科技、乘云数字、中兴通…

vue快速上手——创建vue项目,vue基本使用方式,路由vue-Router,转态管理vuex

文章目录 1.创建vue项目使用Vue CLI创建前端工程:1.方式一:vue create 项目名称2.方式二:vue ui 运行vue项目什么是node.jsnode.js和vue项目的关系 2.vue基本使用方式1.vue组件组成部分:脚本部分的组件选项:示例&#…

普通人还有必要学习 Python 之类的编程语言吗?

在开始前分享一些编程的资料需要的同学评论888即可拿走 是我根据网友给的问题精心整理的对于编程的重要性,这里就不详谈了。 未来,我们和机器的交流会越来越多,编程可以简单看作是和机器对话并分发给机器任务。机器不仅越来越强大&#xff0…

windows实现自动化按键

1.选择目标窗口 获取窗口句柄 void KeyPresser::selectWindow() {SetWinEventHook(EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_FOREGROUND, NULL, WinEventProc, 0, 0, WINEVENT_OUTOFCONTEXT);selectedWindowLabel->setText("请点击目标窗口..."); }void CALLBACK …

直接卖断货了!百元价位现象级蓝牙耳机西圣AVA2究竟有什么亮点

今年五月,目前国内知名耳机品牌xisem西圣全新推出了——西圣AVA2真无线蓝牙耳机,产品一经上市就凭借其奢华的配置性能和超高的性价比迅速获得了消费者的追捧,甚至已出现一机难求的情况,目前西圣品牌称,西圣AVA2现阶段已…

Python机器学习、深度学习技术提升气象、海洋、水文领域实践技术

Python是功能强大、免费、开源,实现面向对象的编程语言,能够在不同操作系统和平台使用,简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库,还有丰富的第三方库,Python在数据处理、科学计算、数学建模、数据挖…

2024黑马AI+若依框架项目开发 个人心得、踩坑和bug记录 全网最快最全 基础功能认识篇

2024黑马AI若依框架项目开发 个人心得、踩坑和bug记录 全网最快最全 基础功能认识篇 你好,我是Qiuner. 为帮助别人少走弯路和记录自己编程学习过程而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​ gitee https://gitee.com/Qiuner 🌹 如果本篇文章帮到…

【中项第三版】系统集成项目管理工程师 | 第 5 章 软件工程① | 5.1 - 5.3

前言 第5章对应的内容选择题和案例分析都会进行考查,这一章节属于技术的内容,学习要以教材为准。 目录 5.1 软件工程定义 5.2 软件需求 5.2.1 需求的层次 5.2.2 质量功能部署 5.2.3 需求获取 5.2.4 需求分析 5.2.5 需求规格说明书 5.2.6 需求变…

Java简易图书管理系统

实体类beans book package com.hwq.beans;//实体类 public class Book {private int id;private String name;private String author;private int number;private boolean isBorrowed;//是否被借出public Book() {}public Book(int id, String name, String author, int numb…

MySQL-事务、日志

事务 特性 原子性 是指事务开始后,必须成功执行完所有的操作才会结束,否则会回滚到事务刚开始前。 拿转账来说,一个成功的 A向B转账100元的过程 会涉及如下过程: A:从数据库读取A的余额;A的余额-100&am…

速度与质量的碰撞——对抗扩散蒸馏 (ADD) 如何彻底改变图像生成

引言 DigiOps 与人工智能是最新和最令人兴奋的进步之一,它是一种将速度和质量融为一体的图像生成技术。 ADD 的发展经历了几个关键阶段。最初,图像生成方法非常基础,而且经常产生不令人满意的结果。生成对抗网络(GAN&#xff09…

[A-04] ARMv8/ARMv9-Cache的相关策略

ver0.3 前言 前面我们已经通过三篇文章反反复复的讲Cache的概念、结构、架构,相信大家对Cache已经大概有了初步的了解。这里简单归纳一下: (1) Cache从硬件视角看,是连接PE-Core和主存的一种存储介质,存储的数据是主存中数据的副本&#xf…

17098 广告牌最佳安放问题

这个问题可以通过动态规划来解决。我们可以定义一个数组d&#xff0c;其中d[i]表示到第i个广告牌地点时可以选择放置广告牌的最大效益值。然后我们可以通过遍历所有可能的j&#xff08;1 < j < i && x[i] - x[j] > 5&#xff09;&#xff0c;然后更新d[i]为ma…

Ubuntu22 Qt6.6 ROS 环境搭建

Ubuntu22.04; Qt6.6; Qt Creator 13.01; ROS2 1. 安装 Qt ROS 插件 1.下载地址&#xff1a; https://github.com/ros-industrial/ros_qtc_plugin/releases 选择对应 Qt Creator 版本的安装包。 2. Qt Creator中&#xff0c;“Help - 关于插件”–>“install Plugin…

十五、C++11常用新特性—Lambda表达式

1.基本 这个好像是很好用的&#xff0c;其有以下有点&#xff1a; 声明式的编程风格&#xff1a;直接匿名定义目标函数或函数对象&#xff0c;不需要额外写一个命名函数或函数对象。简洁&#xff1a;避免了代码膨胀和功能分散&#xff0c;让开发更加高效。在需要的时间和地点…