Java:在同一个类中创建Mysql数据库和表

标签 java mysql

我正在创建一个用于创建 MySQL 数据库和表的 Java 程序。我是相当新的,所以我边走边学。我能够创建数据库,然后继续创建表。当我运行我的程序时,我得到了这个异常错误

java.sql.SQLException: No database selected

我明白我遇到的错误,但我不知道当我已经将我的 URL 设置到我的根目录时我可以选择数据库。

String url = "jdbc:mysql://localhost:3306/";

下面是我的代码,欢迎任何反馈,谢谢。

import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.SQLException;


public class MysqlSetUp{

private static final String EMPLOYEE_TABLE = "create table MyEmployees3 ( "
  + "   id INT PRIMARY KEY, firstName VARCHAR(20), lastName VARCHAR(20), "
  + "   title VARCHAR(20), salary INT )";

public static Connection getConnection() throws Exception {
String driver = "org.gjt.mm.mysql.Driver";
String url = "jdbc:mysql://localhost:3306/";
String username = "root";
String password = "";
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username, password);
return conn;
}
  public static void main(String args[]) {
  Connection conn = null;
  Statement stmt = null;
  try {
    conn = getConnection();
    stmt = conn.createStatement();
    stmt.executeUpdate("CREATE DATABASE Employess");
    stmt.executeUpdate(EMPLOYEE_TABLE);
    stmt.executeUpdate("insert into MyEmployees3(id, firstName) values(100, 'A')");
    stmt.executeUpdate("insert into MyEmployees3(id, firstName) values(200, 'B')");
    System.out.println("CreateEmployeeTableMySQL: main(): table created.");
      } catch (ClassNotFoundException e) {
    System.out.println("error: failed to load MySQL driver.");
    e.printStackTrace();
  } catch (SQLException e) {
    System.out.println("error: failed to create a connection object.");
    e.printStackTrace();
  } catch (Exception e) {
    System.out.println("other error:");
    e.printStackTrace();
  } finally {
    try {
      stmt.close();
      conn.close();
    } catch (SQLException e) {
      e.printStackTrace();
     }
   }
  }
 }

最佳答案

创建后您需要USE Employess

...
stmt = conn.createStatement();
stmt.executeUpdate("CREATE DATABASE Employess");
stmt.executeUpdate("USE Employess");
stmt.executeUpdate(EMPLOYEE_TABLE);
...

关于Java:在同一个类中创建Mysql数据库和表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48915735/

相关文章:

java - 大型 TicTacToe 5x5 棋盘的非常好的启发式评估规则

java - YUV Format.YUV420 和 Color Space.YUV420 有什么区别?

java - 是否有使用消息参数作为属性创建 JSON 对象的 Logback 布局?

java - 两步创建SHA256withRSA

java - 为什么在Java中查询一个日期BC改成AD?

sql - 如何在mysql查询中获取一个变量中的多列

mysql - 如何使用 MySQL 将表预加载到 INNODB 缓冲池中?

mysql - 如何升级Mysql客户端版本?

c# - 将多个参数从 c# 传递到 python

mysql - php mysql 选择数据所在列数组