第一个JDBC程序
第一个JDBC程序
什么是JDBC
JDBC(Java Database Connectivity)java数据库连接。
数据库比如mysql, oracle只负责存储,数据库的操作是通过驱动,每个数据库都有自己的驱动,数据库不同的 版本有不同的版本驱动,应用程序访问数据库不可能为每一套数据库单独编写相关的代码,sun公司提供了统一的java开发人员对数据库操作接口即JDBC。
架构图如下所示:
第一个JDBC程序
准备工作
先在数据库中创建数据库、表和数据
-- ====================测试jdbc================================
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')
SELECT VERSION(); -- 查询数据库版本
下载mysql-connector-java-8.0.27.jar --版本跟数据库相关
放在lib目录下, as library
代码
import java.sql.*;
public class TestJdbc {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.用户信息和URl
String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true";
String username="root";
String password="123456";
// 3.创建连接
Connection connection = DriverManager.getConnection(url,username,password);
// 4.创建执行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("pwd="+ resultSet.getObject("PASSWORD"));
System.out.println("email="+ resultSet.getObject("email"));
System.out.println("birthday="+ resultSet.getObject("birthday"));
}
// 6.释放连接
resultSet.close();
statement.close();
connection.close();
}
}
结果:
id=1
name=zhangsan
pwd=123456
email=zs@sina.com
birthday=1980-12-04
id=2
name=lisi
pwd=123456
email=lisi@sina.com
birthday=1981-12-04
id=3
name=wangwu
pwd=123456
email=wangwu@sina.com
birthday=1979-12-04
程序详解
步骤总结:
- 加载驱动 DriverManager
- 创建连接
- 创建执行sql对象statement
- 执行sql
- 释放资源
加载驱动 DriverManager
// 1.加载驱动 两种方法都可以
DriverManager.registerDriver(new Driver());
Class.forName("com.mysql.cj.jdbc.Driver");
创建连接
// url写法
String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true";
// 语法 每种数据库端口号固定:mysql:3306 postgresql:5432
// 协议://主机ip:端口号/数据库名?参数1&参数2&参数3
// 创建连接
Connection connection = DriverManager.getConnection(url,username,password);
connection.commit(); // 提交
connection.rollback(); // 回滚
connection.setAutoCommit(false); // 设置不自动提交
创建执行SQL对象
String sql = "select * from users";
ResultSet resultSet = statement.executeQuery(sql); // 查询语句
ResultSet resultSet = statement.executeUpdate(sql); // 更新,插入,删除
执行sql
resultSet.previous();// 移动到上一个
resultSet.next();// 移动到下一个
resultSet.beforeFirst();// 移动到第一个
resultSet.afterLast();// 移动到租后一个
resultSet.absolute(1);// 移动到指定行
// 获取位置类型的数据
resultSet.getObject("id"))
// 获取指定类型的数据
resultSet.getString("name");
resultSet.getInt("id");
resultSet.getArray();
释放资源
// 6.释放资源
resultSet.close();
statement.close();
connection.close();