2016-03-24 9 views
0

JFrame Jtableに新しい機能が追加されました。挿入クエリを実行しようとしましたが、「ここでは列が許可されていません」というエラーが表示されました。JTable挿入クエリ

private void AddActionPerformed(java.awt.event.ActionEvent evt) { 
    try{ 
     theQuery("INSERT INTO CONFERENCE(CONFERENCEID,NAME,YEAR,STARTDATE,ENDDATE,COUNTRY,CITY,VENUE,EMAIL)" 
      +"values('"+cid.getText()+"','"+cname.getText()+"','"+cyear.getYear()+"','" 
      +csd.getDate()+"','"+ced.getDate()+"','"+country.getText()+"','"+city.getText() 
      +"','"+venue.getText()+"',"+email.getText()+")"); 
    } catch(Exception ex){} 
} 

    public void theQuery(String query){ 
    Connection con = null; Statement st = null; 
    try{ con = DriverManager.getConnection("jdbc:oracle:thin:@example:123", "123", "student"); 
    st = con.createStatement(); 
    st.executeUpdate(query); 
    JOptionPane.showMessageDialog(null,"Query Executed"); } 
    catch(Exception ex){ JOptionPane.showMessageDialog(null,ex.getMessage()); } } 
+0

私たちはtheQuery()メソッドを見ることができますか?また、私は生のクエリの代わりに準備されたステートメントを使用することをお勧めします。 –

+0

yuupさんの方法を追加しました –

+0

"、" "+ email.getText()+" ') " –

答えて

1

私はあなたの接続システムをこのようにしなければならないと思います。

public void theQuery() 
{ 
    Class.forName("com.mysql.jdbc.Driver"); 
    String url = "jdbc:mysql://localhost:3306/yourBDD"; 
    String sqlLogin = "login"; 
    String sqlPassword = "password"; 
    Connection conn = DriverManager.getConnection(url, sqlLogin, sqlPassword); 
    String query = " insert into CONFERENCE(CONFERENCEID, NAME, YEAR, COUNTRY, CITY, VENUE, EMAIL) values (?, ?, ?, ?, ?, ?, ?)"; 
    PreparedStatement preparedStmt = cnx.prepareStatement(query); 
    preparedStmt.setString(1, cid.getText()); 
    preparedStmt.setString(2, cname.getText()); 
    preparedStmt.setString(3, cyear.getYear()); 
    preparedStmt.setString(4, csd.getDate()); 
    preparedStmt.setString(5, ced.getDate()); 
    preparedStmt.setString(6, country.getText()); 
    preparedStmt.setString(7, city.getText(); 
    ... 
    preparedStmt.execute(); 
    conn.close(); 
}