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日

相关文章

  • jsp ${param.id}用法

    JSP ${param.id}用法 JSP,即Java Server Pages,是一种在HTML页面中插入Java代码的技术。${param.id}是其中非常实用的一种用法,可以将从浏览器发起的GET或POST请求中携带的参数值展示在页面上。 基本用法 在JSP页面中可以使用${param.id}的语法来获取请求参数中“id”的值。例如,如果当前请求的UR…

    Java 2023年6月15日
    00
  • ansible批量部署tomcat的方法

    这里为大家提供一份ansible批量部署tomcat的方法的详细攻略。 准备工作 在开始部署tomcat之前,需要完成以下准备工作: 确保在所有需要部署tomcat的机器上,都已经安装了ansible。 下载并安装Java和tomcat,这里我以centos系统为例。 yum install -y java tomcat 确保部署机器与被部署机器之间已经建立…

    Java 2023年5月20日
    00
  • java 判断两个对象是否为同一个对象实例代码

    判断两个对象是否为同一个对象实例,在Java中可以通过以下两种方式实现: 方法一:使用“==”运算符 在Java中,“==”运算符用于比较两个对象的内存地址是否相等,如果相等,则说明这两个对象是同一个实例,反之则不是。因此,我们可以使用该运算符判断是否两个对象是同一个实例。 下面是示例代码: public class ObjectDemo { public …

    Java 2023年5月26日
    00
  • java读取文件内容,解析Json格式数据方式

    Java 读取文件内容并解析 Json 格式数据的方式可以通过 Gson 这个 Google 提供的开源库来实现。 以下是实现步骤: 步骤1:导入Gson库 在 pom.xml 中添加以下依赖: <dependencies> <dependency> <groupId>com.google.code.gson</gr…

    Java 2023年5月20日
    00
  • mybatis简介与配置_动力节点Java学院整理

    下面我将介绍关于MyBatis的简介与配置,并附上两个示例供参考。 Mybatis简介 MyBatis是一个开源的Java持久化框架,它通过XML或注解实现了对SQL的映射,将程序中的Java对象自动映射到数据库中的对应表格。MyBatis可以很好地解决Java程序中数据的存取问题,同时它也提供了很好的扩展性。 MyBatis最初是iBATIS项目,2006…

    Java 2023年5月20日
    00
  • 五种JAVA GUI布局管理的方式

    下面我们来详细讲解“五种JAVA GUI布局管理的方式”。 概述 在Java图形用户界面(GUI)编程中,布局管理是重要的一部分。GUI布局管理的主要作用是定义GUI组件相对于容器的位置和大小。Java提供了五种布局管理方式,分别是FlowLayout、BorderLayout、GridLayout、GridBagLayout和SpringLayout。本篇…

    Java 2023年5月24日
    00
  • 简单探索 Java 中的惰性计算

    简单探索 Java 中的惰性计算 什么是惰性计算? 在Java中,常见的计算形式是立刻计算,在需要的时候将计算结果返回。但是在惰性计算中,计算过程会被延迟到真正需要的时候才计算,这种方式称为惰性计算。 为什么使用惰性计算? 使用惰性计算可以提高程序的效率,因为只有在真正需要计算结果的时候才会进行计算。同时,有些计算是非常耗时的,当程序中存在大量的不必要的计算…

    Java 2023年5月26日
    00
  • Spring Data JPA 简单查询–方法定义规则(详解)

    下面是针对“Spring Data JPA 简单查询–方法定义规则(详解)”这一话题的完整攻略: 一、Spring Data JPASpring Data JPA是一个基于Spring Framework的延伸项目,它提供了使用JPA进行数据持久化的方案。通过Spring Data JPA,我们不再需要编写许多常规的数据访问代码,这是因为Spring Da…

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