第一个JDBC程序

第一个JDBC程序

什么是JDBC

JDBC(Java Database Connectivity)java数据库连接。

数据库比如mysql, oracle只负责存储,数据库的操作是通过驱动,每个数据库都有自己的驱动,数据库不同的 版本有不同的版本驱动,应用程序访问数据库不可能为每一套数据库单独编写相关的代码,sun公司提供了统一的java开发人员对数据库操作接口即JDBC。

架构图如下所示:

v2-69c26a980392b952cceb7bf9fb3fa7b9_b.jpg (434×392)

第一个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

程序详解

步骤总结:

  1. 加载驱动 DriverManager
  2. 创建连接
  3. 创建执行sql对象statement
  4. 执行sql
  5. 释放资源

加载驱动 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();
posted @ 2022-01-05 11:09  Oh,mydream!  阅读(35)  评论(0编辑  收藏  举报