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

第一个JDBC程序+对象解释

MySQL 数据库学习笔记(续)

十、JDBC 重点!!!

10.3 第一个JDBC程序

1. 创建测试数据库

CREATE DATABASE `jdbcStudy` CHARACTER SET utf8 COLLATE utf8_general_ci;USE `jdbcStudy`;CREATE TABLE `users`(
`id` INT PRIMARY KEY,
`NAME` VARCHAR(40),
`PASSWORD` VARCHAR(40),
`email` VARCHAR(60),
birthday DATE
);INSERT INTO `users`(`id`,`NAME`,`PASSWORD`,`email`,`birthday`)
VALUES('1','zhangsan','123456','zs@sina.com','1980-12-04'),
('2','lisi','123456','lisi@sina.com','1981-12-04'),
('3','wangwu','123456','wangwu@sina.com','1979-12-04')

2. 创建一个普通项目

3. 导入数据库驱动

4. 编写测试代码

package com.guo.lesson01;import com.mysql.jdbc.Driver;import java.sql.*;//我的第一个JDBC程序
public class jdbcFirstDemo01 {public static void main(String[] args) throws ClassNotFoundException, SQLException {// 1.加载驱动Class.forName("com.mysql.jdbc.Driver");// 固定写法// 2.用户信息和url//useUnicode=true&characterEncoding=utf8&useSSL=trueString url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true";String username = "root";String password = "123456";// 3.连接成功,数据库对象  Connection 代表数据库Connection connection = DriverManager.getConnection(url, username, password);// 4.执行SQL的对象   Statement  执行SQL的对象Statement statement = connection.createStatement();// 5.执行SQL的对象 去 执行 SQL,可能存在结果,查看返回结果String sql = "SELECT * FROM users";ResultSet resultSet = statement.executeQuery(sql); //返回的结果集,结果集中封装了我们全部的查询出来的结果while(resultSet.next()){System.out.println("id=" + resultSet.getObject("ID"));System.out.println("name=" + resultSet.getObject("NAME"));System.out.println("password=" + resultSet.getObject("password"));System.out.println("email=" + resultSet.getObject("email"));System.out.println("birth=" + resultSet.getObject("birthday"));}// 6.释放连接resultSet.close();statement.close();connection.close();}
}

步骤总结:

  1. 加载驱动
  2. 连接数据库 DriverManager
  3. 获得执行sql的对象 Statement
  4. 获得返回的结果集
  5. 释放连接

10.4 JDBC中对象解释

1. DriverManager

// DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Class.forName("com.mysql.jdbc.Driver");// 固定写法 加载驱动

2. URL

String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true";
  • 协议 😕/主机地址:端口号/数据库名?参数1&参数2&参数三
  • MySQL 默认端口号 -- 3306
  • MySQL 写法:jdbc:mysql://主机地址:端口号/数据库名?参数1&参数2&参数三
  • oracle 默认端口号 -- 1521
  • oracle 写法:jdbc:oracle:thin:@localhost:1521:sid

3. Connection 代表数据库

Connection connection = DriverManager.getConnection(url, username, password);
  • connection.rollback(); // 事务回滚
  • connection.commit(); // 事务提交
  • connection.setAutoCommit(); // 数据库设置自动提交

4. Statement 执行SQL的对象 prepareStatement 执行SQL的对象

String sql = "SELECT * FROM users"; // 编写SQL
  • statement.executeQuery(); // 查询操作 返回 Result
  • statement.execute(); // 执行任何SQL
  • statement.executeUpdate(); // 更新、插入、删除都使用这个,返回一个受影响的行数

5. ResultSet 查询的结果集,封装了所有的查询结果

5.1 获得指定的数据类型
resultSet.getObject(); // 在不知道列类型的情况下使用
// 如果知道列的类型就用指定的类型
resultSet.getString();
resultSet.getInt();
resultSet.getFloat();
resultSet.getDouble();
resultSet.getDate();
5.2 遍历,指针
resultSet.beforeFirst(); // 移动到最前面
resultSet.afterLast();   // 移动到最后面
resultSet.next();        // 移动到下一个数据
resultSet.previous();    // 移动到前一行
resultSet.absolute(row); // 移动到指定行

6. 释放连接

resultSet.close();
statement.close();
connection.close(); //耗资源,用完关掉

总结

  1. JDBC 本质:Java 操作数据库的官方规范接口
  2. 固定步骤:加载驱动 → 连接 → 获取 Statement → 执行 SQL → 处理结果 → 释放资源
  3. 核心对象ConnectionStatementResultSet
  4. 必须释放资源:先开后关、后开先关
http://www.jsqmd.com/news/644485/

相关文章:

  • 终极指南:如何用Ryzen SDT调试工具挖掘AMD处理器的隐藏潜力
  • 从光学特性到算法实现:深度解析Shading校正技术
  • 路径规划算法实战:从理论到代码实现
  • 2026最新不锈钢水箱新标杆:解析消防水箱、304不锈钢水箱厂家、保温水箱、方形不锈钢水箱的技术融合之道 - 深度智识库
  • FPGA引脚冲突解析:如何高效解决Pin_101多引脚分配问题
  • 图片变清晰 API 实战:AI 超分辨率实现图片高清修复(Python / JavaScript / PHP / JS)
  • 2026|POS机办理哪家靠谱?实地测评:河南联众金服科技有限公司(公众号) - 速递信息
  • StreamCap:如何用一款免费开源工具搞定40+平台直播自动录制
  • KCN-GenshinServer:5分钟搭建你的专属提瓦特世界,告别复杂配置烦恼
  • 2026口碑最佳85吋电视横评:6款品牌实力优质单品精准评测 - 十大品牌榜
  • ZotCard:重塑你的Zotero知识管理体验
  • 瑞祥商联卡用不上别闲置!教你轻松把卡变成现金 - 团团收购物卡回收
  • Xournal++手写笔记软件:3分钟掌握免费PDF标注与数学公式编辑
  • Win11自带Linux子系统玩转Kali:从命令行到炫酷GUI的完整搭建记录
  • macOS环境下Navicat试用期管理:技术探索与配置状态重置方案
  • PostgreSQL MVCC - BinBin
  • 深度解析:如何用Speechless高效备份微博内容到PDF
  • WiFiAnalyzer深度解析:Android上不可或缺的Wi-Fi网络优化利器
  • XUnity.AutoTranslator:3步解决Unity游戏语言障碍,零配置开启全球游戏之旅
  • 从代码到清晰世界:一款基于视觉信号原理的数字化视力恢复训练软件深度解析
  • LXC 运行linux桌面软件的原理实现
  • CCS 7.4版本软件仿真功能移植实战:从环境配置到Hello World验证
  • 终极B站字幕下载指南:3种简单方案对比与完整教程
  • AD7124多通道读取踩坑记:PGA=1时±2V以上电压采样失真的排查与修复
  • 极简开发新选择:VFB迷你版与VB6/7的高效编程实践
  • 仿石漆生产企业选择哪家好,售后完善的厂家口碑大盘点 - 工业设备
  • GPT-SoVITS语音克隆终极教程:5秒音频打造专属AI语音助手
  • 2026年赣州全屋整装装修公司怎么选?雅美居装饰官方联系方式与竞品深度横评 - 精选优质企业推荐榜
  • LFM2.5-1.2B-Thinking-GGUF模型精调实战:基于特定领域数据的性能提升
  • Zotero 7搭配Attanger插件:打造比官方同步更稳的OneDrive文献工作流(含手机端适配技巧)