2016-09-01 3 views
0

현재 h2 내장 데이터베이스를 사용하여 학생 데이터베이스 용 Java 애플리케이션을 개발 중입니다. 내가 알고 싶은 것은 사용자 입력으로 비밀번호를 업데이트하는 것입니다. 스레드에서JDBC에서 h2 데이터베이스의 비밀번호 변경/변경

예외 "주요"org.h2.jdbc.JdbcSQLException : SQL 문에 구문 오류 "ALTER 사용자 ADMIN 위 감안할 때

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); 

는 실행에 다음과 같은 오류가 표시 부분 조각입니다 신원 확인 [*] BY POPPER "; 예상 된 "SET, RENAME, ADMIN"; SQL 문 : popper에 의해 식별 된 사용자 변경 관리자 [42001-176]

+1

멋진 설명서를 읽었습니까? http://www.h2database.com/html/grammar.html#alter_user_set_password 미리 준비된 문이나 * escape * 사용자를 사용하여 패스 할 수도 있습니다. –

답변

2

오라클 구문을 사용해 보았습니다.

ALTER USER admin SET PASSWORD 'aaa'; 

은 자세한 내용

편집에 대한 http://www.h2database.com/html/grammar.html#alter_user_set_password를 참조 H2 구문을 시도 1

당신의 코드를 시도

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

사용자의 비밀번호를 읽고 업데이트하고 싶습니다. – dharan

+0

대답을 업데이트했습니다. – Guenther

0

로 변경해야 다음

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

예외 스레드 "main"org.h2.jdbc.JdbcSQLException : "POPPERY"열을 찾을 수 없습니다; 이 오류는 쿼리를 사용할 때 발생합니다. – dharan

관련 문제