JDBC系列:(1)通过JDBC连接数据库
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,1、什么是JDBC2、JDBC连接数据库的三种方式2.1、第一种实现方式2.2、第二种实现方式2.3、第三种实现方式3、com.mysql.jdbc.Driver的内部实现1、什么是JDBC使用jav
千家信息网最后更新 2025年11月07日JDBC系列:(1)通过JDBC连接数据库
1、什么是JDBC
2、JDBC连接数据库的三种方式
2.1、第一种实现方式
2.2、第二种实现方式
2.3、第三种实现方式
3、com.mysql.jdbc.Driver的内部实现
1、什么是JDBC
使用java代码(程序)发送sql语句的技术
使用jdbc发送sql前提需要知道:数据库的IP地址、端口、数据名、用户名和密码。
JDBC的URL=协议名+子协议名+数据源名。a 协议名总是"jdbc"。b 子协议名由JDBC驱动程序的编写者决定。c 数据源名也可能包含用户与口令等信息;这些信息也可单独提供。几种常见的数据库连接-------------------------------oracle------------------驱动:oracle.jdbc.driver.OracleDriverURL:jdbc:oracle:thin:@machine_name:port:dbname注:machine_name:数据库所在的机器的名称; port:端口号,默认是1521-------------------------------mysql-------------------驱动:com.mysql.jdbc.DriverURL:jdbc:mysql://machine_name:port/dbname注:machine_name:数据库所在的机器的名称; port:端口号,默认3306 ---------------------------SQL Server------------------驱动:com.microsoft.jdbc.sqlserver.SQLServerDriverURL:jdbc:microsoft:sqlserver://<:port>;DatabaseName= 注:machine_name:数据库所在的机器的名称; port:端口号,默认是1433--------------------------DB2--------------------------驱动:com.ibm.db2.jdbc.app.DB2DriverURL:jdbc:db2:// <:port>/dbname注:machine_name:数据库所在的机器的名称; port:端口号,默认是5000-------------------------------------------------------
2、JDBC连接数据库的三种方式
2.1、第一种实现方式
package com.rk.db.a_jdbc;import java.sql.Driver;import java.sql.Connection;import java.sql.SQLException;import java.util.Properties;/** * jdbc连接数据库 * 第一种方法:通过创建JDBC实现类的驱动类对象建立数据库连接 * @author RK * */public class Demo01{ public static void main(String[] args) throws SQLException { // jdbc协议:数据库子协议:主机:端口/连接的数据库 // String url = "jdbc:mysql://localhost:3306/testdb"; String username = "root"; String password = "root"; //1.创建驱动程序类对象 Driver driver = new com.mysql.jdbc.Driver(); //设置用户名和密码 Properties props = new Properties(); props.setProperty("user", username); props.setProperty("password", password); //2.连接数据库,返回连接对象 Connection conn = driver.connect(url, props); System.out.println(conn); }}2.2、第二种实现方式
package com.rk.db.a_jdbc;import java.sql.Driver;import java.sql.DriverManager;import java.sql.Connection;import java.sql.SQLException;/** * jdbc连接数据库 * 第二种方法:使用驱动管理器类连接数据库(注册了两次,没必要) * @author RK * */public class Demo02{ public static void main(String[] args) throws SQLException { String url = "jdbc:mysql://localhost:3306/testdb"; String username = "root"; String password = "root"; Driver driver = new com.mysql.jdbc.Driver(); //1.注册驱动程序(可以注册多个驱动程序) DriverManager.registerDriver(driver); //2.连接到具体的数据库 Connection conn = DriverManager.getConnection(url, username, password); System.out.println(conn); }}2.3、第三种实现方式
package com.rk.db.a_jdbc;import java.sql.DriverManager;import java.sql.Connection;import java.sql.SQLException;/** * jdbc连接数据库 * 第三种方法:使用加载驱动程序类 来 注册驱动程序(推荐使用这种方式连接数据库) * @author RK * */public class Demo03{ public static void main(String[] args) throws ClassNotFoundException, SQLException { String url = "jdbc:mysql://localhost:3306/testdb"; String user = "root"; String password = "root"; //通过得到字节码对象的方式加载静态代码块,从而注册驱动程序 Class.forName("com.mysql.jdbc.Driver"); //连接到具体的数据库 Connection conn = DriverManager.getConnection(url,user,password); System.out.println(conn); }}3、com.mysql.jdbc.Driver的内部实现
在这里主要解释一个问题,也就是在2.3中,并没有写代码用DriverManager对com.mysql.jdbc.Driver的实例进行注册,原因就在于com.mysql.jdbc.Driver的源码当中。
在com.mysql.jdbc.Driver类中提供了一个static(静态)代码段,如下:
java.sql.DriverManager.registerDriver(new Driver());
完整代码如下:
------com.mysql.jdbc.Driver类中提供了static代码段,主动向DriverManager进行注册java.sql.DriverManager.registerDriver(new Driver());package com.mysql.jdbc;import java.sql.SQLException;public class Driver extends NonRegisteringDriver implements java.sql.Driver { // // Register ourselves with the DriverManager // static { try { java.sql.DriverManager.registerDriver(new Driver()); } catch (SQLException E) { throw new RuntimeException("Can't register driver!"); } } /** * Construct a new driver and register it with DriverManager */ public Driver() throws SQLException { // Required for Class.forName().newInstance() }}
数据
数据库
驱动
方式
程序
驱动程序
代码
口号
名称
对象
所在
机器
方法
用户
信息
密码
数据源
用户名
端口
静态
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
海岛奇兵游戏服务器
怎样断掉数据库的连接表
数据库分离后日志文件的影响
数据库怎么建立查询学号开头
吉林棋牌游戏软件开发
关于大学生网络安全教育的视频
数据库分类的技术
网易我的世界电脑能加服务器吗
服务器如何连接蓝牙音箱
数据库和服务器的连接方式
sql 数据库模型图
何为数据库技术
多举措筑牢网络安全措施
云服务器ip访问不了
网络安全要怎么咨询
数据库提高性能怎么做
nb-iot管理服务器ms
udp服务器程序是脚本吗
文件上传是上传到服务器本地吗
服务器硬盘故障率
软件开发税务筹划有哪些方案
就医院数据库的规定
软件开发合同续签样本
吉林智慧城管软件开发公司
网络化带来网络安全
洮北法院网络安全宣传周
exce表格中不显示数据库
学软件开发以后能做什么
数据库应用技术培训内容
两种安全模式数据库