当前位置: 首页 > news >正文

威县做网站哪里好关键词优化技巧有哪些

威县做网站哪里好,关键词优化技巧有哪些,和田地区建设局网站,wordpress 临时域名文章目录 基本流程注册驱动的两种方法DriverManagerDriverManager 的核心作用核心原理自动注册驱动的机制关键方法 示例代码: 连接Mysql数据库StatementPreparedStatement JDBC全称Java DataBase Connectivity。 定义: JDBC 是 Java 语言中用于连接和执行 SQL 操作的标准接口。…

文章目录

    • 基本流程
    • 注册驱动的两种方法
    • DriverManager
      • DriverManager 的核心作用
      • 核心原理
      • 自动注册驱动的机制
      • 关键方法
    • 示例代码: 连接Mysql数据库
      • Statement
      • PreparedStatement

JDBC全称Java DataBase Connectivity。

定义: JDBC 是 Java 语言中用于连接和执行 SQL 操作的标准接口。

功能: 提供统一的方式访问关系型数据库(如 MySQL、Oracle、PostgreSQL 等)。

核心包: java.sql 和 javax.sql。

基本流程

  1. 加载并注册驱动
  2. 建立数据库连接
  3. 创建 Statement 对象
  4. 执行sql语句
  5. 处理结果集 (ResultSet)
  6. 释放资源 (直接close)

注册驱动的两种方法

以mysql为例

第一种:

DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
  • 手动创建一个驱动实例,并显式注册到 DriverManager
  • DriverManager 会将这个驱动添加到它的驱动列表中,以便后续用 getConnection() 建立数据库连接。

第二种(推荐)

Class.forName("com.mysql.cj.jdbc.Driver")
  • 利用 Java 的反射机制加载这个类,并执行它的静态代码块
  • com.mysql.cj.jdbc.Driver 的静态代码块中已经调用了
DriverManager.registerDriver(new Driver());
所以自动完成了驱动注册。  

DriverManager

DriverManager 是 Java JDBC(Java Database Connectivity)API 的核心类之一,它负责管理数据库驱动并协调应用程序与数据库之间的连接。

DriverManager 的核心作用

功能说明
驱动注册接受驱动类注册(DriverManager.registerDriver()
驱动管理内部维护一个已注册驱动的列表
获取连接通过 getConnection() 方法,找到能处理特定 JDBC URL 的驱动并返回连接

核心原理

驱动注册机制

  • JDBC 驱动类实现了 java.sql.Driver 接口
  • 驱动类的静态代码块中通常会调用:
DriverManager.registerDriver(new Driver());

这就把该驱动对象注册到 DriverManager 的内部驱动列表中。

  • 也可以手动注册:
DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());

驱动列表

  • DriverManager 内部维护了一个 List<Driver>,用于存储所有注册的 JDBC 驱动
  • 这个列表是线程安全的(使用了同步机制)

获取连接

getConnection() 的调用

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db", "user", "pass");

执行流程如下:

    1. 遍历内部注册的驱动列表
    2. 每个驱动调用 acceptsURL(url) 判断是否支持这个 URL
    3. 找到支持的驱动后,调用它的 connect() 方法返回一个 Connection 对象
    4. 如果没有任何驱动支持这个 URL,会抛出 SQLException

自动注册驱动的机制

从 JDBC 4.0 开始(Java 6 起),支持SPI 自动注册机制

  • 驱动 JAR 包中包含 META-INF/services/java.sql.Driver 文件
  • 文件内容为驱动的全限定类名,如:com.mysql.cj.jdbc.Driver
  • 当类加载器加载驱动 jar 时,JDK 会自动加载并注册驱动类,无需显式写 Class.forName(...)

所以可以直接写:

Connection conn = DriverManager.getConnection(...);

关键方法

方法说明
getConnection(String url, String user, String password)根据 URL、用户名、密码获取数据库连接
getDrivers()获取当前已注册的所有驱动
registerDriver(Driver driver)手动注册驱动(通常不需要直接调用)
deregisterDriver(Driver driver)从注册列表中移除驱动
getDrivers()获取所有已注册的驱动实例
setLogWriter(PrintWriter)设置日志输出流
setLoginTimeout(int seconds)设置连接超时时间

示例代码: 连接Mysql数据库

package JDBC;import java.sql.*;public class demo1 {public static void main(String[] args) {String url="jdbc:mysql://localhost:3307/test";String user="root";String password="root";try{//1.加载驱动Class.forName("com.mysql.cj.jdbc.Driver");//2.建立连接Connection conn= DriverManager.getConnection(url,user,password);//3.创建StatementStatement stmt = conn.createStatement();//4.执行sql语句ResultSet rs = stmt.executeQuery("select * from users");//5.处理结果集while(rs.next()){String username = rs.getString("user");//列名的方式String pass = rs.getString(2);//列下标的方式System.out.println("username:"+username+" password:"+pass);}//6.关闭资源rs.close();stmt.close();conn.close();}catch (Exception e){e.printStackTrace();System.out.println(e.getMessage());}}
}

在这里插入图片描述

Statement

Statement sql语句的主要操作函数有三个

executeQuery() //执行select查询语句
executrupdate() //可以执行insert,update,delect,CREATE 之类的
execute() //执行任意语句

PreparedStatement

PreparedStatement其sql语句是在其获取命令执行对象时就以及写入了预编译语句。其要进行sql执行只要对其参数进行传入即可

PreparedStatement pstmt = conn.prepareStatement("select * from users where user=?");
pstmt.setString(1,"xpw");
ResultSet rs2 = pstmt.executeQuery();
rs2.next();
System.out.println("预编译查询\t用户名:"+rs2.getString("user")+" 密码:"+rs2.getString("password"));//预编译查询	用户名:xpw 密码:123

需要注意的是所得到的ResultSet类的实例,其初始的索引是不在第一行的,我们想获取内容需要先使用next使得索引内移

http://www.dtcms.com/a/450265.html

相关文章:

  • C++:类的6个知识点
  • iBizModel 搜索栏(PSSYSSEARCHBAR)与搜索表单(PSDEFORM)模型详解
  • 网站建设从零开始 教程云免网站空间
  • 网站没有建设好可以备案吗媒体网站推广法
  • 广东深圳网站建设服务吉安建设工程项目网站
  • 贵阳网站建设黔搜有没有可以做app的网站
  • 整站多关键词优化wordpress 大站点
  • 为什么有点网站打不开广告策划方案怎么做
  • **静音** 键盘简单评测
  • 网站建设的推进方案重庆设计公司有哪些
  • 做机械设计的网站医院信息化建设会议安排网站
  • 贵州网站建设营销公司html5毕业设计题目大全
  • 人力外包网站静态网站开发课程
  • 大模型—— 解析Codex CLI
  • 医疗科研管理系统到院级生命科学平台的升级路径
  • 网站建设方案报价费用明细价格可以免费做网站
  • 湖北手机版建站系统信息浙江省建设教育考试中心网站
  • 实验十八 GaussDB安全管理实验
  • 登录注册入口鹤岗网站seo
  • window系统搭建nginx图片存储服务器
  • AI与敏捷开发管理系列5:AI敏捷项目管理的实施路线图
  • 网站建设哪家好知道万维科技网站开发制作心得
  • leetcode 417 太平洋大西洋水流问题
  • 网站域名每年费用李勇seo博客
  • 【FPGA+DSP系列】——(4)EPWM学习(实现呼吸灯实验)
  • 【数据结构】搜索二叉树是啥树?有啥用?
  • 2025-10-06 Python不基础 15——metaclass
  • 淘宝客必须做网站吗建筑网站排行
  • Python高阶技巧:使用functools.partial减少函数参数个数完全指南
  • 2025年--Lc163--H58.最后一个单词的长度(数组和字符串)--Java版