目前,我正在使用h2嵌入式数据库为学生数据库开发Java应用程序。我只想知道如何通过用户输入来更新密码。
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语句:由popper标识的alter user admin [42001-176]
您尝试了Oracle语法。尝试使用H2语法
ALTER USER admin SET PASSWORD 'aaa';
有关更多详细信息,请参见http://www.h2database.com/html/grammar.html#alter_user_set_password
编辑1
您的代码需要更改为
s.execute("alter user "+user+" set password '"+pass + "'");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句