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

[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.mrgr.cn/news/46637.html

相关文章:

  • 当自动包布机遇上Profinet转ModbusTCP网关,“妙啊”,工业智能“前景无限
  • 计算机网络(五)——传输层
  • 系统架构设计师考点—项目管理
  • CSS:定位
  • 【C语言 结构体联合体】字节对齐与字节大小计算
  • 邮票面值设计
  • OmniH2O——通用灵巧且可全身远程操作并学习的人形机器人(其前身H2O是HumanPlus的重要参考)
  • 解决Nginx出现“Too many open files”的问题
  • 测试基础知识(二)测试分类和质量模型
  • 手动更换SSL证书教程及注意事项
  • 五、Python基础语法(程序的输入和输出)
  • Windows系统安装Docker
  • QColormap Class
  • ctfshow-web 萌新题
  • 22.1 K8S之KubeSphere实现中间件高可用集群
  • 国内经典多模态大模型工作1——Qwen-VL系列(Qwen-VL、Qwen2-VL解读)
  • 深度学习的技术:学习ElasticSearch数据库
  • 基于函数计算FC 部署 ComfyUI实现AI生图 的优势
  • 误删文件不再烦恼,四大数据恢复软件让你轻松找回!
  • STM32单片机(F03C8T6)-点灯(寄存器点灯和库函数点灯)
  • 【C语言进阶教程】数据结构与算法(4.栈 5.队列 6.树)
  • 【Tourism】Zhengzhou
  • SQL第15课挑战题
  • The Android SDK location cannot be at the filesystem root
  • 吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)2.7-2.8
  • 实现多线程方法有哪些