JDBC使用步骤-小白入门

news/2024/9/8 9:39:01

一.JDBC开发流程

  1. 加载并注册JDBC驱动
  2. 创建数据库连接
  3. 创建Statement对象
  4. 遍历查询结果
  5. 关闭连接,释放资源
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class StandardJDBCSample {public static void main(String[] args) {Connection conn = null;try {
//        1. 加载并注册JDBC驱动Class.forName("com.mysql.cj.jdbc.Driver");
//        2. 创建数据库连接conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/imooc?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai", "root", "zsj123");
//        3. 创建Statement对象Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("select * from employee where dname='研发部'");
//        4. 遍历查询结果while (rs.next()) {Integer eno = rs.getInt(1);String ename = rs.getString("ename");float salary = rs.getFloat("salary");String dname = rs.getString("dname");System.out.println(dname + "-" + eno + "-" + ename + "-" + salary);}}catch (Exception e){e.printStackTrace();}finally {try {if (conn != null && conn.isClosed() == false) {//        5. 关闭连接,释放资源conn.close();}}catch (Exception ex){ex.printStackTrace();}}}
}

运行结果:

研发部-3308-张三-6000.0
研发部-3420-李四-8700.0

1.使用JDBC第一步:注冊驱动有三种方式:

  • Class.forName(“com.mysql.jdbc.Driver”);
    ​ 推荐这样的方式,不会对详细的驱动类产生依赖
  • DriverManager.registerDriver(com.mysql.jdbc.Driver);
    ​ 会对详细的驱动类产生依赖
  • System.setProperty(“jdbc.drivers”, “driver1:driver2”);
    ​ 尽管不会对详细的驱动类产生依赖;但注冊不太方便。所以非常少使用

2.使用JDBC第二步:建立连接
通过Connection建立连接,Connection是一个接口类。其功能是与数据库进行连接(会话)。
建立Connection接口类对象:
Connection conn = DriverManager.getConnection(url, user, password);
当中URL的格式要求为:
JDBC:子协议:子名称//主机名:port/数据库名?属性名=属性值&…
如:"jdbc:mysql://localhost:3306/test“

3.使用JDBC第三步:创建运行对象
运行对象Statement负责运行SQL语句。由Connection对象产生。
Statement接口类还派生出两个接口类PreparedStatement和CallableStatement,这两个接口类对象为我们提供了更加强大的数据访问功能。
创建Statement的语法为:
Statement st = conn.createStatement();

4.使用JDBC第四步:运行SQL语句
运行对象Statement提供两个经常使用的方法来运行SQL语句。

  • executeQuery(Stringsql),该方法用于运行实现查询功能的sql语句。返回类型为ResultSet(结果集)。
    如:ResultSet rs =st.executeQuery(sql);
  • executeUpdate(Stringsql),该方法用于运行实现增、删、改功能的sql语句,返回类型为int,即受影响的行数。
    如:int flag = st.executeUpdate(sql);

5.使用JDBC第五步:处理运行结果
ResultSet对象
ResultSet对象负责保存Statement运行后所产生的查询结果。
结果集ResultSet是通过游标来操作的。
游标:就是一个可控制的、能够指向随意一条记录的指针。
有了这个指针我们就能轻易地指出我们要对结果集中的哪一条记录进行改动、删除,或者要在哪一条记录之前插入数据。一个结果集对象中仅仅包括一个游标。

6.使用JDBC 第六步——释放资源
Connection对象的close方法用于关闭连接,并释放和连接相关的资源。

二.JDBC驱动的秘密

1.如何获取JDBC驱动Jar

在百度中输入mysql driver
在这里插入图片描述
下载链接
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将下载好的包放到lib包内:
在这里插入图片描述

2.创建数据库连接代码

String dbDriver = "com.mysql.cj.jdbc.Driver"; //JDBC驱动类 
String dbURL = "jdbc:mysql://localhost:3306/imooc" ; //连接字符串 
String dbUsername = "root"; //数据库用户名 
String dbPassword = "123456"; //数据库密码 
//1.加载并初始化JDBC驱动 
Class.forName(dbDriver); 
//2.创建数据库连接 
Connection connection = DriverManager.getConnection(dbURL, dbUsername, dbPassword);

3.Class.forName的作用

  • Class.forName用于加载指定的JDBC驱动类
  • Class.forName本质是通知JDBC注册这个驱动类
  • 驱动由数据库厂商自行开发,连接字符串也不同

4.数据库与连接字符串

在这里插入图片描述

5.DriverManager 设备管理器

  • DriverManager用于注册/管理JDBC驱动程序
  • DriverManager.getConnection(连接字符串,用户名,密码)
  • 返回值Connection对象,对应数据库的物理网络连接

6.Connection对象

  • Connection对象用于JDBC与数据库的网络通信对象
  • java.sql.Connection是一个接口,具体由驱动厂商实现
  • 所有数据库的操作都建立在Connection基础上
    在这里插入图片描述

7.MySQL连接字符串

  • 格式: jdbc:mysql://[主机ip][:端口]/数据库名?参数列表
  • 主机ip与端口是可选设置,默认值为127.0.0.1与3306
  • 参数列表采用url编码,格式:参数1=值1&参数2=值2&…

8.MySQL连接字符串常用参数

在这里插入图片描述

Statement:使用从此接口创建的对象将SQL语句提交到数据库。除了执行存储过程之外,一些派生接口还接受参数。
ResultSet:在使用Statement对象执行SQL查询后,这些对象保存从数据库检索的数据。它作为一
个迭代器,允许我们移动其数据。
9.连接数据库的常见问题

  • ClassNotFoundException - 类未找到异常
    在这里插入图片描述

原因:有可能这个jar包驱动没有加入到工程中

  • Connection refuse - 数据库连接被拒绝异常
    在这里插入图片描述

原因:ID环境或端口号配置没有配置好,远程连接连不上,服务器的防火墙把3306端口给屏蔽了,必须在防火墙上将3306端口放行。

  • Access denied for user - 用户名与密码错误异常
    原因:密码或用户名没写对
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/12158.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

vue3学习(三)

前言 继续接上一篇笔记,继续学习的vue的组件化知识,可能需要分2个小节记录。前端大佬请忽略,也可以留下大家的鼓励,感恩! 一、理解组件化 二、组件化知识 1、先上知识点: 2、示例代码 App.vue (主页面) …

Hudi 多表摄取工具 HoodieMultiTableStreamer 配置方法与示例

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,京东购书链接:https://item.jd.com/12677623.html,扫描左侧二维…

服务器感染了. rmallox勒索病毒,如何确保数据文件完整恢复?

导言: 近年来,随着信息技术的飞速发展,网络安全问题日益凸显。其中,勒索病毒作为一种严重的网络威胁,对个人和企业数据造成了巨大的威胁。本文将重点介绍.rmallox勒索病毒的特点、传播途径以及应对策略,旨…

java版本知识服务系统-高效知识付费Saaas平台的架构与功能模块设计

知识付费平台,作为我国近年来崭露头角的新型在线教育模式,正迅速改变着传统的学习方式。这种模式紧贴用户需求,将高质量的内容作为核心,借助互联网技术的力量,为用户打造了一个轻松便捷的学习环境。这些平台如同知识的…

Django 入门教程

1. Django简介 基本介绍 Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。 MVC 与 MVT 模型 MVC 模型 MVC 模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型&am…

基于Python实现 HR 分析(逻辑回归和基于树的机器学习)【500010104】

介绍 数据集说明 此数据集包含与员工有关的综合属性集合,从人口统计细节到与工作相关的因素。该分析的主要目的是预测员工流动率并辨别导致员工流失的潜在因素。 在这个数据集中,有14,999行,10列,以及这些变量:满意度…