Javaを使用してスクールプログラムのサインアップページを作成しています。私は3人のユーザー(Admin、Student Leader & Student)のテーブルをデフォルトで作成しました。現在、どの生徒も自分のユーザ名である&のパスワードでサインアップできます。私は、ユーザーがテキストをデータベーステーブルに挿入しようとしましたが、エラーは "org.sqlite.SQLiteException:[SQLITE_ERROR] SQLエラーまたはデータベースがありません(そのような列はありません:username)"です。そこにデータベースがありません。 これは私のコードです:JavaのSQLデータベースにデータを挿入する際にエラーが発生しました
JButton btnSubmit = new JButton("Submit");
btnSubmit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//declare variables
String username = "";
String password = "";
String name = "";
String AdminNo = "";
//get values using getText() method
username = txtUsername.getText().trim();
password = txtPassword.getText().trim();
name = txtName.getText().trim();
AdminNo = txtAdminNo.getText().trim();
if(username.equals("") || password.equals("")){
JOptionPane.showMessageDialog(null, "Name/Password is wrong");
}
else //Insert whether query is running properly
{
Connection conn = sqliteConnection.dbConnector();
String IQuery = "INSERT INTO Login(Username,Password,Name,AdminNo)" + "VALUES(username,password,name,AdminNo)";
System.out.println(IQuery); //Print to console
System.out.println("Connecting to a selected database");
try {
((Connection) conn).createStatement().execute(IQuery);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // select the rows
}
}
});
そして、これは私のデータベース表である:
INSERT INTO Login(Username,Password,Name,AdminNo) VALUES(username,password,name,AdminNo)
これは次のとおりです。 Login Table
"INSERT INTOログイン(ユーザー名、パスワード、名前、管理番号)" + "VALUES(" "+ username +" '、 "+ password +"'、+ "+ name +" ' '"+ AdminNo +"') ";しかし、私はSQLインジェクションを読むことをお勧めします。 –