[JAVA]连接数据库 并在Java中实现查询员工信息功能

news2024/12/29 10:02:07

在进行这些操作之前,我们需要先了解JDBC入门,JDBC是一种用于执行SQL语句的JavaAPL,可以为多种关系数据库提供统一访问。

一,主要作用

1.连接数据库

允许Java程序与各种不同的数据库建立连接。无论使用的是MySQL,Oracle,SQLServer等数据库,都可以通过JDBC提供的接口和驱动来实现连接。

2.执行SQL语句

可以执行各种SQL语句,包括查询(SELECT),插入(INSERT),更新(UPDATE)和删除(DELECT)等操作。例如,我们可以使用JDBC执行一个查询语句来获取数据库中的数据,或者执行一个插入语句向数据库中添加新的数据记录。

JDBC要完成五步才能实现对数据的读取操作

首先我们需要建立一个数据库,创建employee员工表

然后我们进入JDBC的开发操作,将上表的数据提取出来

实现五步操作

1.加载并注册JDBC驱动

2.创建数据库连接

3.创建Statement对象

4.遍历查询结果

5.关闭连接,释放资源

首先从官网下载mysql驱动,将下载好的驱动复制到lib目录中

然后引用这个驱动程序

当前的驱动已被我们增加到这个工程中。

然后进行第一步:加载并注册JDBC驱动

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

Class.forName :用于加载指定的类

第二步:创建数据库连接

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/imooc?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/shanghai", "root", "root");

返回值为Connection对象,代表java应用程序和数据库之间的通信桥梁。

第三步:创建Statement对象

Statement stmt =conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from employee");

第四步:遍历查询结果

while (rs.next()) {
            Integer eno = rs.getInt(1); 
            String ename = rs.getString("ename");
            Float salary = rs.getFloat("salary");
            String dname = rs.getString("dname");
            System.out.println(dname + "-" + eno + "-" + ename + "-" + salary);
      }

第五步:关闭连接,释放资源

if(conn !=null && conn.isClosed() == false){
   //5.关闭连接,释放资源
   conn.close();
}

 标准JDBC操作过程:

package com.im.jdbc.sample;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class StandardJDBCSample {
    public static void main(String[] args) {
        Connection conn = null;
        try {

            //1.加载并注册JDBC驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.创建数据库连接
             DriverManager.getConnection("jdbc:mysql://localhost:3306/imooc?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/shanghai", "root", "root");
            //3.创建Statement对象
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("select*from employee"); //结果集 包含sql语句返回的数据
            //4.遍历查询结果
            while (rs.next()) {
                Integer eno = rs.getInt(1);//将当前行第一列的数据作为整型进行获取
                String ename = rs.getString("ename");
                Float salary = rs.getFloat("salary");
                String dname = rs.getString("dname");
                System.out.println(dname + "-" + eno + "-" + ename + "-" + salary);
            }
        }catch(Exception e) {
            e.printStackTrace();
        }finally {
            try {
                if (conn != null && conn.isClosed() == false) {
                    //5.关闭连接,释放资源
                    conn.close();
                }
            }catch (Exception ex){
                ex.printStackTrace();
            }

        }
        }

    }

结果显示:

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

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

相关文章

高效开发,低代码平台如何助力构建内部工具

Zoho Creator是低代码平台,助力快速构建内部工具,如审批、订单、销售管理等,提升生产力、客户满意度,并减轻管理负担。平台提供拖放界面、集成数据库等功能,入选Gartner低代码平台“魔力象限”。 一、什么是内部工具&a…

免杀对抗—GOC#反VT沙盒资源分离混淆加密

前言 今天的主要内容是反VT沙盒,我们都知道生成的后门会被杀软上穿到沙盒中去运行,去逆向。如此一来我们的后门就很容易被查杀掉,但如果我们对后门进行一些操作,让它在被逆向的时候,反编译出一堆乱码,或者…

(接口测试)接口测试理论 http理论 接口测试流程 接口文档解析

一.接口测试理论 1.接口和接口测试 服务器为客户端开了一个验证接口(接口本质:函数方法)客户端向服务器传送的消息可以相当于函数的参数,接口是用来让客户端传递数据的 接口:相当于开了一个通道 当服务器要给客户端响…

用setnx实现一个分布式锁

用setnx实现一个分布式锁 简介 利用Redis的单线程特性,在多个Redis客户端同时通过SETNX命令尝试获取锁,如果返回1表示获取锁成功,否则表示获取锁失败。 Redis Setnx(SET if Not eXists) 命令在指定的 key 不存在时&…

基于SSM的车库智能管理平台设计与实现【附源码】

基于SSM的车库智能管理平台设计与实现(源码L文说明文档) 目录 4 系统设计 4.1 系统概要设计 4.2 系统功能结构设计 4.3 数据库设计 4.3.1 数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1用户信息管理 5.2 车…

腾讯云SDK地址生成器

音视频终端 SDK(腾讯云视立方)将新版连麦管理方案的多个功能集成至 腾讯云视立方控制台 > 连麦管理,便于用户快捷使用,具体分为快速上手、连麦应用、用量统计和地址生成器四个功能页面。更多连麦功能说明,请参见 新…

YOLO11 实例分割模型做行人分割

实例分割是检测和隔离图像中单个对象的关键技术,YOLO11 是执行这项任务的最佳模型之一。在本文中,你将学习如何使用 YOLO11 分割模型有效地在图像中分割人物。我们将涵盖从设置 Python 环境和安装必要的库,到下载测试图像和可视化分割结果的所有内容。通过本教程的学习,你将…

pandas的用法

1.简介: pandas是一个开源的python数据分析库提供了快速,灵活和表达力强的数据结构,使数据清洗和分析工作变得更加简单易行。pandas的核心数据结构是DataFrame和Series 2.DataFrame的基本操作: DataFrame是pandas库中的一个二维…

WebAPI的初步认识

这里局限于Asp.net core Web API。 简单一句话,就是webApi支持我们专注于数据,返回值可以直接返回对象。且支持RestFul风格的编程。RestFul编程就是 资源(Resource):将所有的数据和功能都视为资源,每个资源…

Passolo使用教程

作用:汉化软件 Passolo下载地址:https://www.xitongzhijia.net/soft/236115.html 使用步骤 1:新建 2:添加来源 -> 找到需要汉化的exe文件 3:目标语言 -> 添加语言 -> 简体中文 4:名称 -> 自定…

【数据结构】栈和队列 + 经典算法题

目录 前言 一、栈 二、栈的实现 三、栈的循环遍历演示 四、栈的算法题 // 一、队列 二、队列的实现 三、使用演示 四、队列的算法题 总结 前言 本文完整实现了栈和队列的数据结构,以及栈和队列的一些经典算法题,让我们更加清楚了解这两种数据…

W外链平台有什么优势?

W外链作为一种短网址服务,具备多项功能和技术优势,适用于多种场景,以下是其主要特点和优势: 短域名与高级设置:W外链提供了非常短的域名,这有助于提高用户体验,使其在社交媒体分享时更加便捷。…

GNURadio 平台实现拦阻干扰

信号流图如下: 先用带通滤波器截取一段噪声信号源的频谱,流图中为100khz-500khz,带宽为400kHz,再进行调制搬移到期望的信号频率上,流图中为2MHz上。 仿真结果信号频谱图如下所示: 假设被干扰的目标信号为A…

Java基础入门:从人机交互到Java核心概述

掌握CMD与Java开发环境:从基础到实战的全面指南 在当今数字化时代,计算机操作和编程技能已成为不可或缺的基础能力。无论你是刚刚迈入编程世界的新手,还是希望提升自己技术水平的开发者,了解如何高效使用命令行工具(如…

接着上一篇stp 实验继续

理论看上一篇,我们直接实验 首先找出root 桥 很明显 sw1 为root 桥,所谓sw1  &a…

IDEA上Mybatis介绍和使用

MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。 创建项目 在springboot项目中添加Mybatis和MySQL依赖项。 找到数据库选项,点击新建 -> 数据库源,选择MySQL。 输入完成信息后,可以先进行测试,可以成功连接再…

影刀RPA在智能客服上的运用

随着人工智能技术的不断发展,智能客服系统逐渐成为企业提升服务效率和质量的重要工具。影刀RPA(Robotic Process Automation,机器人流程自动化)作为一种模拟人类用户行为的技术,通过自动化执行重复性高、规则明确的任务…

2024年MathorCup国家级大数据竞赛,必须要知道的竞赛重点!

2024年MathorCup大数据竞赛正在报名中,在越来越多同学报名参赛的同时,也有非常多的同学来咨询比赛相关问题。 01 比赛的级别是什么? 比赛主办方是中国优选法统筹法与经济数学研究会(国家一级学会),因此一…

架构设计笔记-7-系统架构设计基础知识

目录 知识要点 单选 案例分析 1.质量属性 / 管道过滤器 / 数据仓库风格 2.面向对象风格 / 控制环路风格 3.软件架构风格 / 架构风格选择 4.体系结构方案对比 5.面向对象风格 / 基于规则风格 6.解释器风格 / 管道过滤器风格 7.面向对象风格 / 解释器风格 8.软件架构复…

【HarmonyOS】HMRouter使用详解(一)环境配置

背景 在项目中使用官方推荐的Navigation时,需要在所有的页面上都添加一层NavDestination,在代码阅读上会增加多个层级,而且还要在主页面设置对应名字的跳转等问题,配置起来比较繁琐。看到大佬开发的HMRouter使用起来方便简洁&…