通过DriverManager获取数据库连接

修改一下配置文件

driver=com.mysql.cj.jdbc.Driver

jdbcUrl=jdbc:mysql://localhost:3306/testjdbc?serverTimezone=GMT%2B8

user=root

password=123456

代码(我觉得废话有点多,同一个知识点翻来覆去的讲,并且有的疑点还没解决)

比如说:利用Driver和DriverManager都能用不同的数据库,为什么DriverManager更好

package com.litian.jdbc;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.Driver;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.Properties;

/**

* @author: Li Tian

* @contact: litian_cup@163.com

* @software: IntelliJ IDEA

* @file: JDBCTest.java

* @time: 2019/12/15 18:56

* @desc: JDBC试验,Driver是一个接口:数据库厂商必须提供实现的接口,能从其中获取数据库连接。

*/

public class JDBCTest {

public Connection getConnection2() throws Exception {

// 1. 准备连接数据库的4个字符串。

// 1.1 创建Properties对象

Properties properties = new Properties();

// 1.2 获取jdbc.properties对应的输入流

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

// 1.3 加载1.2对应的输入流

properties.load(in);

// 1.4 具体决定user,password等4个字符串。

String user = properties.getProperty("user");

String password = properties.getProperty("password");

String jdbcUrl = properties.getProperty("jdbcUrl");

String driver = properties.getProperty("driver");

// 2. 加载数据库驱动程序

Class.forName(driver);

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

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

}

/**

* DriverManager是驱动的管理类

* 1. 可以通过重载的getConnection()方法获取数据库连接。较为方便

* 2. 可以同时管理多个驱动程序:若注册了多个数据库连接,则调动getConnection()方法时

* 传入的参数不同,则返回不同的数据库连接

*/

public void testDriverManager() throws Exception {

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

// 驱动的全类名

String driverClass = null;

String jdbcUrl = null;

String user = null;

String password = null;

// 读取类路径下的jdbc.propertites 文件

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");

// 2. 加载数据库驱动程序(对应的Driver实现类中有注册驱动的静态代码块程序)

// 下面的注册程序已经写好了,不需要自己写

// DriverManager.registerDriver((Driver) Class.forName(driverClass).newInstance());

Class.forName(driverClass);

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

Connection connection = DriverManager.getConnection(jdbcUrl, user, password);

System.out.println(connection);

}

public void test1() throws SQLException {

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

Driver driver = new com.mysql.jdbc.Driver();

// 2. 准备连接数据库的基本信息:url,user,password

String url = "jdbc:mysql://localhost:3306/girls";

Properties info = new Properties();

info.put("user", "root");

info.put("password", "tian19951103");

// 3. 调用Driver接口的connect(url, info)获取数据库连接

Connection connection = driver.connect(url, info);

System.out.println(connection);

}

// 编写一个通用的方法,在不修改源程序的情况下,可以获取任何数据库的连接

public Connection getConnection() throws Exception {

String driverClass = null;

String jdbcUrl = null;

String user = null;

String password = null;

// 读取类路径下的jdbc.propertites 文件

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) Class.forName(driverClass).newInstance();

Properties info = new Properties();

info.put("user", user);

info.put("password", password);

Connection connection = driver.connect(jdbcUrl, info);

return connection;

}

public void testGetConnection() throws Exception {

System.out.println(getConnection());

}

public static void main(String[] args) throws Exception {

// new JDBCTest().testGetConnection();

// new JDBCTest().testDriverManager();

Connection conn = new JDBCTest().getConnection2();

System.out.println(conn);

}

}

mysql drivermanager_MYSQL 之 JDBC(二): 数据库连接(二)通过DriverManager获取数据库连接...相关推荐

  1. 连接mysql解决网络抖动_网络抖动时候,获取数据库连接等待15分钟后报错。

    我们的服务器和数据库分布在不同的机房,现象就是每隔一小时左右,获取数据库连接就会等待15分钟后报异常,然后继续获取连接,执行SQL正常.服务器用的是druid1.0.17版本. 有没有可以设置连接超时 ...

  2. e2ee连接mysql数据库_E2EE应用服务器套件 - 文档 - [高级功能] 使用数据库连接池 - E2EE易语言网站敏捷开发框架...

    使用数据库连接池 E2EE内置ADO作为通用数据库解决方案. 使用数据库连接池和操作数据库主要有三个对象: ADODB数据库连接池 ADODB数据库连接 ADODB数据库分页 1. 创建连接池 创建数 ...

  3. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. Java数据库开发与应用之MySQL数据库、JDBC操作数据库、C3P0数据库连接池,Java反射等

    MySQL数据库,JDBC接口,MyBatis框架等,掌握的数据的存放和管理. Java数据库开发基础,介绍MySQL数据库.JDBC操作数据库.C3P0数据库连接池,Java反射等内容,进行油画商城 ...

  5. SpringMVC+Hibernate +MySql+ EasyUI实现POI导出Excel(二)

    为什么80%的码农都做不了架构师?>>> SpringMVC+Hibernate +MySql+ EasyUI实现CRUD(一) 大概的截图.很简单的小功能 注:使用的是MyEcli ...

  6. 20141230 mysql数值类型和列属性二

    20141230 mysql数值类型和列属性二 枚举字符串 枚举字符串指的是在定义之初就确定要存放的字符串有哪些,然后在数据进行存储的时候就只能存储已经定义过的字符串,只能使用任意的一个字符串.(单选 ...

  7. 使用InstallShield下部署ASP.NET网站和MySQL,目标机为Win7——(二)使用InstallShield部署非安装版MySQL...

    接上一篇文章http://www.cnblogs.com/wigis/archive/2012/12/01/2797505.html 在使用bat批处理可以自动部署MySQL服务端后,我们使用Inst ...

  8. 零基础带你学习MySQL—foreign key 外键(二十六)

    零基础带你学习MySQL-foreign key 外键(二十六) -- 外键演示 -- 创建 主表 my_class CREATE TABLE my_class ( id INT PRIMARY KE ...

  9. 零基础带你学习MySQL—not null 非空(二十四)

    零基础带你学习MySQL-not null 非空(二十四)

最新文章

  1. 打通新场景,源创计划第一弹!“悟道”大模型应用合作交流会
  2. hadoop记录篇10-数据仓库查询组件impala
  3. 用python读取stata文件及写入and注意事项
  4. rust(34)-Rust and WebAssembly(2)
  5. Solr所有的查询解析器Query Parsers(转:http://blog.csdn.net/jiangchao858/article/details/53859731)
  6. Activity加载View调用顺序
  7. 错误./hello: error while loading shared libraries: libQtGui.so.4: cannot open shared object file:
  8. input限制输入字符
  9. 《程序设计技术》第三章例程
  10. Java中String, StringBuilder和StringBuffer
  11. 在TCP三次握手后插入伪造的TCP包
  12. java debug 宏_#ifdef _DEBUG用法小结
  13. 蜻蜓安全编写插件模块 webcrack 实践
  14. 寿险精算实验一——编制生命表换算表
  15. html自我介绍怎么弄,用html设计一个自我介绍的静态网页
  16. 「Computer keyboard」- 在键盘中,手指的摆放位置 @20210331
  17. Win10开始菜单打不开怎么办?
  18. 安装maskrcnn-banchmark时遇到的“AT_CHECK“ is undefined错误
  19. Windows Server 2012修改光驱盘符
  20. python 通达信数据_[转载]怎么样才能得到 07年08年的1分钟线数据呢,python 和 通达信可以...

热门文章

  1. SpringSecurity用数据库信息做认证
  2. Protobuf序列化的原理-存储格式
  3. 并发的发展历史-线程的出现
  4. 用注解还是用xml 配置?
  5. Quartz框架基于Calendar的排除规则
  6. 切点方法的事务参数的配置
  7. Spring集成Junit步骤和代码实现
  8. 缓存-分布式锁-缓存一致性解决
  9. 编写网关过滤器统一校验登录状态
  10. Ant Design入门之开始使用