IDEA安装使用、JDBC

day53续

IDEA安装

浏览器搜索,在idea官网直接下载需要的版本安装包,安装流程基本无脑
对于专业版要激活,可找相关资源也可购买;社区版不需要
安装不同版本idea
配置环境变量
配置环境变量

JDBC

JDBC:java database connectivity

SUN公司提供的一套操作数据库的标准规范

JDBC与数据库驱动的关系:接口与实现的关系。

JDBC理解图:jdbc理解图

JDBC的四大金刚

  1. DriverManager:用于注册驱动
  2. Connection: 表示与数据库创建的连接
  3. Statement: 操作数据库sql语句的对象
  4. ResultSet: sql语句执行后返回的结果集

JDBC操作步骤

  1. 加载驱动
  2. 创建连接对象
  3. 创建Statement对象
  4. 通过Statement对象执行sql语句
  5. 获取执行结果
package com.qf.jdbc;

import org.testng.annotations.Test;

import java.sql.*;

public class Test01 {
    /**
     * 知识点:JDBC
     */

    //添加数据
    @Test
    public void test01() throws ClassNotFoundException, SQLException {
        //导入驱动包
        Class.forName("com.mysql.cj.jdbc.Driver");

        //获取连接对象
        String url = "jdbc:mysql://localhost:3306/fy2401javaee?characterEncoding=utf8&serverTimezone=UTC";
        String user = "root";
        String password = "root";
        Connection connection = DriverManager.getConnection(url, user, password);

        //获取发送指令对象
        Statement statement = connection.createStatement();

        //发送SQL指令
        String sql = "INSERT INTO student(name,sex,age,salary,course) VALUES('京香Julia','女',28,6000,'HTML');";
        int num = statement.executeUpdate(sql);
        System.out.println("对于" + num + "行造成了影响");

        //关闭资源
        statement.close();
        connection.close();
    }


    //删除数据
    @Test
    public void test02() throws ClassNotFoundException, SQLException {

        //导入驱动包
        Class.forName("com.mysql.cj.jdbc.Driver");

        //获取连接对象
        String url = "jdbc:mysql://localhost:3306/fy2401javaee?characterEncoding=utf8&serverTimezone=UTC";
        String user = "root";
        String password = "root";
        Connection connection = DriverManager.getConnection(url, user, password);

        //获取发送指令对象
        Statement statement = connection.createStatement();

        //发送SQL指令
        String sql = "DELETE FROM student WHERE id>10;";
        int num = statement.executeUpdate(sql);
        System.out.println("对于" + num + "行造成了影响");

        //关闭资源
        statement.close();
        connection.close();
    }

    //修改数据
    @Test
    public void test03() throws ClassNotFoundException, SQLException {

        //导入驱动包
        Class.forName("com.mysql.cj.jdbc.Driver");

        //获取连接对象
        String url = "jdbc:mysql://localhost:3306/fy2401javaee?characterEncoding=utf8&serverTimezone=UTC";
        String user = "root";
        String password = "root";
        Connection connection = DriverManager.getConnection(url, user, password);

        //获取发送指令对象
        Statement statement = connection.createStatement();

        //发送SQL指令
        String sql = "UPDATE student SET age=21,salary=50000 WHERE id=3;";
        int num = statement.executeUpdate(sql);
        System.out.println("对于" + num + "行造成了影响");

        //关闭资源
        statement.close();
        connection.close();
    }

    //查询数据
    @Test
    public void test04() throws ClassNotFoundException, SQLException {

        //导入驱动包
        Class.forName("com.mysql.cj.jdbc.Driver");

        //获取连接对象
        String url = "jdbc:mysql://localhost:3306/fy2401javaee?characterEncoding=utf8&serverTimezone=UTC";
        String user = "root";
        String password = "root";
        Connection connection = DriverManager.getConnection(url, user, password);

        //获取发送指令对象
        Statement statement = connection.createStatement();

        //发送SQL指令,并获取结果集对象
        String sql = "select * from student";
        ResultSet resultSet = statement.executeQuery(sql);

        //遍历结果集
        while(resultSet.next()){//判断是否有可迭代的数据行

            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            String sex = resultSet.getString("sex");
            int age = resultSet.getInt("age");
            float salary = resultSet.getFloat("salary");
            String course = resultSet.getString("course");

            System.out.println(id + " -- " + name + " -- " + sex + " -- " + age + " -- " + salary + " -- " + course);
        }

        //关闭资源
        resultSet.close();
        statement.close();
        connection.close();
    }


}

理解:

最简单的JDBC操作
最简单的jdbc玩法

(1)新建项目

这里注意工作空间的修改
04新建项目

(2)导驱动包,即导入到当前项目

01 建个文件夹,设置成资源目录,把要使用的jar包拉进来
设置资源目录,添加jar包

02 Project Seting再添加jar,就将刚才添加的资源目录的jar包添加【相当于jar包与项目连接】
添加jar包建立连接

(3)JDBC操作

分包一如既往的重要

新建一个类
【注意抛异常和导包alt+回车】
导包,导入注解
【@Test注解依赖直接添加,maven仓库会自动下载】

01导入驱动包【导入的路径可以通过提示打出】

02获取连接对象

【jdbc:连接数据库mysql,url、root、password;url格式网上搜,注意数据库名】

【DriverManager调用方法获取连接对象】
03获取发送指令对象【连接对象调用方法创建】
一、添加、删除、修改数据
添加数据为例
注意:添加、删除、修改数据都是数据的更新,
04发送指令对象调用更新数据方法executeUpdate,传入sql指令,返回的是影响的行数,输出打印
05关闭资源,注意倒序关闭【关闭顺序和创建顺序相反】
二、查询数据
前面三步都一样
第四步发送sql对象,并获取指令集对象
发送指令对象调用查询数据方法executeQuery,传入sql指令,返回结果集
相应就会有别的操作,遍历结果集,while判断是否有可遍历的数据行,获取到数据行对应的字段,输出打印

最后关闭资源

注解测试运行

添加
@Test旁边有个绿色运行按钮,运行可见输出的影响行数;再到Navicat查看是否插入成功添加
删除
删除
修改
修改
查询
查询

小结

安装IDEA
JDBC理解和连接数据库操作

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计Python深度学习美食推荐系统 美食可视化 美食数据分析大屏 美食爬虫 美团爬虫 机器学习 大数据毕业设计 Django Vue.js

Python美食推荐系统开题报告 一、项目背景与意义 随着互联网和移动技术的飞速发展,人们的生活方式发生了巨大变化,尤其是餐饮行业。在线美食平台如雨后春笋般涌现,为用户提供了丰富的美食选择。然而,如何在海量的餐饮信息中快速…

【Excel、RStudio计算T检测的具体操作步骤】

目录 一、基础知识1.1 显著性检验1.2 等方差T检验、异方差T检验1.3 单尾p、双尾p1.3.1 检验目的不同1.3.2 用法不同1.3.3 如何选择 二、Excel2.1 统计分析工具2.1.1 添加统计分析工具2.1.2 数据分析 2.2 公式 -> 插入函数 -> T.TEST 三、RStudio 一、基础知识 参考: 1.…

2.2章节python的变量和常量

在Python中,变量和常量有一些基本的概念和用法,但需要注意的是,Python本身并没有内置的“常量”类型。然而,程序员通常会遵循一种约定,即使用全部大写的变量名来表示常量。 一、变量 在Python中,变量是一…

新手教学系列——【Ubuntu】SSH配置详解

在使用Ubuntu进行远程管理和开发时,SSH(Secure Shell)是必不可少的工具。SSH不仅提供安全的远程登录功能,还支持安全的文件传输和端口转发。然而,有时我们可能会遇到SSH连接中断的问题。本文将详细介绍如何配置SSH以提高其稳定性,并解释关键配置项。 为什么会出现SSH连接…

基于X86+FPGA的精密加工检测设备解决方案

应用场景 随着我国高新技术的发展和国防现代化发展,航空、航天等领域需 要的大型光电子器件,微型电子机械、 光 电信息等领域需要的微型器件,还有一些复杂零件的加工需求日益增加,这些都需要借助精密甚至超精密的加工检测设备 客…

算法 —— 滑动窗口

目录 长度最小的子数组 无重复字符的最长子串 最大连续1的个数 将x减到0的最小操作数 找到字符串中所有字母异位词 长度最小的子数组 sum比target小就进窗口,sum比target大就出窗口,由于数组是正数,所以相加会使sum变大,相减…

实施粘贴式导航_滚动事件

● 所谓的粘贴式导航,就是当我们滑动页面到某一个位置的时候,导航不会因为滑动而消失,会固定在页面的顶部,我们来看一下如何实现; ● 首先我们要获取我们想要滚动到哪一部分的时候让导航栏显示出来,这就需要…

前端工程化09-webpack静态的模块化打包工具(未完结)

9.1、开发模式的进化历史 webpacks是一个非常非常的强大的一个工具,相应的这个东西的学习也是有一定的难度的,里边的东西非常的多,里面涉及到的 概念的话也是非常非常的多的。 这个东西既然非常重要,那么在我们前端到底处于怎样…

填志愿选专业,文科男生如何选专业?

又到了高考分数出炉,无数学子收获喜悦的季节,在分数刚出炉时,很多学生表现的异常兴奋,于他们而言,这么多年的努力终于有了收获,自己该考虑选择什么专业了。而毫不夸张的说,很多人在拿到专业目录…

前程无忧滑块

声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 前言(lianxi …

使用机器学习,轻松预测问题产品,低成本高效率解决产品质量监测需求

01、案例说明 这个案例是一个酒厂,通过对其产品中不同化学性质的指标数值,寻找哪些是可能出现问题的产品。这是一个标准的离异点(Outlier)使用情形。 如果能够将在不同属性的一定范围之内的数据,作为判断的标准&#…

JS(JavaScript)的BOM操作

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

C语言实现简单的minishell

探索开源项目:MiniShell 引言 在计算机编程的世界里,Shell 是一个至关重要的组成部分,它允许用户与操作系统交互,执行命令和程序。MiniShell 是一个简化版的 Shell 程序,通常用于教学和学习目的。在本文中&#xff0…

印尼火出圈的本土网盟okspin助力slot游戏广告代投策略

印尼火出圈的本土网盟okspin助力slot游戏广告代投策略 在当今日益全球化的数字营销环境中,本土网盟广告平台在推广特定地区的产品和服务方面发挥着至关重要的作用。特别是在印尼这样的多元文化市场中,本土网盟okspin投放印尼slots游戏广告的优势尤为显著…

汽车零部件材料耐候性测试氙光太阳辐射系统试验箱

概述 汽车零部件等领域的材料耐候性测试是一项关键的质量控制环节,它关乎汽车部件在各种气候条件下的性能表现和寿命。塑料件光照老化实验箱,即氙灯老化试验箱,在其中扮演着至关重要的角色。通过模拟自然环境中的光照、温度、湿度等条件&…

顺序表(C语言详细版)

1. 线性表 线性表(lina list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...... 线性表在逻辑上是线性结构,也就是说连续的一条直线。但是在物理结构上并…

开源205W桌面充电器,140W+65W升降压PD3.1快充模块(2C+1A口),IP6557+IP6538

开源一个基于IP6557和IP6538芯片的205W升降压快充模块(140W65W),其中一路C口支持PD3.1协议,最高输出28V5A,另一路是A口C口,最高输出65W(20V3.25A),可搭配一个24V10A的开关…

Ubuntu20.04 安装 cudatookit 12.2 + cudnn 安装

最简约的部署Ubuntu20.04深度学习环境的教程 1. 安装Ubuntu20.04 系统 B站详细的安装教程 简约安装版 2. 安装Nvidia显卡驱动 我参考了各种资料,重装系统,完美解决开机显示器黑屏无法进入桌面的情况 黑屏问题主要是由linux内核更新导致,…

混合注意力机制 -- Convolutional Block Attention Module(CBAM)

CBAM CBAM 模块概述 通道注意力模块(Channel Attention Mechanism)和空间注意力模块(Spatial Attention Mechanism)是注意力机制的两种主要形式,它们分别通过对通道维度和空间维度的特征图进行加权,从而使…

算法金 | Transformer,一个神奇的算法模型!!

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 抱个拳,送个礼 在现代自然语言处理(NLP)领域,Transformer 模型的出现带来了革命性的变…