JDBC编程的学习——MYsql版本

目录

前言

什么是JDBC ???

前置准备

使用JDBC的五个关键步骤

1.建立与数据库的连接

2.创建具体的sql语句和Statement

3.执行SQL语句

4.处理结果集

5.释放资源

完整流程展示


前言

笔者在先前的博客就提过会写关于JDBC的内容

[Mysql] 的基础知识和sql 语句.教你速成(上)——逻辑清晰,涵盖完整-CSDN博客

作为一个初学者,JDBC很大程度上解决了我之前的困惑——应用程序是怎么和数据库关联起来的

在本文中,我以先前分享过的图书管理系统为例子,来向大家初步介绍如何使用JDBC

图书管理系统(java) 代码展示和思路介绍 (9000字小长文)_图书管理系统关键代码展示-CSDN博客

什么是JDBC ???

JDBC ,即 Java Database Connectivity java 数据库连接。
是一种用于执行 SQL 语句的 Java API ,它是 Java中的数据库连接规范。
这个 API java.sql.*,javax.sql.* 包中的一些类和接口组成,
它为 Java 开发人员操作数据库提供了一个标准的API ,可以为多种关系数据库提供统一访问。
JDBC提供了一个统一的接口,使得Java应用程序可以与任何支持JDBC标准的关系型数据库进行交互,无需关心具体的数据库实现细节。这种平台无关性使得开发的应用程序可以轻松地在不同的数据库系统上运行。
话句话说,通过使用JDBC以及它升级过的版本,我们就可以用相对低的知识成本,使JAVA程序连接数据库
在之前的图书管理系统中笔者就说过,程序的缺陷就是没法长期保存数据,一旦程序执行结束,数据就会丢失,因此,我们可以将它写入我们的MYsql数据库中,长期保存.

前置准备

1.下载好驱动包

2.创建好项目以后,再创建目录存放驱动包,并且设置为library

具体操作可以看我另一篇博客

图文讲解IDEA如何导入JDBC驱动包-CSDN博客

使用JDBC的五个关键步骤

1.建立与数据库的连接

在Java中创建一个数据源(DataSource)对象,并实例化为MySQL数据库的数据源(MysqlDataSource) (向上转型)

然后设置好 URL  User 和Password   

其中关于URL 说明如下:

URL(Uniform Resource Locator,统一资源定位符)是用于标识和定位互联网上资源的地址。它是一个字符串,描述了资源的位置和访问方式

URL是互联网中标准的资源定位方式,用于浏览器访问网页、下载文件、发送请求等操作。在编程中,通过URL可以指定需要访问的网络资源,进行网络通信和数据传输。

同时呢,代码如下

  DataSource dataSource=new MysqlDataSource();
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jsh?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("你的数据库密码");

关于URL,作为我们自己练习来说,127.0.0.1 是一个回环IP地址 ,3306是我们的端口号, jsh在这代表连接哪个数据库,基本都是默认的,直接复制即可(除了连接什么数据库自己定)

然后建立连接

 Connection connection=dataSource.getConnection();

2.创建具体的sql语句和Statement

这里就要考验你的sql语句是否扎实了

举例来说

我们要写一个sql命令,它的数据类型是String

 String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";
default 是默认值,这么什么好说的,你肯定会疑惑?是什么
这里的?是占位符,便于我们在程序中输入数据以填充
我们以增加图书这个命令来看,代码如下
     System.out.println("增加图书");
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入您要添加的图书的书名:");
        String name = scanner.nextLine();
        System.out.println("请输入您要添加的图书的作者名:");
        String author = scanner.nextLine();
        System.out.println("请输入您要添加的图书的类型:");
        String type = scanner.nextLine();
        System.out.println("请输入您要添加的图书的价格:");
        int price = scanner.nextInt();
        String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";
        PreparedStatement preparedStatement=connection.prepareStatement(sql);
         preparedStatement.setString(1,name);
        preparedStatement.setString(2,author);
        preparedStatement.setInt(3,price);
        preparedStatement.setString(4,type);

在写好我们的命令以后,创建 PreparedStatement,它的作用是将sql语句传到数据库当中,

它也给了我们一组方法,可以手动输入数据去替换我们的占位符(?)

在方法中,左边的数字代表问好的位置,右边的标识符代表我们要替换的数据

3.执行SQL语句

现在,我们已经建立好连接,写好了命令,现在就需要他执行!

执行也有两种方法,分别去应用广义上的写(包括修改增加删除)和查询

 int n=preparedStatement.executeUpdate();

 这里我们以"写"作为例子去看

    int executeUpdate() throws SQLException;

 可以看到这是一个 int 方法,我们用n去接收,来查看有几条命令执行了

4.处理结果集

如果是查询操作,通常会有结果集,但这里我们就不细说了,到时候看案例就知道了

5.释放资源

顺序通常是释放最后调用的对象

 preparedStatement.close();
        connection.close();

完整流程展示

这里给大家看个大概的流程

     //1 创建
        DataSource dataSource=new MysqlDataSource();
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jsh?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("你的密码");

        //2 建立链接
      Connection connection=dataSource.getConnection();

      //3 创建sql语句
        System.out.println("增加图书");
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入您要添加的图书的书名:");
        String name= scanner.nextLine();
        System.out.println("请输入您要添加的图书的作者名:");
        String author = scanner.nextLine();
        System.out.println("请输入您要添加的图书的类型:");
        String type = scanner.nextLine();
        System.out.println("请输入您要添加的图书的价格:");
        int price = scanner.nextInt();
        String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";
        PreparedStatement preparedStatement=connection.prepareStatement(sql);
         preparedStatement.setString(1,name);
        preparedStatement.setString(2,author);
        preparedStatement.setInt(3,price);
        preparedStatement.setString(4,type);

        //4 发送给服务器
        int n=preparedStatement.executeUpdate();

        //5 释放资源

        preparedStatement.close();
        connection.close();

具体案例更新在下篇

相关推荐

  1. JDBC编程(数据库编程)

    2024-07-10 22:10:02       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 22:10:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 22:10:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 22:10:02       45 阅读
  4. Python语言-面向对象

    2024-07-10 22:10:02       55 阅读

热门阅读

  1. PHP框架详解-symfony框架

    2024-07-10 22:10:02       24 阅读
  2. 深入理解UTF-8 Encoding在C#中的应用与异常处理

    2024-07-10 22:10:02       23 阅读
  3. Linux 常用命令 - mkdir【创建新目录】

    2024-07-10 22:10:02       20 阅读
  4. stm32实现IIC读写

    2024-07-10 22:10:02       22 阅读
  5. 中小企业和数智化的距离,只差一块华为IdeaHub

    2024-07-10 22:10:02       23 阅读
  6. C# —— Directory类

    2024-07-10 22:10:02       16 阅读
  7. 在Ubuntu 22.04上安装Docker最新版本

    2024-07-10 22:10:02       18 阅读