当前位置: 首页 > article >正文

【Java】案例:检测MySQL是否存在某数据库,没有则创建

1.代码

package hello;
import java.sql.*;

public class CeShi {
	//定义基本数据
	static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://localhost/";

    static final String USER = "your_username";
    static final String PASS = "your_password";

    //主函数
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;

        try {
            Class.forName(JDBC_DRIVER);
            System.out.println("连接到数据库...");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);

            // 检查是否存在名为 'Bank' 的数据库
            createDatabase(conn, "bank");

            // 切换到 'Bank' 数据库
            conn.setCatalog("Bank");

        } catch (SQLException se) {
            se.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (stmt != null) stmt.close();
            } catch (SQLException se2) {
            }
            try {
                if (conn != null) conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
    }

    //检查bank数据库是否存在
    private static boolean databaseExists(Connection conn, String dbName) throws SQLException {
        ResultSet resultSet = conn.getMetaData().getCatalogs();
        while (resultSet.next()) {
            if (dbName.equals(resultSet.getString(1))) {
                return true;
            }
        }
        return false;
    }

    //创建数据库
    private static void createDatabase(Connection conn, String dbName) throws SQLException {
        // 检查数据库是否已经存在
        if (!databaseExists(conn, dbName)) {
            Statement stmt = conn.createStatement();
            String sql = "CREATE DATABASE " + dbName;
            stmt.executeUpdate(sql);
            System.out.println("成功创建数据库");
            stmt.close();
        } else {
            System.out.println("数据库已经存在,无需创建");
        }
    }
}

2.描述

这段Java代码实现了一个简单的数据库连接和创建数据库的功能。以下是对代码的主要部分进行的描述:

1.导入Java的SQL相关库:

package hello;
import java.sql.*;

2.定义数据库连接信息:

static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/";
static final String USER = "your_username";
static final String PASS = "your_password";

3.主函数 main 中:

  • 注册JDBC驱动,并建立与数据库的连接。
  • 调用 createDatabase 方法,检查是否存在名为 'Bank' 的数据库,如果不存在,则创建之。
  • 最后通过 setCatalog 方法切换到 'Bank' 数据库。

4.databaseExists 方法用于检查指定的数据库是否已经存在。

5.createDatabase 方法用于创建数据库,首先通过调用 databaseExists 方法检查数据库是否已经存在,如果不存在则执行SQL语句创建。


http://www.kler.cn/news/234031.html

相关文章:

  • DC-8靶机渗透详细流程
  • 怎么用postman调用webservice(反推SoapUI)
  • Ubuntu上开启SFTP服务教程
  • 软件安全测试报告如何编写?权威的安全测试报告如何获取?
  • Hive-架构与设计
  • CNN应用Keras Tuner寻找最佳Hidden Layers层数和神经元数量
  • vue3跨组件(多组件)通信:事件总线【Event Bus】
  • 修改GI文件的权限
  • 双活工作关于nacos注册中心的数据迁移
  • C#系列-C#访问MongoDB+redis+kafka(7)
  • Avalonia学习(二十三)-大屏
  • 方格定位2_题解
  • Qt安装配置教程windows版(包括:Qt5.8.0版本,Qt5.12,Qt5.14版本下载安装教程)(亲测可行)
  • STM32 FSMC (Flexible static memory controller) 灵活静态内存控制器介绍
  • Android java基础_类的继承
  • python如何用glob模块匹配路径
  • Lua Global环境
  • 时间序列预测——BiGRU模型
  • 应急响应-挖矿木马-常规处置方法
  • notepad++成功安装后默认显示英文怎么设置中文界面?
  • 突破编程_C++_面试(基础知识(10))
  • 学习笔记——ENM模拟
  • 微服务学习 | Spring Cloud 中使用 Sentinel 实现服务限流
  • 零基础学编程从入门到精通,系统化的编程视频教程上线,中文编程开发语言工具构件之缩放控制面板构件用法
  • Centos 7系统安装proftpd-1.3.8过程
  • 图像的旋转不变特性及应用
  • React18原理: Fiber架构下的单线程CPU调度策略
  • 代码随想录-背包问题
  • vue3 之 商城项目—详情页
  • 双非本科准备秋招(21.1)—— 力扣二叉搜索树