【MySQL】JDBC编程

【MySQL】JDBC编程

一、驱动程序包

1. 特性

1.1 底层差异情况

不同的应用程序在编写代码时采用的编程模式存在差异,所以为编程语言代码操作层面所设计的驱动包内类与接口的范式会因对应底层程序代码的不同而有所不同。

1.2 JDBC接口的一致性

在数据库相关应用程序中,Java规定必须使用Java设计的数据库编程接口JDBC来操作数据库,各数据库厂商便开发出将底层接口等效转化为JDBC接口的驱动程序,使得Java能通过JDBC统一所有数据库的API接口。

2. 导入操作

任何应用程序在编程操作时,都需要把应用程序设计好的具备实现功能的类与接口通过驱动包导入到编程项目中作为第三方库使用。

2.1 复制导入驱动包

将驱动程序包复制到作为第三方库的目录里。所有的.java文件会被编译成多个.class文件,然后将这些.class文件整理打包成一个.jar压缩包用于程序发布。

2.2 标记驱动包目录为第三方库

把驱动包所在的目录标记成第三方库。

二、JDBC编程

1. 查找资源

DataSource dataSource = new MysqlDataSource();
((MysqlDataSource)dataSource).setUrl(String_URL);

MySQL数据源凭借URL网址来找到MySQL服务器在网络上具体的资源位置。

1.1 URL地址

"jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false"

1.1.1 网址的作用

jdbc:mysql表明该网址是供jdbc程序操作mysql使用的。

1.1.2 主机IP地址

127.0.0.1是jdbc要操作的MySQL服务器所在主机的网络IP地址,当jdbc应用程序自身所在主机与MySQL服务器所在主机为同一台时,使用127.0.0.1环回IP指向自身主机,也就指向了MySQL服务器主机的位置。

1.1.3 端口号

一台主机上有诸多应用程序进行网络操作,3306是MySQL与网络对接的端口号。

1.1.4 数据库名称

确定jdbc要操作MySQL服务器中的哪个数据库。

1.1.5 访问资源参数

以键值对形式填写参数,键值对之间用&分隔。characterEncoding=utf8表示以utf8字符集进行数据库与应用程序的数据传输;useSSL=false表示数据库与应用程序之间的网络通信不加密。

2. 访问认证

((MysqlDataSource)dataSource).setUser(String_Ident);

MySQL数据源确定jdbc访问数据库的身份,root是MySQL默认自带的管理员用户。

((MysqlDataSource)dataSource).setPassword(String_Passworld);

MySQL数据源确定jdbc访问数据库的密码。

3. 连接通道

dataSource.getConnection();

——> return Connection
数据源找到并成功访问后,向jdbc建立连接通道,后续在该通道中进行请求 - 响应交互。

4. 数据传输

4.1 创建传输包
connection.prepareStatement(String_sql);

——> return PreparedStatement
在连接通道中创建传输包,将要发送的sql语句字符串存储在传输包中,传输包会对sql语句进行预处理解析、检查并打包结构化数据,在应用程序这边完成解析检查工作,减轻MySQL服务器的开销。

4.1.1 创建sql语句
4.1.1.1 直接拼接变量
String sql = "insert into student values(" + id + ", ' " + name + " ')";

直接把变量拼接进sql语句字符串,但这样可能会使数据库遭受通过sql语句输入非法内容的攻击,不安全。

4.1.1.2 用?替换变量
String sql = "insert into student values(?,?)";
connection.prepareStatement(sql);
preparedStatement.setDatatype(下标,变量);

使用占位符?先占位后规范替换的方式将变量安全地替换进sql字符串中,占位符的下标从1开始。

4.2 发送传输包
4.2.1 发送写操作的sql
preparedStatement.executeUpdate();

——> return int
传输包以写的方式发送到数据库服务器执行,返回数据库中受影响的行数。

4.2.2 发送读操作的sql
preparedStatement.executeQuery();

——> return ResultSet
传输包以读的方式发送到数据库服务器执行,返回查询结果临时表的结果集合。

4.2.2.1 遍历记录
while (resultSet.next()) {

}
resultSet.next();

——> return boolean
从临时表的第0个记录开始,往后移动光标位置进行遍历获取记录,遍历到表尾为空时返回false。

4.2.2.2 读取记录
result.getDatatype("col_name");

——> return Datatype
获取遍历所处记录的指定字段数据。

5. 回收资源

按照后获取的资源先释放的顺序回收资源。

resultSet.close();

销毁结果集合。

preparedStatement.close();

销毁传输包。

connection.close();

销毁连接通道。

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/12838.html

(0)
LomuLomu
上一篇 2025 年 7 月 9 日
下一篇 2025 年 7 月 9 日

相关推荐

  • 2025年最新DataGrip永久破解教程 | 激活码&破解补丁一键获取 🚀

    适用于JetBrains全家桶(IDEA/PyCharm/DataGrip/Goland等)的终极破解方案!✨ 先晒成果!成功破解至2099年的DataGrip界面截图,有效期直接拉满 💯 下面将手把手教你如何用三种方式激活DataGrip,支持全平台全版本!文末还准备了惊喜彩蛋哦~ 🎁 第一步:获取DataGrip安装包 👉 官方下载地址:https://…

    2025 年 5 月 30 日
    67500
  • IntelliJ IDEA 永久破解教程适用于 2025.3

    重要提示:本文所分享的IntelliJ IDEA破解补丁及激活码均来源于网络收集,严禁用于商业用途,仅限个人学习研究使用。若涉及侵权问题,请联系本人删除。经济条件允许的话,强烈建议支持正版! 话不多说,先展示IDEA 2025.2.1版本破解成功的界面截图,如下图所示,可以看到激活有效期已延续至2099年,非常稳定! 接下来将通过图文详解的方式,手把手教大家…

    IDEA破解教程 2026 年 1 月 5 日
    34900
  • 2025年最新DataGrip激活码与永久破解教程(支持2099年)

    本方法适用于JetBrains全家桶,包括DataGrip、PyCharm、IDEA、Goland等开发工具! 先展示最新DataGrip版本成功破解的截图,可以看到有效期已经延长至2099年,完全不用担心过期问题! 下面通过详细的图文指导,手把手教你如何将DataGrip激活至2099年。 这个方法不仅适用于最新版本,也兼容之前的旧版本! Windows/…

    DataGrip激活码 2025 年 8 月 13 日
    45400
  • 亲测有效!2026年 CLion 永久激活码使用教程

    重要提示:本文涉及的CLion破解补丁与激活码均源自网络收集,严禁用于商业用途,仅限个人学习研究。若内容存在侵权问题,请联系本人删除。经济条件允许的话,强烈建议支持正版软件! 话不多说,先展示CLion 2025.2.1破解成功的实况截图。如下图所示,激活有效期至2099年,相当给力! 接下来就通过图文详解的方式,手把手教大家如何破解最新版CLion。 前期…

    2026 年 3 月 29 日
    34700
  • 汇总周一忙就想升级?ChatGPT Plus充值和ChatGPT Pro订阅怎么选更划算

    每到汇总周,很多人都会突然认真考虑 ChatGPT Plus充值 或 ChatGPT Pro订阅。平时只是轻度使用,真到要集中处理付款确认、客户问答、方案改稿、资料归档时,才会发现免费版偶尔够用,不代表高峰周也够用。对这类用户来说,是否订阅,关键不是每天用了多久,而是关键几天能不能稳定把事情做完。 如果你的使用习惯也是“平时轻,忙时猛”,大多数情况下先看 P…

    ChatGPT 2026 年 4 月 17 日
    20600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信