目录

JDBC基础入门

概念

本质

JDBC的7个步骤

(1)导入jar包

(2)注册驱动

(3)获取连接

(4)获取执行者对象

(5)执行sql语句,并接收返回结果

(6)处理结果

(7)释放资源

JDBC入门示例代码

JDBC各个功能类详解

DriverManager

(1)注册驱动(告诉程序该使用哪一个数据库驱动)

(2)获取数据库连接

Connection

(1)获取执行者对象

(2)管理事务

(3)释放资源

Statement

(1)执行DML语句

(2)执行DQL语句:

(3)释放资源

ResultSet

(1)判断结果集中是否还有数据

(2)获取结果集中的数据

(3)释放资源

下一节:案例实现


JDBC基础入门

概念

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它是由一组用Java语言编写的类和接口组成的。

本质

其实就是java官方提供的一套规范(接口)。用于帮助开发人员快速实现不同关系型数据库的连接!

JDBC的7个步骤

(1)导入jar包

(2)注册驱动

Class.forName("com.mysql.cj.jdbc.Driver");

注意:如果使用较高版本的MySQL,必须使用 com.mysql.cj.jdbc.Driver 的方式,否则会报错!

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.

如果是低版本的可以使用 com.mysql.jdbc.Driver

如果还是报错,可以使用在url上面加入时区!

url=jdbc:mysql://localhost:3306/数据库名?serverTimezone=UTC

(3)获取连接

String url = "jdbc:mysql://localhost:3306/db1";
Connection con = DriverManager.getConnection(url,"root","888888");

(4)获取执行者对象

Statement stat = con.createStatement();

(5)执行sql语句,并接收返回结果

String sql = "SELECT * FROM user";
ResultSet rs = stat.executeQuery(sql);

(6)处理结果

while(rs.next()) {System.out.println( rs.getInt("id")+ "\t" + rs.getString("name"));
}

(7)释放资源

con.close();
stat.close();
rs.close();

JDBC入门示例代码

Connection对象中的用户名,数据库名,密码改成你自己的哦!

public class jdbc_demo01 {public static void main(String[] args) throws ClassNotFoundException, SQLException {// 1.导入jar包// 2.注册驱动Class.forName("com.mysql.cj.jdbc.Driver");// 3.获取连接String url = "jdbc:mysql://localhost:3306/db1";Connection con = DriverManager.getConnection(url,"root","888888");// 4.获取执行者对象Statement stat = con.createStatement();// 5.执行sql语句,并且接收结果String sql = "SELECT * FROM product";ResultSet rs = stat.executeQuery(sql);// 6.处理结果while(rs.next()) {System.out.println( rs.getInt("id") + "\t"+ rs.getString("name") + "\t"+ rs.getInt("price") + "\t"+ rs.getString("brand") + "\t"+ rs.getInt("stock"));}// 7。释放资源con.close();stat.close();rs.close();}
}

结果如下: 

JDBC各个功能类详解

DriverManager

驱动管理对象,它有2个作用——注册驱动、获取数据库连接

(1)注册驱动(告诉程序该使用哪一个数据库驱动)

static void registerDriver(Driver driver):注册与给定的驱动程序 DriverManager

写代码使用:Class.forName("com.mysql.jdbc.Driver");

通过查看源码发现:在com.mysql.cj.jdbc.Driver类中存在静态代码块

注:在com.mysql.jdbc.Driver类中的Driver继承了com.mysql.cj.jdbc.Driver类中的方法

package com.mysql.jdbc;import java.sql.SQLException;public class Driver extends com.mysql.cj.jdbc.Driver {public Driver() throws SQLException {}static {System.err.println("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.");}
}

com.mysql.cj.jdbc.Driver类如下:

static {try {java.sql.DriverManager.registerDriver(new Driver());} catch (SQLException E) {throw new RuntimeException("Can't register driver!");}
}

在类一旦被使用,静态代码块就会被执行!所以 registerDriver方法一定会被调用。

注意:

mysql5之后的驱动jar包可以省略注册驱动的步骤。在jar包中,存在一个java.sql.Driver配置文件,文件中指定了com.mysql.cj.jdbc.Driver

(2)获取数据库连接

获取数据库连接对象:

static Connection getConnection(String url, String user, String password);

返回值:

Connection-数据库连接对象,如果连接成功,就会返回一个Connection。

参数:

  • url:指定连接的路径。语法:jdbc:mysql://ip地址(域名):端口号/数据库名称

例如:jdbc:mysql://localhost:3306/db1

  • user:用户名

  • password:密码

Connection

上面讲过,就是数据库连接对象。它有3个作用

(1)获取执行者对象

  • 获取普通执行者对象:Statement createStatement();

  • 获取预编译执行者对象:PreparedStatement prepareStatement(String sql);

(2)管理事务

  • 开启事务:setAutoCommit(boolean autoCommit); 参数为false,则开启事务。

  • 提交事务:commit();

  • 回滚事务:rollback();

(3)释放资源

  • 立即将数据库连接对象释放:void close();

Statement

执行sql语句的对象

(1)执行DML语句

执行DML语句:int executeUpdate(String sql);

返回值int:返回影响的行数。

参数sql:可以执行insert、update、delete语句。

(2)执行DQL语句:

执行DQL语句:ResultSet executeQuery(String sql);

返回值ResultSet:封装查询的结果。

参数sql:可以执行select语句。

(3)释放资源

立即将执行者对象释放:void close();

ResultSet

ResultSet是结果集对象,有3个作用

(1)判断结果集中是否还有数据

boolean next();

有数据返回true,并将索引向下移动一行

没有数据返回false

(2)获取结果集中的数据

XXX getXxx("列名");

XXX代表数据类型(要获取某列数据,这一列的数据类型)

例如:String getString("name"); int getInt("age");

例如:

ResultSet rs = stat.executeQuery(sql);while(rs.next()) {System.out.println( rs.getInt("id") + "\t"+ rs.getString("name") + "\t"+ rs.getInt("price") + "\t"+ rs.getString("brand") + "\t"+ rs.getInt("stock"));}

(3)释放资源

立即将结果集对象释放:void close();

下一节:案例实现

MySQL实现JDBC-简单案例演示_Tensorflow-CSDN博客https://blog.csdn.net/weixin_43715214/article/details/123075053

MySQL实现JDBC-基础步骤相关推荐

  1. MySQL与JDBC基础

    ©Copyright 思思不羡仙 Date:2021-04 1. MySQL环境 1.1 安装卸载 使用 cd 命令至zip解压文件夹目录(不能有中文) 安装MySQL mysqld --instal ...

  2. 数据库MySQL基础---JDBC开发步骤--JDBC封装工具类--PreparedStatement实现CRUD操作

    JDBC简介 1.JDBC定义Java数据库连接(Java Database Connectivity,简称JDBC):是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询 ...

  3. pom 导入mysql连接,maven项目中的jdbc连接步骤

    在maven项目pom.xml中到入驱动包(以下是驱动包代码) mysql mysql-connector-java 8.0.15 导入成功会看到Maven Dependencies下有个mysql- ...

  4. (Java/JDBC)对MySQL数据库实现基础的增删改查操作(含源码)

    文章目录 前言 注(常用PreparedStatement方法) 源码展示 前言 实现数据库连接 → Java连接MySQL数据库(含源码) (实现简单的增删查改更改正确的SQL语句即可) 增:ins ...

  5. 下载MySQL的JDBC驱动jar包详细步骤

    前言必读 读者手册(必读)_云边的快乐猫的博客-CSDN博客 1.浏览器搜索MySQL,进入官网 2.选择DOWNLOADS  3.选择这个 4.选择Connector/J 5.选择想要的版本,在第二 ...

  6. mysql和JDBC学习

    1. MySQL 数据库 第一节 数据库简介 1.1 简介 ​ 数据库(DataBase,DB):指长期保存在计算机的存储设备(硬盘)上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合.简单 ...

  7. MySQL数据库+jdbc -- 笔记

    MySQL数据库 @Draven Mysql 1.连接数据库 1.1.下载可视化软件 1.2.连接数据库 1.3.连接命令 1.4.基本语法操作 2.操作数据库 2.1.操作数据库(了解) 2.2.数 ...

  8. 3.JDBC基础代码书写

    JDBC基础代码书写 (仅个人学习笔记) 基础知识补充 一.代码书写顺序 加载驱动 连接数据库 创建用于执行SQL语句的对象 书写SQL语句 执行SQL语句 对执行后的结果进行操作(具体看需求是否需要 ...

  9. JDBC 基础、CRUD、分页 第一节

    JDBC基础知识 JDBC 简介 1.持久化 把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以"固化",而 ...

  10. 【MySQL】JDBC编程

    目录 1.什么是JDBC? 2.导入 jar 包 3.JDBC 的使用 4.总结 1.什么是JDBC? 实际开发中,SQL 是很少手动输入的,绝大多数的 SQL 都是通过代码,自动执行的,这个时候就需 ...

最新文章

  1. Docker 从入门到精通(建议收藏的教程)
  2. JAVA_OA(十四)番外:JAVAWEB防止表单重复提交的方法整合(包括集群部署)
  3. SharePoint 2013技巧分享系列 - 同步Exchange显示高清用户照片
  4. [蓝桥杯][算法提高VIP]Sharing Chocolate(状压dp记忆化搜索)
  5. Mac本如何卸载MySQL
  6. 高可用MySQL MHA介绍
  7. IDEA 2019.3新建项目找不到Maven的解决方法
  8. css如何设置固定位置,用css固定位置的方法
  9. MySQL SQL error: #1271 - Illegal mix of collations for operation 'UNION'
  10. jQuery实现高亮显示网页关键词的方法
  11. 50年过去了,嫦娥五号探月依然不能直播,告诉你三个可能
  12. 三维空间中向量的旋转
  13. Adaptive让 Spark SQL 更高效更智能
  14. NVIDIA视频编码器 ffmpeg -h encoder=h264_nvenc
  15. ubuntu将cuda卸载干净
  16. mysql 过滤纯数字_mysql中怎么样过滤字符串中的数字
  17. 报Python培训班多少钱?报个班值得吗?
  18. Grain: Improving Data Efficiency of Graph Neural Networks via Diversified Influence Maximization分析
  19. SpringBoot项目中遇到的订单支付超时未支付关闭订单的解决方案
  20. Java电商系统秒杀怎么做?

热门文章

  1. 4分钟告诉你python是什么_Python调试方法有哪些,3分钟告诉你Python调试命令怎么用...
  2. cocos creator2.2.1益智小游戏源码《环与环》源码H5+安卓+IOS三端源码
  3. 根据学员英文名找到学员对象
  4. 【mysql】当前日期减一天 字段年月日-1天
  5. 配置nginx网页缓存时间
  6. dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib解决办法
  7. 小孩子语录——庆祝六一儿童节
  8. LightDB中的存储过程(七)—— 子程序
  9. Windows文件名长度限制
  10. 七年阿里老人谈新人成长