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