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

JDBC概述

1.JDBC概述

1.1 JDBC是什么?

JDBC(Java database connectivity)Java连接数据库技术,是Sun公司提供了一套API(Application Programming Interface应用程序编程接口),它为Java应用程序提供了一系列的类,使其能够快速高效地访问数据库

它允许Java程序员使用标准的SQL语句来访问和操作关系型数据库。JDBC提供了一种标准的方式来连接到不同数据库的驱动程序,并且是Java EE平台上进行数据访问的基础。它提供了许多接口和类,使Java应用程序可以通过它们来访问和管理关系型数据库。

1.2 JDBC的本质是什么?

  • 官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口
  • 各个数据库厂商去实现这套接口,提供数据库驱动jar包
  • 我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类

1.3 为什么要使用JDBC?


JDBC的好处:

  • 各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发
  • 可随时替换底层数据库,访问数据库的Java代码基本不变
  • 以后编写操作数据库的代码只需要面向JDBC(接口),操作哪儿个关系型数据库就需要导入该数据库的驱动包,如需要操作MySQL数据库,就需要再项目中导入MySQL数据库的驱动包。

综上所述,JDBC是Java开发人员进行关系型数据库操作的重要工具,它提供了一种标准化的方式来连接到不同数据库的驱动程序,并且可以保证安全、跨平台和高效的数据访问。

1.4 JDBC的原理?


JDBC(Java Database Connectivity)是Java语言访问关系型数据库的标准API。它的原理如下:

1. 加载数据库驱动:在Java应用程序中,首先需要加载适当的数据库驱动程序。

2. 连接数据库:使用Java程序中的getConnection()方法与数据库建立连接。

3. 创建操作对象:使用Java程序中的Statement对象或者PreparedStatement对象来执行SQL语句。

4. 执行SQL语句:使用Statement对象或者PreparedStatement对象来执行SQL语句,在执行SQL语句之前,需要对SQL语句进行预编译。

5. 处理查询结果:使用ResultSet对象来处理从数据库返回的查询结果。

6. 释放资源:使用Java程序中的close()方法释放资源(ResultSet对象、Statement对象、Connection对象)。

JDBC的执行过程是通过Java语言的标准接口实现的,具有跨平台的优点。同时,JDBC也支持连接池事务管理等功能。

2.Mysql和sql server入门JDBC操作

2.1 Mysql的JDBC操作

package jdbc;
 
import java.sql.*;
 
public class JdbcDome {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/1127douyinDB";
        String user = "root";
        String password = "root";
 
        try {
            // 加载MySQL驱动程序
            Class.forName("com.mysql.cj.jdbc.Driver");
 
            // 建立MySQL数据库连接
            Connection connection = DriverManager.getConnection(url, user, password);
 
            // 创建Statement对象
            Statement statement = connection.createStatement();
 
            // 执行SQL查询语句
            ResultSet resultSet = statement.executeQuery("SELECT * FROM douyin");
 
            // 处理查询结果
            while (resultSet.next()) {
                int id = resultSet.getInt("id");
                String liveStreaming = resultSet.getString("liveStreaming");
                int looknumber = resultSet.getInt("looknumber");
                System.out.println("id: " + id +"\tName: " + liveStreaming + "\tlooknumber: " + looknumber);
            }
 
            // 关闭ResultSet、Statement和Connection对象
            resultSet.close();
            statement.close();
            connection.close();
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
    }
}

这些代码实现了连接到MySQL数据库并查询student表中的数据,并且输出查询结果。需要注意的是,实际开发中建议使用try-with-resources语句来自动关闭资源,而不是手动调用close()方法。

2.2 Sql Server的JDBC操作

import java.sql.*;
 
public class Dome {
    public static void main(String[] args) {
        //定义加载驱动
        String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        //定义数据库用户
        String userName = "sa";
        //定义数据库密码
        String userPwd = "sasa";
        //定义数据库连接对象
        Connection dbConn = null;
        //定义命令对象
        Statement stmt=null;
        try {
            //1.加载及注册驱动
            Class.forName(driverName);
            //2.定义数据库连接字符串
            String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=LOLDB";
            //3.数据库连接
            dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
            System.out.println("连接数据库成功");
            //4.定义SQL语句
            String sql="select * from LolNameTab";
            //5.创建一个执行sql对象
            stmt=dbConn.createStatement();
            //6.执行SQL语句命令
            ResultSet resultSet = stmt.executeQuery(sql);
            //7.处理结果,并获取数据
            while (resultSet.next()){
                String userID=resultSet.getString("userID");
                String password=resultSet.getString("password");
                String name=resultSet.getString("userName");
                System.out.println(userID+"\t"+password+"\t"+name);
            }
            //8.关闭连接
            resultSet.close();
            dbConn.close();
            stmt.close();
        } catch (SQLException e) {      //数据库的处理异常的方法
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }finally {
            if (dbConn!=null){
                try {
                    dbConn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(stmt!=null){
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
 

http://www.kler.cn/a/393798.html

相关文章:

  • 基于微信小程序的乡村研学游平台设计与实现,LW+源码+讲解
  • 除了 Mock.js,前端还有更方便的 Mock 数据工具吗?
  • 随手记:简单实现纯前端文件导出(XLSX)
  • SOLIDWORKS代理商鑫辰信息科技
  • GEE 数据集——美国gNATSGO(网格化国家土壤调查地理数据库)完整覆盖了美国所有地区和岛屿领土的最佳可用土壤信息
  • 问:MySQL主从同步的机制梳理?
  • 移动端【01】面试系统的MVVM重构实践
  • 重构代码之替换参数为显式方法
  • axios如何给某一个请求设置请求头信息
  • 让SQL更优雅!深入浅出【公用表表达式(CTE)】语法及实战案例
  • llama-cpp模型轻量化部署与量化
  • HTTP的了解
  • [智能车摄像头是一种安装在汽车上用于辅助驾驶和提高安全性的重要设备]
  • caozha-CEPCS(新冠肺炎疫情防控系统)
  • odoo-040 odoo17前端的js方法调用后端py方法action报错
  • Java与HTML中的标题、文本和图像
  • 排序算法 - 冒泡
  • Kubernetes实现故障转移和微服务弹性伸缩
  • 「Py」Python基础篇 之 Python都可以做哪些自动化?
  • 本地启动浏览器,并禁用web安全性,解决本地启动时,服务端强制要求https协议导致请求不通的问题
  • RabbitMQ的死信队列
  • UE5 HLSL 学习笔记
  • ISP——你可以从这里起步(二)
  • 基于微信小程序的农场管理系统的设计与实现,LW+源码+讲解
  • 通俗易懂:什么是 Java 类加载?
  • 多叉树笔记