1、JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、统一的sQL数据库存取和操作的公共接口。

2、Java中的几种数据库存取技术:

--1)JDBC直接访问数据库;

--2)JDO技术;

--3)第三方O/R工具,如Hibernate,ibatis等;

2、通过Driver接口获取数据库连接:连接任何类型的数据库

--方法:把数据库驱动Driver实现类的全类名、url、user、password放入一个配置文件中,通过修改配置文件的方式实现。

--实现:

public Connection getConnection() throws Exception{
String driverClassName = null;
String jdbcUrl = null;
String user = null;
String password = null;
//读取属性文件 jdbc.properties 中的配置信息
Properties tmpPro = new Properties();
InputStream in = new FileInputStream(new File("jdbc.properties"));
tmpPro.load(in); driverClassName = tmpPro.getProperty("driver");
jdbcUrl = tmpPro.getProperty("jdbcurl");
user = tmpPro.getProperty("user");
password = tmpPro.getProperty("password"); //通过反射创建 Driver类
Driver driver = (Driver)Class.forName(driverClassName).newInstance(); //创建Properties类设置账号密码
Properties info = new Properties();
info.put("user", user);
info.put("password", password); //通过Driver的connect()方法连接数据库并获得Connection对象
Connection conn = driver.connect(jdbcUrl, info); return conn;
}

3、通过DriverManager获取数据库连接:

public Connection getConnection() throws Exception{
//从配置文件读取信息
Properties properties = new Properties();
InputStream in = new FileInputStream(new File("jdbc.properties"));
properties.load(in);
in.close(); String driverClassName = properties.getProperty("driver");
String jdbcUrl = properties.getProperty("jdbcurl");
String user = properties.getProperty("user");
String password = properties.getProperty("password"); //DriverManager.registerDriver(Class.forName(driverClassName).newInstance());
//加载数据库驱动程序
Class.forName(driverClassName); //通过DriverManager的getConnection()方法获取数据库连接。
return DriverManager.getConnection(jdbcUrl, user, password);
}

--在加载数据库驱动程序的时候也可以使用DriverManager的registerDriver()方法来加载,但是由于在对应的Driver类中已经写有注册驱动的静态代码块,因此在使用Class.forName()加载Driver类时会执行这个静态代码块,与DriverManager.registerDriver(Class.forName(driverClassName).newInstance());的效果相同。如果使用DriverManager.registerDriver(Class.forName(driverClassName).newInstance())来加载驱动,会实例化两个Driver类的对象,因此推荐直接使用Class.forName()来加载驱动。

--使用DriverManager获取数据库连接较为方便,同时它可以管理多个驱动程序,当传入不同的url,user等参数时将返回不同类型的数据库连接。

JDBC--获取数据库连接的更多相关文章

  1. JAVA jdbc获取数据库连接

    JDBC获取数据库连接的帮助类 import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManage ...

  2. 在IDEA中使用JDBC获取数据库连接时的报错及解决办法

    在IDEA中使用JDBC获取数据库连接时,有时会报错Sat Dec 19 19:32:18 CST 2020 WARN: Establishing SSL connection without ser ...

  3. JDBC获取数据库连接

    是什么? JDBC:Java Data Base Connectivity(java数据库连接) 为什么用? sun公司提供JDBC API接口,数据库厂商来提供实现 我们需要用哪个数据库就加载那个数 ...

  4. JDBC获取数据库连接慢

    RHEL6.4 获取Oracle数据库链接时快时慢,RHEL7.3获取Oracle数据库链接时一直很慢能够达到五万毫秒. 解决方法: 修改$JAVA_HOME/jre/lib/security/jav ...

  5. JDBC编程:获取数据库连接

    JDBC(Java Database Connectivity),即Java数据库连接.通过JDBC编程,可以使Java应用程序和数据库进行交互. JDBC驱动的方式有很多种,我们常用的驱动方式为:本 ...

  6. JDBC 学习笔记(四)—— JDBC 加载数据库驱动,获取数据库连接

    1. 加载数据库驱动 通常来说,JDBC 使用 Class 类的 forName() 静态方法来加载驱动,需要输入数据库驱动代表的字符串. 例如: 加载 MySQL 驱动: Class.forName ...

  7. MYSQL 之 JDBC(二): 数据库连接(二)通过DriverManager获取数据库连接

    通过DriverManager获取数据库连接 修改一下配置文件 driver=com.mysql.cj.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/ ...

  8. MYSQL 之 JDBC(一): 数据库连接(一)通过Driver接口获取数据库连接

    通过Driver接口获取数据库连接 数据持久化 数据库存取技术分类 JDBC直接访问数据库 JDO技术 第三方O/R工具,如Hibernate,ibatis等JDBC是java访问数据库的基石 JDB ...

  9. 【JDBC核心】获取数据库连接

    获取数据库连接 要素一:Driver 接口实现类 Driver 接口: java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口.这个接口是提供给数据库厂商使用的,不同数据库厂商提 ...

  10. jdbc java数据库连接 3)Statement接口之执行DDL和DML语句的简化

    上一章的代码中,可以发现,jdbc执行DDL和DML有几个步骤都是一样的: 1)执行语句开始时,创建驱动注册对象.获取连接的数据库对象.创建Statement对象 // 创建驱动注册对象 Class. ...

随机推荐

  1. 寒假pta二

    整除光棍 这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除.比如,111111就可以被13整除. 现在 ...

  2. 吴裕雄 python 神经网络——TensorFlow 实现LeNet-5模型处理MNIST手写数据集

    import os import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist import ...

  3. 虚拟交换系统-VSS

    1.虚拟交换系统VSS技术概述 VSS的特点: VSS将两台Catalyst 6500/4500系列交换机组合为单一虚拟交换机,对外来看,只有一台交换机,管理冗余链路如同管理自己的一个单一接口. VS ...

  4. AireOS WLC配置抓包

    这个Note主要列举在AireOS WLC上如何抓包.它实现的步骤也相对比较简单: 1.开启debug packet, 2.有数据被抓取到时,会以16进制的形式在WLC上输出, 3.我们将输出信息保存 ...

  5. JS vue 组件创建过程

    https://www.jianshu.com/p/3504a1edba42 vue.js原生组件化开发(一)——组件开发基础 0.3472017.05.09 12:00:54字数 1120阅读 33 ...

  6. Oracle的TO_CHAR()格式化数字为百分数的字符串

    TO_CHAR(-0.926903249,'FM999999990.00') || '%' 说明: 1,(点号) :'99.99' : 点号,不要念为"句号",句号是个圆圈,点号只 ...

  7. Android的TextView在显示文字的时候,如果有段中文有英文,有中文,有中文标点符号,你会发现,当要换行的时候遇到中文标点, 这一行就会空出很多空格出来

    一.问题描述: Android的TextView在显示文字的时候,如果有段中文有英文,有中文,有中文标点符号,你会发现,当要换行的时候遇到中文标点, 这一行就会空出很多空格出来.原因是: 1) Tex ...

  8. iOS 使用 Xcode8 制作动态库及静态库

    在使用第三方 SDK 时,经常遇到他们提供的仅仅只有一个动态或静态库,并不能获取源码.使用动态库 FrameWork 或 静态库 Lib,可以满足不想把核心代码的具体实现向使用者展示,又能避免其他人错 ...

  9. 20199317 myod实验

    myod实验 实验内容: 1 复习c文件处理内容 2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能 3 main与其他分开,制作静态库和动态库 4 编写Mak ...

  10. jquery-ajax的用法

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