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

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

JDBC是Java语言访问关系数据库的标准规范,获取数据库连接是进行数据库操作的第一步,本文将为您介绍JDBC获取数据库连接的五种方式,并提供示例代码进行演示。

1. DriverManager获取连接

DriverManager是JDBC中用来管理驱动程序的基本服务,其通过DriverManager.getConnection()方法获取数据库连接,连接方式如下:

import java.sql.*;

public class ConnectDemo{
    public static void main(String[] args){
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance(); // 加载MySQL的JDBC驱动程序
            String url = "jdbc:mysql://localhost:3306/mydatabase"; // 数据库的url地址
            String user = "root";
            String password = "root";
            conn = DriverManager.getConnection(url, user, password); // 获取数据库连接

            // 下面可以进行数据库操作
            ...

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                conn.close(); // 关闭数据库连接
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

2. DataSource获取连接

DataSource是JDBC中获取数据源的方法,它是连接池的实现方式,提高了数据库连接的效率,其获取连接的方式如下:

import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;

public class ConnectDemo{
    public static void main(String[] args){
        Connection conn = null;
        try {
            BasicDataSource ds = new BasicDataSource();
            ds.setUrl("jdbc:mysql://localhost:3306/mydatabase");
            ds.setUsername("root");
            ds.setPassword("root");
            ds.setInitialSize(10);
            ds.setMaxActive(100);
            ds.setMaxIdle(30);
            ds.setMinIdle(10);
            ds.setMaxWait(5000);

            conn = ds.getConnection(); // 获取数据库连接

            // 下面可以进行数据库操作
            ...

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                conn.close(); // 关闭数据库连接
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

3. DriverManager获取连接(通过Properties方式)

另一种获取连接的方式是通过Properties方式,其使用DriverManager.getConnection(String url, Properties info)方法,以Properties方式定义数据库连接参数,获取连接的方式如下:

import java.sql.*;
import java.util.Properties;

public class ConnectDemo{
    public static void main(String[] args){
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance(); // 加载MySQL的JDBC驱动程序
            String url = "jdbc:mysql://localhost:3306/mydatabase"; // 数据库的url地址
            Properties info = new Properties();
            info.setProperty("user", "root");
            info.setProperty("password", "root");
            info.setProperty("useSSL", "false"); // 关闭SSL加密

            conn = DriverManager.getConnection(url, info); // 获取数据库连接

            // 下面可以进行数据库操作
            ...

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                conn.close(); // 关闭数据库连接
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

4. DriverManager获取连接(通过环境变量方式)

通过设置系统环境变量JAVA_OPTS来指定数据库连接参数,获取连接的方式如下:

import java.sql.*;

public class ConnectDemo{
    public static void main(String[] args){
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance(); // 加载MySQL的JDBC驱动程序
            String url = "jdbc:mysql://localhost:3306/mydatabase"; // 数据库的url地址
            String user = System.getProperty("USER");
            String password = System.getenv("PASSWORD");

            conn = DriverManager.getConnection(url, user, password); // 获取数据库连接

            // 下面可以进行数据库操作
            ...

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                conn.close(); // 关闭数据库连接
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

5. JNDI获取连接

JNDI(Java Naming and Directory Interface)是一种在Java应用程序中访问命名和目录服务的API,其通过JNDI数据源获取连接,获取连接的方式如下:

import java.sql.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

public class ConnectDemo{
    public static void main(String[] args){
        Connection conn = null;
        try {
            // 获取JNDI上下文
            Context ctx = new InitialContext();
            // 获取数据源
            DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mydatasource");
            // 获取连接
            conn = ds.getConnection();

            // 下面可以进行数据库操作
            ...

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                conn.close(); // 关闭数据库连接
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

示例代码中的url、user、password、mydatabase、mydatasource等参数,需要根据实际情况修改。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JDBC获取数据库连接的5种方式实例 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java实现扫雷游戏详细代码讲解

    Java实现扫雷游戏详细代码讲解 前言 扫雷是经典的小游戏之一,本文将详细讲解如何使用Java实现扫雷游戏,并提供完整的代码示例。 实现思路 界面设计:使用Swing开发GUI界面,布置扫雷棋盘、计时和雷数量显示。 地图生成:随机生成地图,并根据雷的数量给出提示。 扫雷逻辑:根据用户点击的位置判断是否为雷,显示相应的数字或“game over”等提示信息。 …

    Java 2023年5月23日
    00
  • Java基础之代码死循环详解

    Java基础之代码死循环详解 简介 代码死循环是指在程序运行过程中,因为某些原因造成程序不停地重复执行某一段代码的现象。死循环通常是因为程序设计不合理或者编写错误所导致的,如果长时间不会自动退出,会造成计算机死机或者卡死。代码死循环是编写程序时需要避免的错误。 常见死循环 for循环死循环 for(int i=0; i>=0; i++){ System…

    Java 2023年5月20日
    00
  • 关于@ResponseBody 默认输出的误区的解答

    当使用@ResponseBody注解返回结果时,Spring默认使用Jackson库将返回结果直接转换为JSON格式输出。这种行为经常会造成一些误解,下面针对一些误区进行解答。 误解一:@ResponseBody会自动添加@RestController? @RestController注解是@Controller和@ResponseBody的结合体,用于指示…

    Java 2023年5月26日
    00
  • 详解用Spring Boot零配置快速创建web项目

    使用Spring Boot可以快速创建Web项目,而且不需要进行繁琐的配置。下面是使用Spring Boot零配置创建Web项目的完整攻略: 创建一个Maven项目,并在pom.xml文件中添加以下依赖项: <dependency> <groupId>org.springframework.boot</groupId> &…

    Java 2023年5月14日
    00
  • Java基础之Stream流原理与用法详解

    Java基础之Stream流原理与用法详解 1. 什么是Stream流? Stream流是Java 8中引入的一种新的API,它允许我们在集合上进行的函数式操作。它使我们能够以声明式方式处理集合中的元素,而不是直接以循环形式迭代它们。在Java 8之前,Collections类提供了大量用于操作集合的方法。但是,为了使用这些方法,你必须在代码中写出来循环,这…

    Java 2023年5月27日
    00
  • SpringBoot中Dozer的使用小结

    《SpringBoot中 Dozer 的使用小结》 什么是 Dozer? Dozer是一个JavaBean与JavaBean之间的映射框架,它简化了JavaBean之间的转换,并且可以使用注解或XML文件定义映射规则。 Dozer的使用 引入依赖 在Maven中,我们需要添加以下依赖: <dependency> <groupId>co…

    Java 2023年5月20日
    00
  • JAVA中正则表达式匹配,替换,查找,切割的方法

    在Java中,可以使用正则表达式进行字符串匹配,替换,查找和切割等操作。使用正则表达式需要使用Java.util.regex包中的类。 正则表达式基本语法 正则表达式是一种特殊的字符串,可以用于描述匹配一个字符串的规则。正则表达式的基本语法如下: 1. 字符串 表示要匹配的字符串,例如 abc。 2. 字符集 表示可以匹配的字符集合,例如 [abc] 表示可…

    Java 2023年5月27日
    00
  • Spring使用Setter完成依赖注入方式

    Spring使用Setter完成依赖注入方式的完整攻略 什么是依赖注入 依赖注入(Dependency Injection,简称DI)是一种编程思想,它将一个对象所依赖的其他对象交给容器在运行期间动态地注入。这样可以消除类与类之间的耦合,降低代码的复杂度,提高代码的可维护性和可复用性。 Spring框架中使用依赖注入来管理对象之间的依赖关系,开发者只需要负责…

    Java 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部