2011-12-17 10 views
0

私はデータベース名を取得するためにJTextfieldとスイングフォームでデータベース作成アクションを実行するためにJButtonを持っています。問題は、私が新しいデータベースに与えたのと同じ名前のデータベースが存在する場合、テキストフィールドに値を与え、ボタンをクリックしてデータベース全体をチェックする必要がある場合です。これは、既存のデータベースを削除する必要があり、指定された名前を新しいデータベースに受け入れる必要があることを意味します。ここに私のコードです。 create database実行時のデータベース名の確認とデータベースの作成

package db1; 


    import java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.*; 
    import java.io.*; 
    import java.sql.*; 
    import java.sql.Connection; 
    import java.sql.DriverManager; 
    import java.sql.SQLException; 
    import java.sql.Statement; 

    public class Main implements ActionListener 
    { 
     JTextField txt; 
     JButton create; 
     JFrame frame; 
     JPanel panel; 
     JOptionPane jop; 
     //Font font = UIManager.getFont("txt.font"); 
     public Main() 
     { 
      frame=new JFrame(); 
      panel=new JPanel(); 
      txt=new JTextField(10); 
      create=new JButton("create"); 
      create.setBounds(20, 200, 50, 40); 

     panel.add(txt); 
     panel.add(create); 
     create.addActionListener(this); 
     frame.add(panel); 



      // n.getContentPane().add(new textf()); 
      frame.setSize(440,310); 
      frame.setVisible(true); 

     } 
     public void actionPerformed(ActionEvent e) 
     { 
     Connection con = null; 
      try{ 
       Class.forName("com.mysql.jdbc.Driver"); 
       con = DriverManager.getConnection("jdbc:mysql://localhost:3306/vijay","root","root"); 
       try{ 

            String database=txt.getText(); 
            Statement st = con.createStatement(); 
            String check=null; 
            ResultSet rs = con.getMetaData().getCatalogs(); 
            while (rs.next()) { 
            // System.out.println("" + rs.getString("TABLE_CAT")); 
            check=rs.getString("TABLE_CAT"); 
            System.out.println(check); 

            if(database.equals(check)) {I NEED CODE HERE} 
            { 
             String query = "DROP DATABASE"+check; 
             st.executeUpdate(query); 
            } 
            else{ 
            st.executeUpdate("CREATE DATABASE "+database); 
        JOptionPane.showMessageDialog(frame,"DATA BASE IS CREATED"); 

             } 


           } 
         } 

       catch (SQLException s) 
          { 
        System.out.println(s); 
           //JOptionPane.showMessageDialog(frame,"DATA BASE IS already exist"); 
       } 
      } 
      catch (Exception ea){ 
         ea.printStackTrace(); 
      } 
     } 


     public static void main(String[] args) 
     { 
      new Main(); 

     } 


    } 

答えて

1

だけ使用します。

DROP DATABASE IF EXISTS db_name; 

、それが存在するかどうかをチェックする気にしないでください。 MySQL DROP DATABASE Syntaxを確認してください。

関連する問題