JDBC获取数据库连接的5种方式实例

目录
  • 方式一:直接通过数据库厂商提供的相关驱动
  • 方法二:通过反射的方式来构造Driver对象
  • 方式三:使用DriverManager来替换Driver获取连接
  • 方法四:省略创建Driver对象和注册驱动
  • 方式五:通过配置文件的方式
  • 每种方式迭代的原因
  • 方式五的优点
  • 总结

方式一:直接通过数据库厂商提供的相关驱动

步骤

  1. 导入相关驱动(Build Path)
  2. 创建Driver类的实例化对象
  3. 获取要连接数据库的URL
  4. 创建Properties类的实例化对象,将账号和密码封装到该对象中
  5. 通过Driver实例化对象调用connect(String url,Properties info)方法获取connection对象
package connection;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.SQLException;
import java.util.Properties;

import org.junit.jupiter.api.Test;

public class ConnectionTest {
    @Test
    public void test() throws SQLException {
        //创建Driver实例
        Driver driver=new com.mysql.cj.jdbc.Driver();
        //获取要读取数据库的URL
        String url="jdbc:mysql://localhost:3306/test04_emp";
        //将账号密码封装到Properties对象中
        Properties info=new Properties();
        info.setProperty("user", "root");
        info.setProperty("password", "abc123");
        //通过Driver的对象获取连接
        Connection connect=driver.connect(url, info);
        //调用连接的toString()
        System.out.println(connect);
    }
}

方法二:通过反射的方式来构造Driver对象

  1. 通过Class的forName(Stirng className)获取驱动的运行时类。
  2. 通过运行时类的newInstance()来获取运行时类的对象。
  3. 获取URL和将账号密码封装到Properties对象中。
  4. 使用运行时类的对象调用connect()方法获取连接。
@Test
    public void test2() throws Exception {
        //通过反射的方式获取运行时类
        Class clazz=Class.forName("com.mysql.cj.jdbc.Driver");
        //通过反射的方式创建运行时类对象
        Driver driver=(Driver)clazz.newInstance();
        //获取URL
        String url="jdbc:mysql://localhost:3306/test04_emp";
        //封装账号密码
        Properties info=new Properties();
        info.setProperty("user", "root");
        info.setProperty("password", "abc123");
        //获取连接
        Connection connect=driver.connect(url, info);
        System.out.println(connect);
    }

方式三:使用DriverManager来替换Driver获取连接

  1. 获取Driver的实现类对象。
  2. 使用DriverManager的registerDriver(Driver driver)方法来注册驱动。
  3. 提供URL、账号和密码。
  4. 使用DriverManager的getConnection(String url,String user,String password)来获取连接。
@Test
    public void test3() throws Exception {
        //通过反射的方式获取Driver对象
        Driver driver=(Driver)Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
        //调用DriverManager的registerDriver(Driver driver)方法注册驱动
        DriverManager.registerDriver(driver);
        //提供账号、密码和URL
        String user="root";
        String password="abc123";
        String url="jdbc:mysql://localhost:3306/test04_emp";
        //调用DriverManager的getConnection()方法来获取连接
        Connection connect=DriverManager.getConnection(url,user,password);
        System.out.println(connect);
        /*getConnection()还有一种版本:getConnection(String url,Properties info)
         * 可以参考方法一和方法二。
         */
    }

方法四:省略创建Driver对象和注册驱动

  1. 通过反射将Driver类加载到内存中。
  2. 提供账号、密码和URL。
  3. 通过DriverManager调用getConnection()获取连接。

注意:这里之所以可以省略创建Driver对象和注册驱动是因为,创建Driver对象的目的是给DriverManager调用registerDriver()注册驱动时提供参数,而在Driver类加载到内存中时,有一个static方法会自动调用registerDriver()方法,从而自动注册驱动。

@Test
    public void test4() throws Exception {
        //通过反射将Driver加载到内存中
        Class.forName("com.mysql.cj.jdbc.Driver");
        //提供相关信息
        String user="root";
        String password="abc123";
        String url="jdbc:mysql://localhost:3306/test04_emp";
        //通过getConnection()获取连接
        Connection connect=DriverManager.getConnection(url,user,password);
        System.out.println(connect);
    }

方式五:通过配置文件的方式

  1. 创建配置文件
  2. 通过类的加载器生成指向配置文件的流
  3. 创建Properties对象,通过调用load()方法将配置文件加载到内存中
  4. 通过Properti对象的getProperty(String key)获取相关信息
  5. 通过反射的方式加载驱动
  6. 调用getConnection()获取连接
@Test
    public void test5() throws Exception {
        //通过类加载器创建一个指向配置文件的流
        InputStream input=ConnectionTest.class.getClassLoader().getResourceAsStream("test.properties");
        //创建Properties对象
        Properties infoProperties=new Properties();
        //以流为参数调用load()加载配置文件
        infoProperties.load(input);
        //获取相关信息
        String driver=infoProperties.getProperty("driver");
        String url=infoProperties.getProperty("url");
        String user=infoProperties.getProperty("user");
        String password=infoProperties.getProperty("password");
        //加载驱动
        Class.forName(driver);
        //获取连接
        Connection connection= DriverManager.getConnection(url, user, password);
        System.out.println(connection);
    }

我们通常都使用方式五

每种方式迭代的原因

第一种方式是直接通过使用指定数据库厂商的驱动来获取数据库连接的,但是我们希望程序具有更好的可移植性,所以采用反射的方式来获取驱动,这就产生了第二种方法;在开发中,我们通常都不使用Driver来获取连接,而是通过使用DriverManager来获得数据库连接,这就从第二种方式到了第三种方式;又因为Driver的实现类中有静态方法调用了regiesterDriver()方法,所以在通过反射的方式将类加载到内存中时,会自动注册驱动,我们可以将注册驱动的过程省略,这就产生了第四种方法;在前面的方法中,我们都是直接把账号密码和URL以及驱动的名称直接写在程序中的额,这不太符合我们日常的规范,也在一定程度上增加了程序的 风险,为此我们将相关信息保存在配置文件中,在程序中通过读取配置文件的方式来获取相关的信息,这就产生了最后一种也是我们最常用的方式。

方式五的优点

  1. 将需要的数据放到配置文件中,实现了数据和代码分离,减少了耦合性。
  2. 如果需要修改配置文件信息,只需要替换文件就可以,避免了重新打包文件。

总结

到此这篇关于JDBC获取数据库连接的5种方式的文章就介绍到这了,更多相关JDBC数据库连接内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 完整java开发中JDBC连接数据库代码和步骤

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现. 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(ClassNotFoundException e){ Sys

  • JDBC连接集群数据库的方法

    在连接数据库的url地址有点不一样 复制代码 代码如下: jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=IP1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=IP2)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=服务名))) url=jdbc:oracle:thin:@(DESCRIPTIO

  • 经常使用的JDBC连接数据库方式

    一.JDBC连接DB2 复制代码 代码如下: Class.forName("Com.ibm.db2.jdbc.net.DB2Driver"); String url="jdbc:db2://dburl:port/DBname" cn = DriverManager.getConnection( url, sUsr, sPwd ); 二.JDBC连接Microsoft SQLServer(microsoft) 复制代码 代码如下: Class.forName( &qu

  • JDBC如何获取数据库连接

    JDBC(Java Database Connectivity),即Java数据库连接.通过JDBC编程,可以使Java应用程序和数据库进行交互. JDBC驱动的方式有很多种,我们常用的驱动方式为:本地协议的纯Java驱动程序. JDBC编程的第一步,就是要获取数据库连接.所谓的 "获取数据库连接" 其实就是创建java.sql.Connection接口的实现对象.通过Connection的实现对象,可以使Java程序连接到数据库,并修改和获取数据库信息. 获取数据库连接有两种方式:1

  • Java中JDBC连接数据库详解

    一.概念 1. 为了能让程序操作数据库,对数据库中的表进行操作,每一种数据库都会提供一套连接和操作该数据库的驱动,而且每种数据库的驱动都各不相同,例如mysql数据库使用mysql驱动,oracle数据库使用oracle驱动,这样假如我们编写的程序哪一天想要换数据库,那样就会很不方便,因为所有连接数据库的代码都要从新编写.SUN公司为了简化.统一对数据库的操作,定义了一套java操作数据库的标准或者规范,这个规范就是JDBC. 2.JDBC全称为:Java Data Base Connectiv

  • Java使用JDBC连接数据库的实现方法

    本文实例讲述了Java使用JDBC连接数据库的实现方法,是Java数据库程序设计里非常实用的重要技巧.分享给大家供大家参考.具体如下: JDBC(Java Data Base Connectivity)数据库连接,通常我们在编写web应用或java应用程序要连接数据库时就要使用JDBC.使用JDBC连接数据库一般步骤有: 1.加载驱动程序 Class.forName(driver); 2.创建连接对象 Connection con = DriverManager.getConnection(ur

  • jdbc连接数据库步骤深刻分析

    创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现. 例如: 复制代码 代码如下: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(ClassNotFoundException e){ Sys

  • JDBC获取数据库连接的5种方式实例

    目录 方式一:直接通过数据库厂商提供的相关驱动 方法二:通过反射的方式来构造Driver对象 方式三:使用DriverManager来替换Driver获取连接 方法四:省略创建Driver对象和注册驱动 方式五:通过配置文件的方式 每种方式迭代的原因 方式五的优点 总结 方式一:直接通过数据库厂商提供的相关驱动 步骤 导入相关驱动(Build Path) 创建Driver类的实例化对象 获取要连接数据库的URL 创建Properties类的实例化对象,将账号和密码封装到该对象中 通过Driver

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

    目录 一.JDBC概念 二.JDBC获取数据库连接的5种方式 方式一 方式二 方式三 方式四 方式五 一.JDBC概念 Java DataBase Connectivity(Java数据库连接技术) 它是将Java与SQL结合且独立于特定的数据库系统的应用程序编程接口(API-它是一种可用于执行SQL语句的JavaAPI,即由一组用Java语言编写的类与接口所组成) JDBC的设计目的: 它是一种规范,设计出来的主要目的是为了让各个数据库开发商为Java程序员提供标准的数据访问类和接口,使得独立

  • C#获取路径的几种方式实例分析

    本文实例讲述了C#获取路径的几种方式.分享给大家供大家参考.具体如下: string str1 =Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名. string str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径. //备注按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如"C:\&q

  • 一文带你快速学会JDBC及获取连接的五种方式

    目录 1. JDBC基本介绍 2. JDBC快速入门 2.1 JDBC程序编写步骤 2.2 案例演示 2.2.1 前置工作,在数据库中建立对应表 2.2.2 前置工作,导入MySQL数据库的对应jar包 3. 相关类的介绍 3.1 Statement 3.2 ResultSet[结果集] 3.3 PreparedStatement 4. 关闭资源 5. 获取数据库连接的五种方式 方式一 方式二 方式三 方式四 方式五 总结 快速学会JDBC及获取连接的五种方式 1. JDBC基本介绍 JDBC为

  • java从命令行获取数据的三种方式代码实例

    这篇文章主要介绍了java从命令行获取数据的三种方式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 第一种:利用Scanner对象 import java.util.Scanner; public class TestInputOuput { public static void main(String[] args) { System.out.println("请输入:"); Scanner inp = new Scanne

  • Spring加载properties文件的两种方式实例详解

    在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修改源代码,这样更加方便.在Spring中也可以这么做,而且Spring有两种加载properties文件的方式:基于xml方式和基于注解方式.下面分别讨论下这两种方式. 1. 通过xml方式加载properties文件 我们以Spring实例化dataSource为例,我们一般会在beans

  • Hibernate中获取Session的两种方式代码示例

    Session:是应用程序与数据库之间的一个会话,是Hibernate运作的中心,持久层操作的基础.对象的生命周期/事务的管理/数据库的存取都与Session息息相关. Session对象是通过SessionFactory构建的,下面举个例子来介绍Hibernate两种获取session的方式. 日志,是编程中很常见的一个关注点.用户在对数据库进行操作的过程需要将这一系列操作记录,以便跟踪数据库的动态.那么一个用户在向数据库插入一条记录的时候,就要向日志文件中记录一条记录,用户的一系列操作都要在

  • Java 获取properties的几种方式

    spring下获取Properties方式 比如已有的commonConfig.properties main.db.driverClassName=com.mysql.jdbc.Driver main.db.url=jdbc\:mysql\://cloudpkdbrw.xxx.com\:3306/huagang?useUnicode\=true&characterEncoding\=UTF-8&zeroDateTimeBehavior\=convertToNull main.db.use

  • 详解iOS获取通讯录的4种方式

    本文实例为大家分享了iOS获取通讯录的4种方式,供大家参考,具体内容如下 使用场景 一些App通过手机号码来推荐好友,如 微博.支付宝 首先客户端会获取通讯录中的所有手机号然后将这些手机号提交到App服务器中,服务器会查找每个手机号对应的App账号如QQ号码返回到客户端,然后客户端根据服务器返回的账号列表来推荐好友. 获取联系人方式 方案一:AddressBookUI.framework框架 提供了联系人列表界面.联系人详情界面.添加联系人界面等 一般用于选择联系人 方案二:AddressBoo

  • php+mysqli数据库连接的两种方式

    本文实例讲述了php+mysqli数据库连接的两种方式.分享给大家供大家参考.具体如下: 这里讲述mysqli数据库连接两种方式比较,即面向对象与面向过程.代码如下: 第一种方式:面向对象的方式建立数据库连接 复制代码 代码如下: $mysqli = new MySQLi("localhost","root","1233456");//默认的 MySQL的类,其属性与方法见手册 if($mysqli->connect_error){//co

随机推荐