2015-01-26 6 views
0

Я делаю проверку базы данных, если она существует. Если нет, он должен создать новую базу данных и таблицы.Создание новой базы данных, если она не существует

Моя проблема: я не могу создать таблицу, только базу данных.

private void Connect() throws Exception 
    { 
    try { 
    Class.forName("com.mysql.jdbc.Driver"); 
    con = DriverManager.getConnection("jdbc:mysql:///", 
      "root", ""); 
    st = con.createStatement(); 
    String sql = "CREATE DATABASE dbproject2"; 
    //sql = "DROP DATABASE DBNAME"; 
    st.executeUpdate(sql); 
    //con = DriverManager.getConnection("jdbc:mysql:///dbproject2","root", ""); 
    st.executeUpdate("CREATE TABLE tbl_admin(username varchar(200),password varchar(200),name varchar(200), PRIMARY KEY(username))"); 
    int i = st.executeUpdate("insert into tbl_admin values('admin','123456','Chris')"); 
    st.executeUpdate("CREATE TABLE tbl_emp(name varchar(200),department varchar(200),startTime time, PRIMARY KEY(name))"); 
    st.executeUpdate("CREATE TABLE tbl_records(cardNo varchar(100),holderNo varchar(100),holderName varchar(100),IODate date,IOTime time,IOGateNo varchar(100),IOGateName varchar(100),IOStatus varchar(100),departmentNo int(10), PRIMARY KEY(name))"); 

} catch (SQLException sqlException) { 
    if (sqlException.getErrorCode() == 1007) { 
     // Database already exists error 
     Class.forName(Driver);  
     con = DriverManager.getConnection(url,uname,pword); 
     st = con.createStatement(); 
     st1 = con.createStatement(); 
    } else { 
     // Some other problems, e.g. Server down, no permission, etc 
     sqlException.printStackTrace(); 
    } 
} catch (ClassNotFoundException e) { 
    // No driver class found! 
} 

ответ

0

Вам необходимо подключить новую базу данных и создать новую инструкцию с ними.
например.

con = DriverManager.getConnection("jdbc:mysql:///", 
      "root", ""); 
    st = con.createStatement(); 
    String sql = "CREATE DATABASE dbproject2"; 
    //sql = "DROP DATABASE DBNAME"; 
    st.executeUpdate(sql); 


con = DriverManager.getConnection("jdbc:mysql:///dbproject2","root", ""); 

    st = con.createStatement(); 


    st.executeUpdate("CREATE TABLE tbl_admin(username varchar(200),password varchar(200),name varchar(200), PRIMARY KEY(username))"); 
    int i = st.executeUpdate("insert into tbl_admin values('admin','123456','Chris')"); 
    st.executeUpdate("CREATE TABLE tbl_emp(name varchar(200),department varchar(200),startTime time, PRIMARY KEY(name))"); 
    st.executeUpdate("CREATE TABLE tbl_records(cardNo varchar(100),holderNo varchar(100),holderName varchar(100),IODate date,IOTime time,IOGateNo varchar(100),IOGateName varchar(100),IOStatus varchar(100),departmentNo int(10), PRIMARY KEY(name))"); 
+0

это не относится к вашему типу question.but, это ваша ошибка SQL Syantax, а не логическая ошибка. Поэтому перепроверьте ваш SQL syantax и исправьте его, пожалуйста. –

+0

решен! просто нужно удалить заявление базы данных использования – user2634806

+0

хорошо! –

Смежные вопросы