JDBC编程:获取数据库连接
JDBC(Java Database Connectivity),即Java数据库连接。通过JDBC编程,可以使Java应用程序和数据库进行交互。
JDBC驱动的方式有很多种,我们常用的驱动方式为:本地协议的纯Java驱动程序。
JDBC编程的第一步,就是要获取数据库连接。所谓的 “获取数据库连接” 其实就是创建java.sql.Connection接口的实现对象。通过Connection的实现对象,可以使Java程序连接到数据库,并修改和获取数据库信息。
获取数据库连接有两种方式:1.通过java.sql.Driver接口获取数据库连接,2.通过java.sql.DriverManager(驱动管理类)获取数据库连接。
为了使程序更具有通用性,我们可以通过读取配置文件的方式来获取连接数据库所需要的信息。这样可以通过修改配置文件的方式,使Java程序连接到不同的数据库。
在进行JDBC编程前,要先导入数据库厂商提供的JDBC驱动程序。
以下是获取数据库连接的两种方式的程序演示。
[1] 通过java.sql.Driver接口获取数据库连接
/**
* 1.通过java.sql.Driver接口获取数据库连接
* 2.使用配置文件读取连接信息,使程序更加灵活
*/
package com.pack02; import java.io.InputStream;
import java.sql.Connection;
import java.sql.Driver;
import java.util.Properties; import org.junit.Test; public class TestDriver { @Test
public void testDriver() throws Exception { //1.将配置文件中的连接信息获取到Properties对象中
InputStream is =
this.getClass().getClassLoader().getResourceAsStream("setting.properties"); Properties setting = new Properties();
setting.load(is); //2.从Properties对象中读取需要的连接信息
String driverName = setting.getProperty("driver");
String url = setting.getProperty("url");
String user = setting.getProperty("user");
String password = setting.getProperty("password"); //3.创建Driver对象
Driver driver = (Driver)Class.forName(driverName).newInstance(); Properties info = new Properties(); //driver的connect方法中需要一个Properties型的参数
info.put("user", user);
info.put("password", password); //4.使用driver的connect方法获取数据库连接
Connection conn = driver.connect(url, info);
System.out.println( conn );
}
}
[2] 通过java.sql.DriverManager(驱动管理类)获取数据库连接
/**
* 1.通过java.sql.DriverManager(驱动程序管理类)获取数据库连接
* 2.使用配置文件读取连接信息,使程序更加灵活
*/
package com.pack02; import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties; import org.junit.Test; public class TestDriverManager { @Test
public void testDriverManager() throws Exception { //1.将配置文件中的连接信息获取到Properties对象中
InputStream is =
this.getClass().getClassLoader().getResourceAsStream("setting.properties"); Properties setting = new Properties();
setting.load(is); //2.从Properties对象中读取需要的连接信息
String driverName = setting.getProperty("driver");
String url = setting.getProperty("url");
String user = setting.getProperty("user");
String password = setting.getProperty("password"); //3.加载驱动程序,即将数据库厂商提供的Driver接口实现类加载进内存;
// 该驱动类中的静态代码块包含有注册驱动的程序,在加载类时将被执行
Class.forName(driverName); //4.通过DriverManager类的静态方法getConnection获取数据连接
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println( conn );
}
}
[3] 配置文件中需要的连接信息
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/[....1....]?serverTimezone=GMT%2B8&useSSL=false
user=root
password=[....2....]
注意:1. 上述信息中,[....1....] 替换成具体的数据库名称,[....2....] 替换成root密码。
2. 在连接高版本的 MySQL 数据库时,要注意 driver 的包路径 (高版本MySQL多了 “cj” ),url 连接地址的补充信息。(笔者的MySQL版本为8.0)
注:希望与各位读者相互交流,共同学习进步。
JDBC编程:获取数据库连接的更多相关文章
- JDBC 编程步骤
java访问数据库的步骤如下: 加载数据库驱动 通常使用Class.forName(driverClass)来加载驱动 // 加载MySQL驱动 Class.forName("com.mys ...
- JDBC编程学习笔记之数据库连接池的实现
在JDBC编程的时候,获取到一个数据库连接资源是很宝贵的,倘若数据库访问量超大,而数据库连接资源又没能得到及时的释放,就会导致系统的崩溃甚至宕机.造成的损失将会是巨大的.再看有了数据库连接池的JDBC ...
- JAVA jdbc获取数据库连接
JDBC获取数据库连接的帮助类 import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManage ...
- JDBC 学习笔记(四)—— JDBC 加载数据库驱动,获取数据库连接
1. 加载数据库驱动 通常来说,JDBC 使用 Class 类的 forName() 静态方法来加载驱动,需要输入数据库驱动代表的字符串. 例如: 加载 MySQL 驱动: Class.forName ...
- MYSQL 之 JDBC(二): 数据库连接(二)通过DriverManager获取数据库连接
通过DriverManager获取数据库连接 修改一下配置文件 driver=com.mysql.cj.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/ ...
- MYSQL 之 JDBC(一): 数据库连接(一)通过Driver接口获取数据库连接
通过Driver接口获取数据库连接 数据持久化 数据库存取技术分类 JDBC直接访问数据库 JDO技术 第三方O/R工具,如Hibernate,ibatis等JDBC是java访问数据库的基石 JDB ...
- 在IDEA中使用JDBC获取数据库连接时的报错及解决办法
在IDEA中使用JDBC获取数据库连接时,有时会报错Sat Dec 19 19:32:18 CST 2020 WARN: Establishing SSL connection without ser ...
- 【JDBC核心】获取数据库连接
获取数据库连接 要素一:Driver 接口实现类 Driver 接口: java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口.这个接口是提供给数据库厂商使用的,不同数据库厂商提 ...
- 单独使用jdbc编程问题总结(一)
在学习Mybatis之前,我们先来回顾JDBC编程的相关知识.在此基础上深入的学习Mybatis框架.如有错误,敬请指正. (一)首先我们既然要使用jdbc,当然是要操作数据库了.创建一个名为:myb ...
随机推荐
- Java基础之 学java从宝宝的命令行做起
JAVA学习笔记 JAVA命令行 在当前文件的命令行下 编译:输入命令javac GetGreeting.java 执行 命令 Java GetGreeting 有package包的程序 1.到文件当 ...
- TR move up && TR move down
code display :: <!DOCTYPE HTML><html> <head> <link href="boo ...
- bootstrap模态框实现相对定位拖拽
1.正常的拖拽是用绝对定位absolute来实现的,可是bootstrap的模态框是用relative,为了统一更改方便,就照着相对定位来实现拖拽效果. $(".modal .modal-h ...
- node:fs-extra模块
var fs = require('fs-extra'); //复制 并会覆盖已有文件 fs.copy('./demo/index.html','./demo/index2.html' ,(err) ...
- 面试题之------Java 反射机制
一.反射机制概述 Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法.这种在运行时动态的获取信息以及动态调用对象的方法 ...
- 如何将bug杀死在摇篮里?
阿里妹导读:在欧洲中世纪的传说中,有一种叫“人狼”的妖怪,就是人面狼身.它们会讲人话,专在月圆之夜去袭击人类.而且传说中对“人狼”用一般的枪弹是不起作用的,普通子弹都伤不到也打不死它,只有一种用银子作 ...
- #学习笔记#e2e学习使用(一)
本文仅限于记录本人学习的过程,以及怎么踩的坑,是如何解决的.逻辑肯定是混乱的,有用之处会抽出共通另行发帖. 最终目标:要运用于Vue项目中,进行功能测试甚至自动化测试. 一.e2e概念 理解:end ...
- Oracle彻底杀掉进程
kill session 是DBA经常碰到的事情之一.如果kill 掉了不该kill 的session,则具有破坏性,因此尽可能的避免这样的错误发生.同时也应当注意,如果kill 的session属于 ...
- February 25 2017 Week 8 Saturday
Energy and persistence can conquer all things. 能量和毅力可以征服一切. I have the persistence, but it seems I a ...
- Jmeter入门17 获取时间点前后一定间隔的时间 __timeShift()
接口获取时间点前后一定间隔的时间函数: __timeShift(时间格式, 特定时间点(缺省当前时间),时间间隔,地区格式(默认),变量名( 可不填,填写后其他地方用${变量名}引用 )) 举例: 1 ...