一、 最古老的方法(通过 Driver 接口直接连接数据库)


  1. 首先创建一个 Driver 实现类的对象

            Driver dirver = new com.mysql.jdbc.Driver();
  2. 准备连接数据库的基本信息:url、user、password
         String url = "jdbc:mysql://127.0.0.1:3306/java_jdbc";
    Properties info = new Properties();
    info.put("user", "root");
    info.put("password", "123456");
  3. 调用 Driver 借口的 connect(url, info) 获取数据库连接
             Connection connection = dirver.connect(url, info);

  实例代码:

         @Test
public void testDriver() throws SQLException {
// 1. 创建一个 Driver 实现类的对象
Driver dirver = new com.mysql.jdbc.Driver(); // 2. 准备链接数据库的基本信息:url, user, password
String url = "jdbc:mysql://127.0.0.1:3306/java_jdbc";
Properties info = new Properties();
info.put("user", "root");
info.put("password", "123456"); // 3. 调用 Driver 借口的 connect(url, info) 获取数据库连接
Connection connection = dirver.connect(url, info);
System.out.println(connection);
}

二、编写一个通用的方法(通过Driver 接口实现


  1. 定义数据库基本信息变量

         String driverClass = null;
    String jdbcUrl = null;
    String user = null;
    String password = null;
  2. 创建一个properties文件,用来存放数据库连接基本信息
         driver=com.mysql.jdbc.Driver
    jdbcUrl=jdbc:mysql://127.0.0.1:3306/java_jdbc
    user=root
    password=123456
  3. 读取类路径下的jdbc.properties 文件
     InputStream in =
    getClass().getClassLoader().getResourceAsStream("jdbc.properties");
    Properties properties = new Properties();
    properties.load(in);
  4. 从properties文件获取数据库基本信息
     driverClass = properties.getProperty("driver");
    jdbcUrl = properties.getProperty("jdbcUrl");
    user = properties.getProperty("user");
    password = properties.getProperty("password");
  5. 通过反射创建 Driver 对象
     Driver driver = (Driver) Class.forName(driverClass).newInstance();
  6. 准备用户名和密码,并连接数据库
     Properties info = new Properties();
    info.put("user", user);
    info.put("password", password);
    Connection connection = driver.connect(jdbcUrl, info);

实例代码:

     public Connection getConnection() throws Exception {
String driverClass = null;
String jdbcUrl = null;
String user = null;
String password = null; // 读取类路径下的jdbc.properties 文件
InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(in); driverClass = properties.getProperty("driver");
jdbcUrl = properties.getProperty("jdbcUrl");
user = properties.getProperty("user");
password = properties.getProperty("password"); // 通过反射创建 Driver 对象
Driver driver = (Driver) Class.forName(driverClass).newInstance(); Properties info = new Properties();
info.put("user", user);
info.put("password", password); // 通过 Driver 的 connect 方法连接数据库.
Connection connection = driver.connect(jdbcUrl, info); return connection;
} @Test
public void testGetConnection() throws Exception {
System.out.println(getConnection());
}

三、通过DriverManager 驱动管理类获取数据库连接


  1. 准备数据库连接的四个字符串

    1).创建 properties 对象

 Properties properties = new Properties();

    2).获取jdbc.properties 对应的输入流

 InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("jdbc.properties");

    3).加载对应的输入流

     properties.load(inputStream);

    4).具体决定 user、password、url、driver四个字符串

 String driver = properties.getProperty("driver");
String jdbcUrl = properties.getProperty("jdbcUrl");
String user = properties.getProperty("user");
String password = properties.getProperty("password");

  2. 加载数据库驱动程序

 Class.forName(driver);

  3. 通过 Drivermanager 的 getConnection() 方法获取数据库连接

 return DriverManager.getConnection(jdbcUrl, user, password);

实例代码:

     @Test
public void testGetConnection23() throws Exception {
System.out.println(getConnection2());
}
public Connection getConnection2() throws IOException, ClassNotFoundException, SQLException{ Properties properties = new Properties(); InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("jdbc.properties"); properties.load(inputStream); String driver = properties.getProperty("driver");
String jdbcUrl = properties.getProperty("jdbcUrl");
String user = properties.getProperty("user");
String password = properties.getProperty("password"); Class.forName(driver); return DriverManager.getConnection(jdbcUrl, user, password);
}

本文只是作者的笔记,只供参考,有错误欢迎指出!2017-10-28  11:14:03

JDBC连接数据库的几种方法的更多相关文章

  1. C#连接数据库的四种方法(转)

    C#连接数据库的四种方法 在进行以下连接数据库之前,请先在本地安装好Oracle Client,同时本次测试System.Data的版本为:2.0.0.0. 在安装Oracle Client上请注意, ...

  2. 转 mysql 远程连接数据库的二种方法

    mysql 远程连接数据库的二种方法   一.连接远程数据库: 1.显示密码 如:MySQL 连接远程数据库(192.168.5.116),端口“3306”,用户名为“root”,密码“123456” ...

  3. Java通过JDBC连接数据库的三种方式!!!并对数据库实现增删改查

    前言 java连接数据库完整流程为: 1,获得驱动(driver),数据库连接(url),用户名(username),密码(password)基本信息的三种方式. 2,通过获得的信息完成JDBC实现连 ...

  4. Qt连接数据库的两种方法

    我曾经想过,无论在哪个平台下开发,都不要再接触SQL Server了,但显然不行.我们是来看世界的,不是来改变世界的,想通就好. 前两天,尝试了一下Qt下远程访问数据库.在macOS下,用Qt 5.1 ...

  5. JDBC连接数据库的四种方式:DriverManager,DataSource,DBCP,C3P0

    方法1:使用java.sql.DriverManager类 驱动管理器类,用于管理所有注册的驱动程序. (注:DataSource 接口是 JDBC 2.0 API 中的新增内容,它提供了连接到数据源 ...

  6. mysql 远程连接数据库的二种方法

    http://blog.csdn.net/freecodetor/article/details/5799550 一.连接远程数据库: 1.显示密码 如:MySQL 连接远程数据库(192.168.5 ...

  7. mysql 远程连接数据库的二种方法

    一.连接远程数据库: 1.显示密码 如:MySQL 连接远程数据库(192.168.5.116),端口"3306",用户名为"root",密码"123 ...

  8. JDBC的概念、实现原理与连接数据库的几种方法

    1.首先要知道jdbc(概念): 使用Java代码发送sql语句的技术就是jdbc技术(jdbc英文全称:Java DataBase Connectivity,java数据库连接).即jdbc是一个接 ...

  9. MySQL之连接数据库的两种方法

    方法一: package DB; import java.sql.Connection; import java.sql.DriverManager; public class Conn { // 定 ...

随机推荐

  1. 【模版】AC自动机(简单版)

    题目背景 这是一道简单的AC自动机模版题. 用于检测正确性以及算法常数. 为了防止卡OJ,在保证正确的基础上只有两组数据,请不要恶意提交. 题目描述 给定n个模式串和1个文本串,求有多少个模式串在文本 ...

  2. Jquery几行代码解决跟随屏幕滚动DIV

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 关于SEO的一些见解---关键词的选取布局以及内外链的建设

    前言     SEO是英文 Search EngineOptimiation的缩写,中文翻译为"搜索引擎优化"简单地说, SEO就是从搜索引擎上获得流量的技术 . 搜索引掌优化的主 ...

  4. C++类中静态变量和静态方法使用介绍

    静态成员的提出是为了解决数据共享的问题.实现共享有许多方法,如:设置全局性的变量或对象是一种方法.但是,全局变量或对象是有局限性的.这一章里,我们主要讲述类的静态成员来实现数据的共享. 静态数据成员 ...

  5. 吐槽CSDN--想赚钱想疯了--强行升级皮肤--增加广告位

    一直对CSDN很有好感,和博客园同是技术分享的好平台,但是界面更清爽,用户间互动也较多.在学生时代就一直在用,平时抄个作业,竞赛搜个题,论文需要凑字数等等.当年为了下载一份源代码,或者为了下载某本买不 ...

  6. 【完美解决】2017打开MVC 4项目,cshtml页面提示‘当前上下文不存在名称model’

    时间:2017/10/19 背景:领导让再之前的MVC 4老项目上新增功能,从GIT上拉取下来,使用VS2017打开之后,cshtml界面所有和Razor相关的代码均被提示‘当前上下文不存在名称XXX ...

  7. Ubuntu15.04 网站服务器环境搭建,php/html/css等学习环境搭建教程

    ---恢复内容开始--- 本文部分参考自:http://www.cnblogs.com/emouse/archive/2013/06/07/3124009.html 原文中存在少量错误,已改正. 首先 ...

  8. PHP知识大全

    --------------------------------------------------------- PHP知识大全 ---------------------------------- ...

  9. sys.argv向脚本中传递参数

    可以向脚本中传递无限多个参数,其值是一个列表,默认sys.argv[0]内容是脚本文件路径加文件名 test.py文件中的内容如下: #! /usr/bin/python3import sys pri ...

  10. Vuex state 状态浅解

    对于Vuex中的state里面的理解总是有些欠缺,机制似乎理解了.但是还有很多的不足,在这就先浅谈下自己的理解. vuex 机制中,定义了全局Store,在各个vue组件面的this.$store指向 ...