Stringexecuta=("CREATE USER '"+usuario+"' NOCREATEDB NOCREATEUSER NOINHERIT ENCRYPTED PASSWORD '"+senha+"' ");try{Class.forName("org.postgresql.Driver");Connectioncon=DriverManager.getConnection("jdbc:postgresql://10.1.1.14:5432/teste",usuario,senha);Statementstmt=con.createStatement();stmt.executeUpdate(executa);con.close();stmt.close();}catch(Exceptionee){ee.printStackTrace();}
ramilani12
Use classe PreparedStatement evite esses SQLInjection:
PreparedStatementpstmt=connectionDB.prepareStatement(" CREATE USER ? NOCREATEDB NOCREATEUSER ENCRYPTED ? ")pstmt.setString(1,usuario);pstmt.setString(2,senha);pstmt.executeQuery();
M
marcoscorso
existe outra maneira …
pois as variaveis usuario e senha vou digitar num jtextfield e mover para uma string
ramilani12
marcoscorso:
existe outra maneira …
pois as variaveis usuario e senha vou digitar num jtextfield e mover para uma string
Não entendi!?
Basta passar o usuario e senha para seu metodo …
M
marcoscorso
ja consegui
obrigado
M
marcoscorso
no postgres eu fiz assim:
CREATE USER “usuario” NOCREATEDB NOCREATEUSER ENCRYPTED PASSWORD ‘senha’
mas como ja falei “usuario” e ‘senha’ sao 2 string’s que vao ser digitadas num jtextfield e num jpasswordfield, …
M
marcoscorso
quando a string usuario tem valor so de numero, tipo, “123” ele da erro (cai no “catch” com o erro em negrito abaixo), quando coloco “a1” ele cadastra normalmente, porque ???
Criei o usuario “123” pelo postgres ele criou normal, pelo java da erro
erro : Error: syntax error at or near “123”
try{Class.forName("org.postgresql.Driver");con=DriverManager.getConnection"jdbc:postgresql://10.1.1.14:5432/teste",vari_1,vari_2);stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);if(resul.next()){stmt.executeUpdate("CREATE USER "+usuario+" NOCREATEDB NOCREATEUSER NOINHERIT ENCRYPTED PASSWORD '"+senha+"' ");JOptionPane.showMessageDialog(null,"usuario cadastrado !","Operador",JOptionPane.INFORMATION_MESSAGE);}else{JOptionPane.showMessageDialog(null,"CNPF Digitado não Encontrado !","Operador",JOptionPane.ERROR_MESSAGE);return;}con.close();stmt.close();}catch(Exceptionee){JOptionPane.showMessageDialog(null,"Erro !\n"+ee.getMessage(),"Operador",JOptionPane.ERROR_MESSAGE);}
M
marcoscorso
no postgres, tive que fazer o seguinte para cadastrar o usuario com 123