Есть DoPost метод сервлета
@WebServlet(name = "login")
public class login extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
PrintWriter out = response.getWriter();
Account acc = new Account(request.getParameter("name"),request.getParameter("password"));
out.print("login-name: " + acc.getName() + "\nPassword: " + acc.getPassword()
+ "\nLogin-hash: " + acc.getNameHash() + "\nPass-hash: " + acc.getPassHash());
acc.setData(acc);
}
Выполняет все без ошибок, но не происходит добавление записи в базу данных.
public class Account {
private int id;
private String name;
private String password;
private String nameHash;
private String passHash;
private static final String url = "jdbc:postgresql://127.0.0.1:5432/siberteam";
private static final String user = "postgres";
private static final String pass = "213202";
private static Connection con;
public Account(String name, String password){
this.id = new Random().nextInt(100000);
this.setName(name);
this.setPassword(password);
try{
this.setNameHash(md5Hash(name));
this.setPassHash(md5Hash(password));
} catch (Exception e) {
System.out.println(e);
}
}
public void setData(Account acc) {
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
String query = "INSERT INTO siberteam.public.account"
+ "(id,login,password,login_hash,password_hash) VALUES"
+ "(?,?,?,?,?)";
con = DriverManager.getConnection(url, user, pass);
PreparedStatement preparedStatement = con.prepareStatement(query);
preparedStatement.setInt(1, acc.id);
preparedStatement.setString(2, acc.name);
preparedStatement.setString(3, acc.password);
preparedStatement.setString(4, acc.nameHash);
preparedStatement.setString(5, acc.passHash);
preparedStatement.executeUpdate();
logEvent(preparedStatement.toString());
} catch (SQLException sqlEx) {
sqlEx.printStackTrace();
} finally {
try { con.close(); } catch(SQLException se) { /*can't do anything */ }
}
}
То что код работает, проверял в другой программе. БД - postgreSQL. Опыта использования как JSP, так и БД, почти нулевые, поэтому буду рад, если будет подробная критика.
Для того чтобы подключиться к БД в WEB приложении, нужно использовать PGSimpleDataSource. Ниже пример подключения к postgresql.
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
PGSimpleDataSource source = new PGSimpleDataSource() ;
source.setServerName("localhost");
source.setDatabaseName("company");
source.setUser(user);
source.setPassword(pass);
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Объясните, пожалуйста, почему вот этот код работает: выводит в консоль table и tr
Имеются два класса, полностью одинаковые, но с одним отличием, первый класс не выдает результат, то есть ни ошибки ни результата нетВ логе...
как правильно парсить такой jsonнадо получить следующие данные и выводить в recycleview