JDBC概念及获取数据库连接的5种方式

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: JDBC概念及获取数据库连接的5种方式

一、JDBC概念


Java DataBase Connectivity(Java数据库连接技术) 它是将Java与SQL结合且独立于特定的数据库系统的应用程序编程接口(API-它是一种可用于执行SQL语句的JavaAPI,即由一组用Java语言编写的类与接口所组成)


JDBC的设计目的:


它是一种规范,设计出来的主要目的是为了让各个数据库开发商为Java程序员提供标准的数据访问类和接口,使得独立于DBMS的Java应用程序的开发成为可能(数据库改变,驱动程序跟着改变,但是应用程序不变) Java设计规范接口,各大数据库产商遵守规范实现,Java程序员不需要考虑实现细节,只需要调用API即可


JDBC工作的基本流程:


一个基本的JDBC工作流程,分为以下几步:


1、加载特定数据库驱动器实现类,并注册驱动器(Driver会注册到DriverManager中)


2、根据特定的URL,返回可以接受此URL的数据库驱动对象Driver


3、使用数据库驱动 Driver 创建数据库连接Connection会话


4、使用 Connection对象创建 用于操作sql的Statement对象


5、statement对象 .执行 sql语句,返回结果ResultSet 对象


6、处理ResultSet中的结果


7、关闭连接,释放资源


二、JDBC获取数据库连接的5种方式


方式一:


public class ConnectionTest {
    @Test
    public void testConnection1() throws SQLException {
        //获取Driver实现类对象
        Driver driver = new com.mysql.jdbc.Driver();
        //jdbc:mysql: 协议
        //localhost ip地址
        //3306 MySQL数据库默认端口号
        //test 需要连接的数据库名称
        String url = "jdbc:mysql://localhost:3306/test";
        Properties info = new Properties();
        //设置连接的用户名和名称,user和password是固定的写法
        info.setProperty("user","root");
        info.setProperty("passwor","root");
        Connection connect = driver.connect(url, info);
        System.out.println(connect);
    }
}


方式二:


public class ConnectionTest {
    @Test
    public void testConnection2() throws Exception {
        //1.使用反射获取Driver实现类对象
        Class<?> clazz = Class.forName("com.mysql.jdbc.Driver");
        Driver driver = (Driver) clazz.newInstance();
        //2.提供需要连接的数据库
        String url = "jdbc:mysql://localhost:3306/test";
        //3.提供连接需要的用户和密码
        Properties info = new Properties();
        info.setProperty("user","root");
        info.setProperty("password","lxq");
        //获取链接
        Connection connect = driver.connect(url, info);
        System.out.println(connect);
    }
}


方式二是方式一的迭代,与方式一相比没有出现第三方的API,有较好的移植性


方式三:


public class ConnectionTest {
    @Test
    public void testConnection3() throws Exception {
        //1.使用反射获取Driver实现类对象
        Class<?> clazz = Class.forName("com.mysql.jdbc.Driver");
        Driver driver = (Driver) clazz.newInstance();
        //2.提供需要连接的数据库
        String url = "jdbc:mysql://localhost:3306/test";
        //3.提供连接需要的用户和密码
        String user = "root";
        String passwor = "root";
        //4.注册驱动
        DriverManager.registerDriver(driver);
        //5.获取连接
        Connection connection = DriverManager.getConnection(url, user, passwor);
        System.out.println(connection);
    }
}


使用DriverManager(驱动管理器)替换Driver,DriverManager是jdk提供的一个类,用来完成获取连接的操作


方式四:


public class ConnectionTest {
    @Test
    public void testConnection4() throws Exception {
        //1.提供连接所需信息
        String url = "jdbc:mysql://localhost:3306/test";
        String user = "root";
        String passwor = "root";
        //2.使用反射加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        //3.获取连接
        Connection connection = DriverManager.getConnection(url, user, passwor);
        System.out.println(connection);
    }
}


与方式三相比,方式四省略了如下代码:


Driver driver = (Driver) clazz.newInstance();


DriverManager.registerDriver(driver);


理由是,在com.mysql.jdbc.Driver类中有如下所示的静态代码块,使用Class.forName()加载这个驱动时就会执行这个静态代码块,实现了注册驱动


static {
    try {
        DriverManager.registerDriver(new Driver());
    } catch (SQLException var1) {
        throw new RuntimeException("Can't register driver!");
    }
}


方式五:


public class ConnectionTest {
    @Test
    public void testConnection5() throws Exception {
        //1.获取连接所需信息
        InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");
        Properties info = new Properties();
        info.load(is);
        String url = info.getProperty("url");
        String user = info.getProperty("user");
        String password = info.getProperty("passwor");
        String driverClass = info.getProperty("driverClass");
        //2.使用反射加载驱动
        Class.forName(driverClass);
        //5.获取连接
        Connection connection = DriverManager.getConnection(url, user, passwor);
        System.out.println(connection);
    }
}


其中配置文件jdbc.properties在src目录下:


url=jdbc:mysql://localhost:3306/test


user=root


passwor=root;


driverClass=com.mysql.jdbc.Driver


使用配置文件的好处:


1、实现代码和数据的分离,如果需要修改配置信息,直接在配置文件中进行修改,不需要深入代码


2、如果修改配置信息,省去了重新编译的过程


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
16天前
|
Java 数据库连接
JDBC连接复习
JDBC连接复习
25 1
|
7天前
|
SQL Java 数据库连接
Java开发者必知:JDBC连接数据库的“三大法宝”
Java开发者必知:JDBC连接数据库的“三大法宝”
13 7
|
23天前
|
Java 数据库连接 网络安全
JDBC数据库编程(java实训报告)
这篇文章是关于JDBC数据库编程的实训报告,涵盖了实验要求、实验环境、实验内容和总结。文中详细介绍了如何使用Java JDBC技术连接数据库,并进行增删改查等基本操作。实验内容包括建立数据库连接、查询、添加、删除和修改数据,每个部分都提供了相应的Java代码示例和操作测试结果截图。作者在总结中分享了在实验过程中遇到的问题和解决方案,以及对Java与数据库连接操作的掌握情况。
JDBC数据库编程(java实训报告)
|
29天前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
43 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
29天前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
53 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
17天前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
27 1
|
24天前
|
SQL Java 数据库连接
JDBC连接SQL Server2008 完成增加、删除、查询、修改等基本信息基本格式及示例代码
这篇文章提供了使用JDBC连接SQL Server 2008数据库进行增加、删除、查询和修改操作的基本步骤和示例代码。
|
24天前
|
SQL 存储 Java
完整java开发中JDBC连接数据库代码和步骤
该博客文章详细介绍了使用JDBC连接数据库的完整步骤,包括加载JDBC驱动、提供连接URL、创建数据库连接、执行SQL语句、处理结果以及关闭JDBC对象的过程,并提供了相应的示例代码。
|
29天前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
27 6
|
29天前
|
存储 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
26 4
下一篇
DDNS