在JDBC中更新/更改h2数据库的密码

时间:2016-09-01 06:41:44

标签: java sql jdbc h2

目前,我正在使用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);

上面给出了部分片段,它在执行时显示以下错误:

  

线程“main”中的异常org.h2.jdbc.JdbcSQLException:SQL语句“ALTER USER ADMIN IDENTIFIED [*] BY POPPER”中的语法错误;预期“SET,RENAME,ADMIN”; SQL语句:   修改由popper [42001-176]

标识的用户管理员

2 个答案:

答案 0 :(得分:3)

您尝试了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 + "'");

答案 1 :(得分:0)

尝试以下

s.execute("alter user "+user+" set password "+pass);