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();}
}
步骤总结:
- 加载驱动
- 连接数据库 DriverManager
- 获得执行sql的对象 Statement
- 获得返回的结果集
- 释放连接
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(); //耗资源,用完关掉
总结
- JDBC 本质:Java 操作数据库的官方规范接口
- 固定步骤:加载驱动 → 连接 → 获取 Statement → 执行 SQL → 处理结果 → 释放资源
- 核心对象:
Connection、Statement、ResultSet
- 必须释放资源:先开后关、后开先关