当前位置: 首页 > article >正文

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

在进行这些操作之前,我们需要先了解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.kler.cn/news/340473.html

相关文章:

  • makefile的基本练习
  • AI+视频监控:EasyCVR安防平台赋能火电制造行业的视频智能管理方案
  • 统计学基础知识-我国行政架构!
  • ViT(Vision Transformer详解)
  • 李宏毅深度学习-图神经网络GNN
  • 扩展欧几里得算法 C++
  • 打卡第四天 P1081 [NOIP2012 提高组] 开车旅行
  • ARP欺骗
  • 毕业设计项目 深度学习安全帽佩戴检测(源码+论文)
  • 冒泡排序、插入排序、选择排序、归并排序、快速排序算法(C++实现)
  • sqlserver-合理化CTFP(cost threshold for parallelism)
  • OS_过程调用与系统调用
  • 位运算 -- 力扣
  • Springboot 文件上传
  • 海洋鱼类图像分类分割系统源码&数据集分享
  • MySQL进阶 - 索引
  • SpringIoC容器的初识
  • 软件验证与确认实验二-单元测试
  • YOLO11改进 | 卷积模块 | 轻量化GSConv替换普通的conv
  • NLP: SBERT介绍及sentence-transformers库的使用