JDBC系列:(1)通过JDBC连接数据库
发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,1、什么是JDBC2、JDBC连接数据库的三种方式2.1、第一种实现方式2.2、第二种实现方式2.3、第三种实现方式3、com.mysql.jdbc.Driver的内部实现1、什么是JDBC使用jav
千家信息网最后更新 2025年02月22日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安全错误
数据库的锁怎样保障安全
枣庄学院图书馆软件开发
深圳市云里网络技术有限公司
正数网络技术有限公司程序员
网络安全支出包括有哪些
数据库安全技术实验四报告
服务器什么机
hp服务器出现1786错误
nfs服务器
武汉达梦数据库股份有限公司校招
php页面向数据库添加数据
金山区企业网络技术咨询诚信合作
上虞手机软件开发有哪些
学计算机网络技术专业的目的
国企的网络技术
网络技术中职教材
学java软件开发前景如何
网络安全四个毛笔字
第三方软件开发机构
数据库的核心软件是
b15可以用什么服务器cpu
软件开发安全及保密办法
网络安全事件国外
linux常用的服务器
高校数据库属于什么市场类型
小店客服显示服务器正忙怎么回事
网络安全班会课提问
陕西果蔬配送软件开发
服务器装防护
陕西渭南网络安全大讲堂
站长字体软件开发