首页 > 解决方案 > 在java中运行时创建2个sql表

问题描述

我是 JDBC 的新手,我正在尝试制作试用程序,程序本身将在其中创建一个数据库和 2 个表。但是,它总是以数据库中只有 1 个表结束。

Connection con = null;
    Connection con1 = null;
    Statement statement = null;
    Statement statement1 = null;
    try{
        //Class.forName("com.mysql.cj.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://localhost", "root", "");
        con1 = DriverManager.getConnection("jdbc:mysql://localhost", "root", "");
        
        statement = con.createStatement();
        statement1 = con1.createStatement();
        
        String sql = "create database user";
        statement.execute(sql);
        statement.execute("use user");
        String firstTable = "create table login" + "(username varchar(255) not null primary key,"
                + "password varchar(255) not null" + ")";
        statement.execute(firstTable);
        
        statement1.execute("create table userInfo" + 
                "(ID int not null,"
                + "firstName varchar(255) not null,"
                + "lastName varchar (255) not null,"
                + "middle varchar(255),"
                + "birth_Date varchar(255) not null,"
                + "gender varchar(6) not null,"
                + "e_Mail varchar(255) not null,"
                + "c_Group varchar(255) not null,"
                + "position varchar(255) not null" + ")");
        
    }
    catch(SQLException w){

    }
    finally{
        con.close();
        con1.close();
    }

我也只用一个语句和这样的 con 进行了尝试,但效果不佳

Connection con = null;
    Statement statement = null;
    try{
        con = DriverManager.getConnection("jdbc:mysql://localhost", "root", "");
        statement = con.createStatement();
        
        String sql = "create database user";
        statement.execute(sql);
        statement.execute("use user");
        statement.executeUpdate("create table login" + "(username varchar(255) not null primary key,"
                + "password varchar(255) not null" + ")");
        
        statement.executeUpdate("create table userInfo" + 
                "(ID int not null,"
                + "firstName varchar(255) not null,"
                + "lastName varchar (255) not null,"
                + "middle varchar(255),"
                + "birth_Date varchar(255) not null,"
                + "gender varchar(6) not null,"
                + "e_Mail varchar(255) not null,"
                + "c_Group varchar(255) not null,"
                + "position varchar(255) not null)");
        con.close();
    }
    catch(SQLException w){

    }
finally{
con.close()
}

标签: javajdbc

解决方案


感谢您建议在 catch 块上打印一些东西Johnny Mopp我发现为什么我没有得到我想要的结果以及错误在哪里。我不确定这是否是正确的方法,但我是这样做的:

Connection con = null;
    Connection con1 = null;
    Statement statement = null;
    Statement statement1 = null;
    try{
        con = DriverManager.getConnection("jdbc:mysql://localhost", "root", "");
        
        statement = con.createStatement();
        
        String sql = "create database user";
        statement.execute(sql);
        statement.execute("use user");
        String firstTable = "create table login" + "(username varchar(255) not null primary key,"
                + "password varchar(255) not null" + ")";
        statement.execute(firstTable);
        
        con1 = DriverManager.getConnection("jdbc:mysql://localhost/user", "root", "");
        statement1 = con1.createStatement();
        statement1.execute("create table userInfo" + 
                "(ID int not null,"
                + "firstName varchar(255) not null,"
                + "lastName varchar (255) not null,"
                + "middle varchar(255),"
                + "birth_Date varchar(255) not null,"
                + "gender varchar(6) not null,"
                + "e_Mail varchar(255) not null,"
                + "c_Group varchar(255) not null,"
                + "position varchar(255) not null" + ")");
        
    }
    catch(SQLException w){
        w.printStackTrace();
    }
    finally{
        con.close();
        con1.close();
    }

也谢谢


推荐阅读