フォームから値を挿入中にエラーメッセージが表示されます。 エラーはです。カラムカウントはraw 1の値カウントと一致しません1。 私の5番目の文字列の値は、の日付というデータ型でsqlに格納する必要があります。mysqlの文字列型(java)と日付データ型を変換するには?
String s1=this.txtUsername.getText();
String s2=this.txtPassword.getText();
String s3=this.txtName.getText();
String s4=this.txtAddress.getText();
String s5=this.txtContractEndDetails.getText();
connection getcon = new connection();
Connection conn;
try{
conn=getcon.creatConnection();
Statement stmt=conn.createStatement();
stmt.executeUpdate("insert into TravelGuide(username,password,name,address,contract_end_date)values ('"+s1+"','"+s2+"','"+s3+"','"+s4+"'+'"+s5+"')");
}
catch(Exception ex){
JOptionPane.showMessageDialog(PanelTG, ex.getMessage(),"Error Occured",2);
}
これは、SQLクエリの関連テーブルです。
preparedStatement("insert into TravelGuide (username,password,name,address,contract_end_date) values (?, ?, ?, ?, ?)");
についてImが混乱し
を編集し
create table TravelGuide(
username char(20),
password char(20),
name varchar(100),
address varchar(150),
contract_end_date date,
constraint TravelGuide_PK primary key(username)
);
uは、さらに、これを説明してもらえます。..
は、この権利ですか?内部**マークはエラーに表現の違法なスタートを与えているとシンボルを見つけることができませんコード..私を助けてください.. try
インサイド
try {
conn=getcon.creatConnection();
**String sql="insert into TravelGuide("+"username,"+"password,,"+,"name,"+"address,"+"contract_end_date)"+"values(?,?,?,?,?)";**
PreparedStatement stmt = conn.**preparedStatement**(sql);
java.sql.Date dtValue = java.sql.Date.valueOf(s5);
stmt.setString(1, s1);
stmt.setString(2, s2);
stmt.setString(3, s3);
stmt.setString(4, s4);
stmt.setDate(5, dtValue);
stmt.executeUpdate();
}
、私はされるべきだと思います!あなたは自分自身をSQLインジェクション攻撃にさらしています。 'PreparedStatement'とバインドパラメータを使用します。 – QuantumMechanic
PreparedStatementsと変数をバインドして、次のようなことをする必要があります。http://stackoverflow.com/questions/370852/java-creating-a-date-object-from-a-string-and-inserting-into -mysql – Thilo
私の名前は[Bobby Tables](http://xkcd.com/327/)です。どこのシステムにログインできますか? – Jesper