JDBC系列:(1)通过JDBC连接数据库
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,1、什么是JDBC2、JDBC连接数据库的三种方式2.1、第一种实现方式2.2、第二种实现方式2.3、第三种实现方式3、com.mysql.jdbc.Driver的内部实现1、什么是JDBC使用jav
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
互联网科技企业
南京欣网互联网络科技
山东特亿宝互联网科技有限公司
A股互联网金融科技公司
互联网科技垄断
互联网科技有限公司图片
互联网科技与金融科技
深圳科技互联网
中国互联网科技发展
融势互联网科技
互联网科技美容
互联网科技有限公司 翻译
来此购互联网科技有限公司
互联网还是高科技吗
智腾互联网科技有限公司
杭州壁岐互联网科技有限公司
呼和浩特新华互联网科技学院
北京市互联网新科技
美国互联网科技公司
广西科技产业互联网是什么
喔噻互联网科技有限公司
丰台科技园 互联网
顶级互联网科技成果有哪些
互联网科技创新服务
注册互联网科技公司经营范围大全
济南有互联网科技公司吗
每天都有哪些好的互联网科技
西安有哪些互联网高科技企业
唐山双旺合互联网科技产业园
青岛易易互联网科技