使用JDBC连接操作数据库

本文介绍了JDBC(Java Database Connectivity)的基本概念,它是一个用于执行SQL语句的Java API,用于建立Java应用程序与数据库的连接。通过JDBC,开发者可以方便地执行SQL查询并处理结果集。示例代码展示了如何使用JDBC连接MySQL数据库,包括注册驱动、建立连接、创建Statement、执行查询及资源释放。此外,还提到了使用工具类简化JDBC操作的方法,以及Class.forName()注册驱动的使用场景和JDBC5之后的自动驱动注册特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JDBC简介

Java数据库连接(Java Database Connectivity,JDBC),是一种用于执行SQL语句的Java API,它由一组用Java编程语言编写的类和接口组成。
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
使用JDBC编写的程序能够自动地将SQL语句传送给相应的数据库管理系统。
JDBC 是个"低级"接口,也就是说,它用于直接调用 SQL 命令。在这方面它的功能极佳,并比其它的数据库连接 API 易于使用,但它同时也被设计为一种基础接口,在它之上可以建立高级接口和工具。高级接口是"对用户友好的"接口,它使用的是一种更易理解和更为方便的 API,这种API在幕后被转换为诸如 JDBC 这样的低级接口。
JDBC扩展了Java的功能,由于Java语言本身的特点,使得JDBC具有简单、健壮、安全、可移植、获取方便等优势。

开发第一个JDBC程序

package com.jyroy.test;

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

import com.jyroy.util.JDBCUtil;

import java.sql.Connection;
import java.sql.Driver;

public class MainTest {

    public static void main(String[] args) {
        Connection connection = null;
        Statement st = null;
        ResultSet rs = null;

        try {
            //1.注册驱动
            DriverManager.registerDriver(new com.mysql.jdbc.Driver());

            //2.建立连接
            //方法一  参数一:协议+访问数据库,参数二:用户名,参数三:密码
            connection = DriverManager.getConnection("jdbc:mysql://localhost/student", "root", "password");

            //方法二
//            DriverManager.getConnection("jdbc:msql://localhost/student?user=root&password=password");

            //3.创建statement,跟数据库打交道一定需要这个对象
            st = connection.createStatement();

            //4.执行查询
            String sql = "select * from stu";
            rs = st.executeQuery(sql);

            //5.遍历查询每一条记录
            while(rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                int age = rs.getInt("age");

                System.out.println("id = " + id + "; name = " + name + "; age = " + age);
            }
             //进行资源释放
            connection.close();
            st.close();
            rs.close();

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
   

使用工具类#

借助工具类来方便JDBC的操作
获取数据库连接#

建立数据库连接的类,里面封装好实现数据库连接的函数,方便调用实现数据库连接

这里说两个问题:

一:

这里多用了一个 Class.forName(“com.mysql.jdbc.Driver”); 因为

在上面的例子中,Driver这个类里面有静态代码块(java.sql.DriverManager.registerDriver(new Driver())),我们在new的时候一开始就加载了Driver类,相当于注册了两次驱动,为了避免这个情况,使用Class.forName(“com.mysql.jdbc.Driver”);来进行驱动的注册。

二:

根据JDBC官方文档,在JDBC5之后,Class.forName(); 的注册驱动,官方已经帮我们实现了,我们不加载驱动(JDBC会自动识别使mysql还是oracl什么的,当然了,如果同时用了mysql和oracl就要写上了,这个时候就没法自动确定了),直接建立连接也是可以的,大家可以自己试一下把Class.forName();这句话注释掉,也是可以完美运行的!

package com.jyroy.DBUtil;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBUtil {

    private static Connection connection=null;

    static {
        try {
            //1.加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            //2.获得数据库的连接
            connection = DriverManager.getConnection("jdbc:mysql://localhost/student", "root", "password");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    //将获得的数据库与java的链接返回(返回的类型为Connection)
    public static Connection getConnection(){
        return connection;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值