try
{
st=cn.createStatement();
String strUser="";
rs=st.executeQuery("SELECT * FROM chsl_db WHERE name='"+nametxt.getText()+"'");
while(rs.next())
{
strUser=rs.getString(1);
}
if(strUser.equals(nametxt.getText()))
{
st= cn.createStatement();
rs = st.executeQuery("SELECT * FROM chsl_db WHERE name ='" + nametxt.getText() + "'");
while (rs.next())
{
titletxt.setText(rs.getString(1));
nametxt.setText(rs.getString(2));
flatnum.setText(rs.getString(3));
areatxt.setText(rs.getString(4));
emailtxt.setText(rs.getString(5));
deletebutton.setEnabled(true);
}
st.close();
}
else
{
JOptionPane.showMessageDialog(null,"No Data Found!","Security Warning",JOptionPane.WARNING_MESSAGE);
}
}
catch(SQLException s)
{
System.out.println("No record found!\n\n\n");
System.out.println("SQL Error" + s.toString() + " " + s.getErrorCode() + " " + s.getSQLState());
}
catch(Exception x)
{
System.out.println("Error" + x.toString()+" " + x.getMessage());
}
}
データベースとしてMySql Workbenchを使用しているプロジェクト。データベースへのデータの挿入は機能していますが、同じデータを取得することはできません。エラー "No Data Found!"がスローされます。接続とOKを確認しました。以下は私が接続を確立するために使用したコードです。助けてください !!MySqlデータベースからJtextfieldにデータを取得できません。
try
{
Class.forName("java.sql.Driver");
cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/avinash?useSSL=false","root","password");
}
catch(ClassNotFoundException e)
{
System.err.println("Failed to load driver");
e.printStackTrace();
}
catch(SQLException e)
{
System.err.println("Unable to connect");
e.printStackTrace();
}
Stack Overflowの質問のためのコードを書式設定するための努力をしてください。現時点では不可解にインデントされています。次に、そのようなクエリの作成をやめ、 'PreparedStatement'とパラメータ化されたSQLを代わりに使用します。現在のアプローチはSQLインジェクション攻撃や変換の失敗に対して脆弱です。 –
'strUser'は常にすべてのデータではなく、データベースの最後の行の名前を含みます。 –
また、SQLインジェクションを防ぐために準備文を使用することもできます。 –