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

【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语句创建。

相关文章:

  • 第六章 管理文档 - 插入或替换文档:%SaveDocument()
  • 算法学习系列(三十五):贪心(杂)
  • 简洁高效的短链接:优化互联网体验
  • C#,二分法(Bisection Method)求解方程的算法与源代码
  • 寿司转盘,用 C 编码
  • FPGA中的模块调用与例化
  • 云计算基础-存储基础
  • 【OpenAI Sora】 最强文生视频怎么用-新手小白必看教程
  • 类和结构体的区别
  • MATLAB|基于改进二进制粒子群算法的含需求响应机组组合问题研究(含文献和源码)
  • AI在职场变革中的引领作用:从本土实践看智能技术带来的效率跃升与行业革新
  • YML 静态类获取值
  • php基础学习之可变函数(web渗透测试关键字绕过rce和回调函数)
  • 【leetcode刷题之路】面试经典150题(1)——数组/字符串
  • 树和二叉树的基本知识
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【前端学习】-粗谈选择器
  • Druid 在有赞的实践
  • extjs4学习之配置
  • MySQL几个简单SQL的优化
  • php的插入排序,通过双层for循环
  • React-flux杂记
  • Redis的resp协议
  • SAP云平台里Global Account和Sub Account的关系
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • vue 配置sass、scss全局变量
  • Web Storage相关
  • 分布式任务队列Celery
  • 分享一份非常强势的Android面试题
  • 类orAPI - 收藏集 - 掘金
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 算法-图和图算法
  • 正则学习笔记
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • #《AI中文版》V3 第 1 章 概述
  • #Ubuntu(修改root信息)
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #前后端分离# 头条发布系统
  • (12)Hive调优——count distinct去重优化
  • (2)nginx 安装、启停
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (java)关于Thread的挂起和恢复
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)学习JVM —— 垃圾回收机制
  • (三) diretfbrc详解
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .NET MVC 验证码
  • .Net Web项目创建比较不错的参考文章
  • .NET 回调、接口回调、 委托
  • .NET 中 GetProcess 相关方法的性能
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境