通过Driver接口获取数据库连接

数据持久化

数据库存取技术分类

  JDBC直接访问数据库
  JDO技术
  第三方O/R工具,如Hibernate,ibatis等
JDBC是java访问数据库的基石

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

JDBC接口(API)包括两个层次:

  • 面向应用的API:java api,抽象接口,供应用程序开发人员使用(连接数据库,执行SQL语句,获得结果)。
  • 面向数据库的API:java driver api,供开发商开发数据库驱动程序用。

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

可以通过Driver的实现类对象获取数据库连接

  加入mysql驱动

    解压mysql-connector-java.zip

    在挡墙项目下新建lib目录

    吧.jar文件复制到lib目录下

    右键buildpath,add to buildpath加入到类路径下

  JDBC的URL的标准由三部分组成,各部分间用冒号分隔。

    jdbc:<子协议>:<子名称>

    协议:JDBC URL中的协议总是jdbc

    子协议:子协议用于标识一个数据库驱动程序

    子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息

  遇到的问题:

    进不去,各种报错:可能是密码错误了。https://blog.csdn.net/QQ17680473835/article/details/81841180

    time zone错误:https://blog.csdn.net/qq_19332219/article/details/102847809

package com.litian.jdbc;
import java.sql.Connection;
import java.sql.Driver;
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 static void main(String[] args) 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);
}
}

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

解决方案:把数据库驱动Driver 实现类的全类名、url、user、password放入一个配置文件中,通过修改配置文件的方式实现和具体的数据库解耦。

jdbc.properties

driver=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/girls
user=root
password=tian19951103

JDBCTest

package com.litian.jdbc;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.Driver;
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 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();
}
}

————————————————
版权声明:本文为CSDN博主「李英俊小朋友」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_21579045/article/details/105386353

最新文章

  1. LA
  2. 解密jQuery事件核心 - 模拟事件(四)
  3. Java提高篇(二六)-----hashCode
  4. BroadcoastReceiver之短信到来监听和获取内容
  5. Android往SD卡上存储文件
  6. 获取AVCaptureSession samplebuffer 一像素的 rgb值
  7. 详说 Cookie, LocalStorage 与 SessionStorage
  8. How Tomcat Works(四)
  9. rtp的封包与拆包h264
  10. Linux 锁
  11. Storm系列(十八)事务介绍
  12. Tuple初探
  13. centos 源码安装git
  14. 老李分享:Web Services 架构 1
  15. Oracle 触发器的使用
  16. 高德地图 地铁图adcode 城市代码
  17. docker初体验,搭建自用的gitlab服务
  18. 前端浏览器自动刷新神器:Browsersync
  19. StringRedisTemplate操作Redis
  20. 从零开始学 Web 之 BOM(三)offset,scroll,变速动画函数

热门文章

  1. TensorFlow从0到1之TensorFlow优化器(13)
  2. os模块查看系统数据
  3. arduino连接1602LCD方法
  4. java中的excel操作
  5. Jmeter 测试接口
  6. 尚硅谷 dubbo学习视频
  7. unable to load script from assets &#39;index.android bundle&#39;
  8. .Net: C#中的委托(Delegate)和事件(Event)
  9. Yolo训练自定义目标检测
  10. c# 操作Redis的五种基本类型总结