第一个JDBC程序

JDBC

数据库驱动

程序通过数据库驱动和数据库联系

SUN公司为了简化开发人员(对数据库的统一)操作,提供了一个(Java操作数据库的)规范,俗称JDBC ,这些规范的实现由具体的厂商实现

对开发人员来说只需要掌握JDBC接口的操作即可

第一个JDBC程序

需要的包

java.sql

javax.sql

还需要导入一个数据库驱动的包 mysql-connector-java-5.1.47.jar

下载数据库驱动的包

https://dev.mysql.com/downloads/connector/j/

新建一个lib,将mysql-connector-java-5.1.47.jar复制过去,并且 Add as Library(点击一下)

编写测试代码

package com.wang.test01;
import java.sql.*;
//第一个JDBC程序
public class JdbcFirstDemo {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // 加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver"); // 固定写法,加载驱动

        //用户信息和url
        //useUnicode=true&characterEncoding=utf8&useSSL=true
        String url = "jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf8&useSSL=true";
        String username = "root";
        String password = "123456";
        //连接成功 数据库对象 Connection 代表数据库
        Connection connection = DriverManager.getConnection(url, username, password);

        //执行SQL的对象 Statement 执行sql的对象
        Statement statement = connection.createStatement();

        // 执行SQL的对象 去 执行SQL 可能存在的结果 查看返回结果
        String sql = "select * from student";

        ResultSet resultSet = statement.executeQuery(sql); // 返回的结果集,结果集中封装了我们全部的查询的结果

        while(resultSet.next()){
            System.out.println(resultSet.getObject("id"));
            System.out.println(resultSet.getObject("name"));
        }

        // 释放连接
        resultSet.close();
        statement.close();
        connection.close();
    }
}
/*实验结果
F:\code\java\jdbc\target\classes;F:\code\java\jdbc\lib\mysql-connector-j-8.3.0.jar com.wang.test01.JdbcFirstDemo
1
ww
2
wl
*/

步骤总结:

加载驱动 、 连接数据库DriverManager 、获得执行sql的对象Statement 、 获得返回的结果集、 释放连接

出现的问题

  • 出现的问题 (来自 https://blog.csdn.net/qq_41943867/article/details/90574135)

    Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

    5.x版本的驱动文件jar包对应的是:
    Class.forName("com.mysql.jdbc.Driver");
    语句来加载数据库驱动
    
    而我使用的是8.0x版本的数据库驱动文件,对此,需要将加载数据库驱动的语句更改为:
    Class.forName("com.mysql.cj.jdbc.Driver");
    
    除此之外:
    url的设置也得进行修改,原本的url如下:
    String ur="jdbc:mysql://127.0.0.1:3306/student";
    
    应修改为如下:String url="jdbc:mysql://127.0.0.1:3306/student?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8";
    

对JDBC中对象的解释

DriverManager

//DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
  Class.forName("com.mysql.cj.jdbc.Driver"); // 固定写法,加载驱动
  
  Connection connection = DriverManager.getConnection(url, username, password);
  // connection 代表数据库
  // 数据库设置自动提交
  // 事务提交
  // 事务回滚
connection.rollback();
connection.commit();
connection.setAutoCommit();

URL

String url = "jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf8&useSSL=true";
//mysql默认是3306
//jdbc:mysql://主机地址:3306/数据库名?参数1&参数2&参数3
//oralca 默认端口是1521
//jdbc:oracle:thin@localhost:1521:sid

Statement 执行SQL 的对象

String sql = "select * from student";//编写SQL

statement.executeQuery();// 查询操作,返回ResultSet
statement.execute(); //执行任何的SQL
statement.executeUpdate();// 更新、插入、删除 都是用这个,返回的是一个受影响的行数

ResultSet 结果集对象(封装了所有的查询结果)

获取指定的数据类型

resultSet.getObject();//在不知道列的类型的情况下使用
resultSet.getInt();
resultSet.getString();
....

释放资源(必须)

// 释放连接
resultSet.close();
statement.close();
connection.close();// 耗资源 ,用完关闭
posted @   十几里路  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示