Java如何用JDBC操作数据库(新手入门级)

2023-11-16

引入相关依赖包

想要用JDBC操作数据库,我们就必须要下载JDBC相关的依赖。

这些依赖其实就是我们用来操作数据库的代码。

那么什么是JDBC呢?

JDBC就是 Java DataBase Connectivity 的简称,是数据库连接的意思。

JDBC是Sun公司发布的一套用Java语言操作数据库的API,也就是接口。

接口大家都知道吧?可以这么说,接口其实就是规范。

任何数据库想要被Java语言操作,就必须根据JDBC来实现具体的操作类,像MYSQL就是实现了JDBC的实现类,所以我们把这个依赖下载到项目中去后就可以操作MYSQL数据库了。

我现在用的是 mysql-connector-java-5.1.47.jar 这个。大家自己去下载,下载好后就Ctrl+c复制进来就行。lib就是相关依赖的文件。

引好包后就像这样:

1.加载驱动

public class Test {
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }
    public static void main(String[] args) {

    }
}

首先,我们调用Class的forName方法,这个方法能将传入的类初始化。我们传入的参数

"com.mysql.jdbc.Driver"

表示需要加载的类的全限定名(包括包名)。它是一个字符串类型的参数。

因为我们的这个类在我们的项目里面,所以我们这样写就行了。

这样,我们就执行了驱动的初始化。

接着,我们就可以获取连接了。

在获取连接之前,我们需要设定好三个参数。

url,用户名,密码。

url就是我们要使用的是哪个数据库。

用户名就是你mysql的用户名,一般都是 root ,密码就是mysql的密码。

这个数据库既可以连接本地的MYSQL也可以连接远程的MYSQL,比如以后写大项目时,我们需要将数据库部署到专门的服务器上面去。

我这里就演示本地MYSQL的连接。

    private static String url="jdbc:mysql://localhost:3306/market";

    private static String usernameSql="root";

    private static String passwordSql="123";

下面是对URL中常见参数的解读:

<数据库厂商名称>:指定要连接的数据库类型,如MySQL、Oracle、SQL Server等。

<主机名>:数据库服务器的主机名或IP地址。

<端口>:数据库服务器监听的端口号。一般是3306,但是你可以自己去改MYSQL的iml配置文件,可以将端口号改为其他的可用端口号。比如,我写网站时用的8080之类的,不过最好不要改,因为一个端口只能被一个服务占用。

<数据库名>:要连接的数据库名。

<参数1>=<值1>&<参数2>=<值2>...:其他附加参数,用于配置连接属性。

具体代码附上:

public class Test {
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }
    private static String url="jdbc:mysql://localhost:3306/market?useSSL=false";
    private static String usernameSql="root";
    private static String passwordSql="123";

    public static void main(String[] args) {
        Connection conn=null;
        PreparedStatement psmt=null;
        try {
             conn= DriverManager.getConnection(url,usernameSql,passwordSql);
            String sql="select * from goods";
             psmt=conn.prepareStatement(sql);
             ResultSet rs=psmt.executeQuery();
             while(rs.next()){
                 System.out.println(rs.getInt(1)+":"+rs.getString(2));
             }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        try {
            psmt.close();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        try {
            conn.close();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}

try-catch我就不多说了。

我们来看看具体的操作流程。

在这个代码执行之前,我们需要创建好相关的数据库,当然也可以用代码去实现,只不过我已经创建好了。

比如我就已经有了一个数据库叫market,它里面有一张表叫goods。

我现在所进行的操作就是对这个表所有数据进行查询。我们来看看具体的操作流程。

首先,通过Class.forName("com.mysql.jdbc.Driver")加载MySQL数据库驱动程序。这一步通常需要在使用特定数据库之前进行,以确保驱动程序被正确加载。

接下来,定义了连接数据库所需的URL、用户名和密码等信息。

main方法中,首先通过DriverManager.getConnection(url, usernameSql, passwordSql)获取数据库连接对象 Connection,该方法会根据提供的URL和认证信息建立与MySQL数据库的连接。

然后,定义了要执行的SQL语句,即查询语句 select * from goods

创建预处理语句 PreparedStatement 对象 psmt,并使用该对象执行查询操作 executeQuery(),将查询结果存储在 ResultSet 对象 rs 中。

通过循环遍历 rs,调用 getInt(1)getString(2) 方法获取每一行记录中第一列和第二列的值,并打印输出。

最后,在合适的位置使用 close() 方法关闭相关资源,包括 PreparedStatementConnection 对象。这样可以释放占用的数据库资源和防止资源泄露。

需要注意的是,对于异常的处理,使用了抛出 RuntimeException 的方式。这样可以简化代码并将异常传播给上层调用者处理。

总结起来,这段代码的作用是连接到MySQL数据库,执行一条查询语句,并输出查询结果。

其实代码也可以这样写,不过刚才写的代码适合新手入门。比较好理解。

public class Test {
    private static final String URL = "jdbc:mysql://localhost:3306/market?useSSL=false";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "123";
    private static final String SQL = "SELECT * FROM goods";

    public static void main(String[] args) {
        try (Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
             PreparedStatement psmt = conn.prepareStatement(SQL);
             ResultSet rs = psmt.executeQuery()) {
            while (rs.next()) {
                System.out.println(rs.getInt(1) + ":" + rs.getString(2));
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}

里面用的是新的try-catch语句,将资源作为参数传入后,这些资源在语句块运行结束后会自动关闭,就不需要再手动close了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java如何用JDBC操作数据库(新手入门级) 的相关文章

随机推荐

  • 程序记录(一)VGG16猫狗分类

    import torch from torchvision import datasets models transforms import os from torch utils data import DataLoader from t
  • RANSAC鲁棒参数估计

    转自 http blog csdn net zhanglei8893 archive 2010 01 23 5249470 aspx RANSAC 是 RANdom SAmple Consensus 的缩写 该算法是用于从一组观测数据中估计
  • U-Boot Passing Kernel Arguments

    本文转载至 http www denx de wiki view DULG LinuxKernelArgs In nearly all cases you will want to pass additional information t
  • ply格式文件导出

    ply格式导出代码片段 注意vertex 和tri都是 N 3 格式 三角形编号从1开始 def dump to ply vertex tri wfp index in tri should begin from 1 vertex in s
  • 【Vue】Vue基础自用笔记&Day04_①Vue组件②Vue插槽

    Vue基础 Day04 1 Vue组件 component 定义全局组件 定义私有组件 组件中数据和方法的调用 组件动画 父组件传值子组件 子组件传值父组件 2 Vue插槽 slot 如果出现具名插槽没有效果 但是也没有报错 极有可能是Vu
  • C语言——IIC协议概述+PCF8591

    IIC协议 SCL必须由主机发送 在SCL 1 高电平 时 SDA下跳则 判罚 为 起始信号 SDA上跳则 判罚 为 停止信号P 每个字节后应该由对方回送一个应答信号ACK做为对方在线的标志 非应答信号一般在所有字节的最后一个字节后 一般要
  • 【RabbitMQ教程】springboot整合rabbitmq(topic模式)

    下面还是模拟注册服务当用户注册成功后 向短信和邮件服务推送消息的场景 搭建SpringBoot环境 创建两个工程 mq rabbitmq producer和mq rabbitmq consumer 分别配置1 2 3 第三步本例消费者用注解
  • 如何利用FPGA生成SPWM调制信号

    如何利用FPGA生成SPWM调制信号 实验目标 稍微说一下原理 SPWM即正弦波宽度脉冲调制 冲量等效原理 双极性的的SPWM信号 具体步骤 1 用matlab生成三角波和正弦波的coe文件 2 调用ROM的ip读取coe文件 3 调用pl
  • IDEA使用小技巧

    一 添加javadoc注释 在方法声明前面输入 再按回车 就会自动生成 二 自动生成setter和getter方法 首先创建出你的实体类 或者准备好你要生成getter和setter方法的属性 然后再空白处点击右键 会出现这个界面 然后点G
  • 克鲁斯卡尔算法小结(使用查并集)

    克鲁斯卡尔算法 最小生成树 1 基本思想 先构造一个只含 n 个顶点 而边集为空的子图 把子图中各个顶点看成各棵树上的根结点 之后 从网的边集 E 中选取一条权值最小的边 若该条边的两个顶点分属不同的树 则将其加入子图 即把两棵树合成一棵树
  • Python脚本的简单编写(if语句,逻辑运算符,for循环,游戏的编写)

    1 利用python求平均成绩 gt gt gt gt gt gt gt gt 题目要求 输入学生姓名 依次输入学生的三门科目成绩 计算该学生的平均成绩 并打印 平均成绩保留一位小数 计算该学生语文成绩占总成绩的百分比 并打印 gt gt
  • 解决CHM文件打开无法显示网页的问题

    解决CHM文件打开无法显示网页的问题 chm的设计者的初衷是用来做帮助文档 其本质是一堆html网页文件的组合 后来有了专门的编 译器 反编译器 人们发现chm这东西具有的html的特性 使其用来做电子书实在是又好又方便 连html里面的脚
  • 使用config-overrides.js修改react项目的大包路径的正确方式

    create react app创建之后 默认的打包路径为build文件夹 如果想要更改 不使用yarn eject暴露配置项的琴况下 可以使用config overrides js修改打包的路径 代码如下 const path requi
  • C/C++配置使用windows msys2中的gcc/g++编译器

    介绍 比较常见的 可以在Windows上安装各种工具链来编译C和C 应用程序 如果是专门为Windows开发的 那是推荐Microsoft 免费提供的Visual Studio Community 出色的IDE工具 对于那些需要或喜欢跨平台
  • LeetCode 45 跳跃游戏 II(Java)

    题目 给你一个非负整数数组 nums 你最初位于数组的第一个位置 数组中的每个元素代表你在该位置可以跳跃的最大长度 你的目标是使用最少的跳跃次数到达数组的最后一个位置 假设你总是可以到达数组的最后一个位置 示例1 输入 nums 2 3 1
  • 前端 华为OBS 上传图片和查看图片

    前提是OBS 使用的是SDK BrowserJS 下载SDK BrowserJS 1 前提 npm config set registry https registry npmjs org 2 esdk obs browserjs 3 20
  • 【转】Visual Studio 2010下配置PC-Lint 9.0i

    转自 http blog csdn net jbcjay article details 7389543 首先下载PC Lint安装包 可以到CSDN资源区搜索下载 或者直接到我上传的资源区下载 一 安装过程 下载完安装包后可以直接点击pc
  • 仅需四步,整合SpringSecurity+JWT实现登录认证 !

    学习过我的mall项目的应该知道 mall admin模块是使用SpringSecurity JWT来实现登录认证的 而mall portal模块是使用的SpringSecurity基于Session的默认机制来实现登陆认证的 很多小伙伴都
  • Redis( stringRedisTemplate)添加缓存数据

    在redis中添加缓存数据大致思路 1 从redis中获取数据 如果存在 直接返回客户端 2 不存在 查询数据库 并写入redis缓存 3 如果从数据库查询为空 返回错误信息 4 写入redis缓存并返回数据 通过String类型添加商品数
  • Java如何用JDBC操作数据库(新手入门级)

    引入相关依赖包 想要用JDBC操作数据库 我们就必须要下载JDBC相关的依赖 这些依赖其实就是我们用来操作数据库的代码 那么什么是JDBC呢 JDBC就是 Java DataBase Connectivity 的简称 是数据库连接的意思 J