2016-09-01 21 views
0

現在、私はh2組み込みデータベースを使用して学生データベースのJavaアプリケーションを開発しています。私が知りたいのは、パスワードをユーザー入力で更新する方法だけです。上記のJDBCのh2データベースの更新/変更パスワード

Scanner sc=new Scanner(System.in); 
String username,password,user="admin",pass; 
System.out.println("User name:"); 
username=sc.next(); 
System.out.println("Password:"); 
password=sc.next(); 
Class.forName("org.h2.Driver"); 
Connection c=DriverManager.getConnection("jdbc:h2:database",username ,password); 
Statement s=c.createStatement(); 
System.out.println("Enter new password:"); 
pass=sc.next(); 
s.execute("alter user "+user+" identified by "+pass); 

実行に次のエラーを示す一部抜粋です:

例外スレッド「メイン」org.h2.jdbc.JdbcSQLException中:SQLステートメントの構文エラー「にALTER USER ADMIN IDENTIFIED [*] BY POPPER ";予想される "SET、RENAME、ADMIN"; SQLステートメント: ポッパーによって識別されるユーザーの管理者を変更する[42001-176]

+1

ファンシーマニュアルを読んだことがありますか? http://www.h2database.com/html/grammar.html#alter_user_set_passwordプリペイドド・ステートメントまたは*エスケープ*ユーザーを使用してパスすることもできます。 –

答えて

0

s.execute("alter user "+user+" set password "+pass); 
を試してみてくださいに変更する必要があります参照してくださいh2の構文を試してみてください
+0

例外スレッド "main"のorg.h2.jdbc.JdbcSQLException:列 "POPPERY"が見つかりません。このエラーはクエリの使用時に発生します – dharan

関連する問題