文章目录

  • Java的JDBC编程
  • 1. 数据库编程的必备条件
  • 2. MySQL驱动包的安装
  • 3. idea 中 驱动包的部署
  • 4. Java的数据库编程: JDBC
  • 5. JDBC API
  • 6. JDBC常用接口和类
    • 6.1 数据库连接Connection
    • 6.2 Statement对象
    • 6.3 ResultSet对象
  • 7. JDBC使用的注意事项
  • 8. JDBC使用的具体操作
    • 8.1 插入对应的JDBC的使用
    • 8.2 删除对应的JDBC的使用
    • 8.3 修改对应的JDBC的使用
    • 8.4 查找对应的JDBC的使用

Java的JDBC编程

1. 数据库编程的必备条件

  • 编程语言: 如Java, C、 C++、 Python等
  • 数据库: 如Oracle, MySQL, SQL Server等
  • 数据库驱动包: 不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,
    如: MySQL提供了Java的驱动包mysql-connector-java,需要基于Java操作MySQL即需要该驱动包。同样的,要基于Java操作Oracle数据库则需要Oracle的数据库驱动包ojdbc。

2. MySQL驱动包的安装

  1. 首先浏览器搜索 https://mvnrepository.com

  2. 在输入框搜索 mysql jdbc

  3. 找到下面这个并点进去

  4. 选择对应自己 mysql 版本的 驱动程序

  5. 选择一个 点进去下载

3. idea 中 驱动包的部署

  1. 首先 在idea 的工程中,创建一个目录 ,然后把jar 包拷贝进去


  2. 打开idea 在 左上角 File -> Project Structure…

  3. 点击Librarires -> + -> Java

  4. 然后在选择libs目录 然后一路ok就可以了

4. Java的数据库编程: JDBC

因为数据库的种类有很多,不同的数据库提供的API(application programming interface) 都不太一样.在Java中为了解决这个问题,引入了JDBC.

JDBC,即Java Database Connectivity, java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问。

通过不同的数据库驱动程序把不同种类的 API 转换成 JDBC 风格的统一 API

在 Java 中 这样的驱动程序是一个独立的 jar包

JDBC优势:

  1. Java语言访问数据库操作完全面向抽象接口编程
  2. 开发数据库应用不用限定在特定数据库厂商的API
  3. 程序的可移植性大大增强

5. JDBC API

在Java JDBC编程中对数据库的操作均使用JDK自带的API统一处理,通常与特定数据库的驱动类是完全解耦的。 所以掌握Java JDBC API ( 位于 java.sql 包下) 即可掌握Java数据库编程。

6. JDBC常用接口和类

6.1 数据库连接Connection

Connection接口实现类由数据库提供,获取Connection对象通常有两种方式:
一种是通过DriverManager(驱动管理类)的静态方法获取:

// 加载JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 创建数据库连接
Connection connection = DriverManager.getConnection(url);

一种是通过DataSource(数据源)对象获取。 实际应用中会使DataSource对象。

DataSource ds = new MysqlDataSource();
((MysqlDataSource) ds).setUrl("jdbc:mysql://localhost:3306/test");
((MysqlDataSource) ds).setUser("root");
((MysqlDataSource) ds).setPassword("root");
Connection connection = ds.getConnection();

以上两种方式的区别是:

  1. DriverManager类来获取的Connection连接,是无法重复利用的,每次使用完以后释放资源时,通过connection.close()都是关闭物理连接。
  2. DataSource提供连接池的支持。连接池在初始化时将创建一定数量的数据库连接,这些连接是可以复用的,每次使用完数据库连接,释放资源调用connection.close()都是将Conncetion连接对象回收

6.2 Statement对象

Statement对象主要是将SQL语句发送到数据库中。 JDBC API中主要提供了三种Statement对象(Statement,PreparedStatement,CallableStatement)。

主要掌握两种执行SQL的方法:

  • executeQuery()方法执行后返回单个结果集的,通常用于select语句
  • executeUpdate()方法返回值是一个整数,指示受影响的行数,通常用于update、 insert、 delete语句

6.3 ResultSet对象

ResultSet对象它被称为结果集,它代表符合SQL语句条件的所有行,并且它通过一套getXXX方法提供了对这些行中数据的访问。

ResultSet里的数据一行一行排列,每行有多个字段,并且有一个记录指针,指针所指的数据行叫做当前数据行,我们只能来操作当前的数据行。 我们如果想要取得某一条记录,就要使用ResultSetnext()方法 ,如果我们想要得到ResultSet里的所有记录,就应该使用while循环。

7. JDBC使用的注意事项

  1. URL的使用
  2. 占位符 ?
  3. 和数据库建立连接的 Connection
  4. 关闭释放资源的顺序
  5. ResultSet 对象的 遍历

8. JDBC使用的具体操作

8.1 插入对应的JDBC的使用

操作步骤:

  1. 创建 DateSource 对象 (配置三方面信息 URL User Password)
  2. 和数据库建立连接Connection (处理SQLException异常)
  3. 拼装 SQL 语句,用到 PrepareStatement 对象
  4. 拼装完成后,执行 SQL 语句
  5. 执行完毕后,关闭释放相关资源(后创建先释放)

代码示例:

import com.mysql.cj.jdbc.MysqlDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;public class InsertJDBC {public static void main(String[] args) throws SQLException {// 1. 创建 DataSource 对象DataSource dataSource = new MysqlDataSource();// 需要针对dataSource 进行一些配置,以便后面能够顺利的访问到数据库服务器// 主要配置三方面信息: URL,User,Password 需要进行向下转型((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java20220310?characterEncoding=utf-8&useSSL=true&serverTimezone=UTC");((MysqlDataSource) dataSource).setUser("root");((MysqlDataSource) dataSource).setPassword("0000");// 2. 和数据库建立连接// 建立连接是为了验证当前网络通信是否正常// 如果不正常就会抛出 SQLException 异常// connection 对象生命周期应该是较短的.每个请求创建一个新的 connection.Connection connection = dataSource.getConnection();// 3. 拼装 SQL 语句,用到 PrepareStatement 对象String sql = "insert into student values(1,'曹操')";PreparedStatement statement = connection.prepareStatement(sql);System.out.println(" statement : "+statement);// 4. 拼装完成之后,可以执行 SQL 了// insert delete update 都使用 executeUpdate 方法来执行// select 就使用 executeQuery 来执行// 返回值表示此次操作修改了多少行int ret = statement.executeUpdate();System.out.println(" ret : "+ret);// 5. 执行完毕后,关闭释放相关资源// 一定是后创建的先释放statement.close();connection.close();}
}

8.2 删除对应的JDBC的使用

操作步骤:

  1. 创建 DataSource 对象(同样配置三方面信息)
  2. 创建数据库连接Connection
  3. 拼装 SQL 语句,用到 PrepareStatement 对象
  4. 拼装完成后,执行 SQL 语句
  5. 执行完毕后,关闭释放相关资源(后创建先释放)

代码实现:


import com.mysql.cj.jdbc.MysqlDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;public class DeleteJDBC {public static void main(String[] args) throws SQLException {// 1. 创建 DataSource 对象DataSource dataSource = new MysqlDataSource();((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java20220310?characterEncoding=utf-8&useSSL=true&serverTimezone=UTC");((MysqlDataSource) dataSource).setUser("root");((MysqlDataSource) dataSource).setPassword("0000");// 2. 创建数据库连接ConnectionConnection connection = dataSource.getConnection();// 3. 拼装 SQL 语句,用到 PrepareStatement 对象String sql = "delete from student where name = ?";System.out.println("请输入要删除的学生姓名: ");Scanner sc = new Scanner(System.in);String name = sc.nextLine();// 4. 拼装完成后,执行 SQL 语句PreparedStatement statement = connection.prepareStatement(sql);statement.setString(1,name);int ret = statement.executeUpdate();if(ret == 0) System.out.println("删除失败");else System.out.println("删除成功");// 5. 关闭释放资源statement.close();connection.close();}
}

8.3 修改对应的JDBC的使用

操作步骤:

  1. 创建 DataSource 对象(同样配置三方面信息)
  2. 创建数据库连接Connection
  3. 拼装 SQL 语句,用到 PrepareStatement 对象
  4. 拼装完成后,执行 SQL 语句
  5. 执行完毕后,关闭释放相关资源(后创建先释放)

代码实现:

import com.mysql.cj.jdbc.MysqlDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;public class UpdateJDBC {public static void main(String[] args) throws SQLException {// 1. 创建 DataSource 对象DataSource dataSource = new MysqlDataSource();((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java20220310?characterEncoding=utf-8&useSSL=true&serverTimezone=UTC");((MysqlDataSource) dataSource).setUser("root");((MysqlDataSource) dataSource).setPassword("0000");// 2. 连接数据库Connection connection = dataSource.getConnection();// 3. 拼接 SQL语句Scanner sc = new Scanner(System.in);System.out.println("请输入要修改的学生id: ");int id = sc.nextInt();System.out.println("请输入要修改的学生姓名: ");String name = sc.next();String sql = "update student set name = ? where id = ?";// 4. 执行 SQL 语句PreparedStatement statement = connection.prepareStatement(sql);statement.setString(1,name);statement.setInt(2,id);int ret = statement.executeUpdate();if(ret == 1) System.out.println("修改成功");else System.out.println("修改失败");// 5. 关闭释放资源statement.close();connection.close();}
}

8.4 查找对应的JDBC的使用

操作步骤:

  1. 创建 DataSource 对象 (同样处理三个方面信息)
  2. 创建 Connection 对象,和数据库建立连接
  3. 借助 PrepareStatement 拼接 SQL 语句
  4. 执行 SQL 语句
  5. 遍历结果集
  6. 关闭释放资源

代码实现:

import com.mysql.cj.jdbc.MysqlDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class SelectJDBC {public static void main(String[] args) throws SQLException {// 1. 创建 DataSource 对象DataSource dataSource = new MysqlDataSource();((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java20220310?characterEncoding=utf-8&useSSL=true&serverTimezone=UTC");((MysqlDataSource) dataSource).setUser("root");((MysqlDataSource) dataSource).setPassword("0000");// 2. 创建 Connection 对象,和数据库建立连接Connection connection = dataSource.getConnection();// 3. 借助 PrepareStatement 拼接 SQL 语句String sql = "select * from student";PreparedStatement statement = connection.prepareStatement(sql);// 4. 执行 SQL 语句ResultSet resultSet = statement.executeQuery();// 5. 遍历结果集.while (resultSet.next()){int id = resultSet.getInt("id");String name = resultSet.getString("name");System.out.println("id: "+id+"name: "+name);}// 6. 关闭释放资源resultSet.close();statement.close();connection.close();}
}

MySQL数据库 --- Java的JDBC编程相关推荐

  1. java jdbc 连接mysql数据库,Java 通过JDBC连接Mysql数据库

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

  2. 【MySQL系列】Java的JDBC编程

    目录 ??前言 ??一.背景知识引入 ??二.安装MySQL数据库驱动包,并且导入到项目中 ??三.JDBC的使用 ???3.1 JDBC插入数据操作 ???3.2 JDBC修改数据操作 ???3.3 ...

  3. java 婚恋交友网站Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

    一.源码特点     java 婚恋交友网站是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发.开发环境为 T ...

  4. 第06讲 连接到MySQL数据库02之jdbc

    本案例用于建立一个较为完整的案例,实现书本的增加删除修改查询 1 创建数据库 案例使用Mysql,数据库脚本代码如下: CREATE DATABASE IF NOT EXISTS `itcaststo ...

  5. 引入MySQL驱动包进行JDBC编程

    文章目录 1.什么是JDBC 2.创建JDBC项目的步骤-MySQL版本 1.什么是JDBC 每个数据库都会提供一组API来支持程序员实现自己客户端,自己根据需求来完成一些具体的增删查改的功能.但数据 ...

  6. Java的JDBC编程

    文章目录 一.Java的数据库编程:JDBC 二.JDBC的作用及转换器--数据库驱动程序 三.JDBC编程的步骤 四.JDBC示例展示及具体步骤分析(重要) 1.使用JDBC插入数据 2.使用JDB ...

  7. mysql数据库java链接,java链接MySQL数据库方法

    第一步:安装MySQL 这步我就很少说了,点击去看看怎么安装吧.html 第二步:建立数据库 安装好以后,咱们来建立一个数据库,一个表.(代码以下). //建立数据库 test: //在数据库中建立表 ...

  8. mysql 数据库dbhelp_使用JDBC连接MYSQL数据库的问题

    ------------这是源代码-------- package util; import java.sql.Connection; import java.sql.DriverManager; p ...

  9. jsp高校活动管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

    一.源码特点     jsp高校活动管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发.开发环境为 T ...

最新文章

  1. hdu 5366 简单递推
  2. androidstuido_schooltest_8_Network
  3. 好几天没写Blog了。
  4. 数字图像处理小练习存档1
  5. 大华热成像netsdkdemo_千年博物,智慧展馆丨大华股份全力守护“华夏珍宝库”...
  6. EL表达式和JSTL标签库使用
  7. Android深入浅出系列之Android开发环境搭建—SDK(三)
  8. android项目中有哪几种依赖关系,Android Studio项目中三种依赖的添加方式
  9. 反序列化时恢复transient字段
  10. validation 开始日期 结束日期_Spring Boot集成validation用于优雅的校验API参数的合法性...
  11. OCR识别扫描版PDF文件(Python版)
  12. Knx ip协议和Java实现
  13. 文件上传利器SWFUpload入门简易教程(转)
  14. 空间域图像增强(matlab实现)
  15. Idea通过svn更新项目失败报 Node remains in conflict
  16. 5.Lucene 基本原理(六)字典实现原理 FST(Finite State Transducer)
  17. Windows中使用pip下载任何包都报错
  18. scylladb集群管理
  19. UVa Problem 10001 Garden of Eden (伊甸园)
  20. ILP的基本编译器技术

热门文章

  1. P2P之关资金存管(三)我们的模式:懒猫
  2. 实验1:Zigbee的建网和加网 - 新兵训练营(3)
  3. 索泰显卡超频软件测试要多少时间,显卡超频性能测试_索泰 GeForce GTX 1080-8GD5X 玩家力量至尊OC_显卡评测-中关村在线...
  4. 数据仓库在税务系统的应用现状
  5. 尚硅谷李玉婷老师MySQL课程--DQL语言
  6. 网站数据库和服务器的连接不上,数据库怎么和网站服务器连接
  7. 观点 | 更优越的金融系统
  8. Web移动端商城 移动端商城手机网站html整套模板,web移动商城仿app手机模板下载
  9. JavaScript:计时器,包含按钮效果设置
  10. 芯片组x299是服务器主板吗,X299主板怎么样 X299主板首发评测 (全文)