1~

Minter Coder's Blog

17-Jsp Veritabanı İşlemleri CRUD (Update)

2021-01-26

Arkadaşlar merhabalar , updating işlemine geçiyoruz bu kısım biraz meşakatli yani yorucu :) evet geçelim

Öncelikle önceki 2 ders var listenin ve insert onları okuyup buraya gelmeniz gerekiyor aksi takdirde bir şey anlamayacaksınız önceki derslerin devamındayız.

UserDao.java'ya 2 method ekledik ;

User getUserById(int id);
boolean updateUser(User user);

burada getUserById ile bir kullanıcıyı id'sine göre buluyoruz ve updateUser ile de post edeceğimiz formun değerlerini user oluşturarak buradaki updateUser methoduna veriyoruz.

UserDaoImpl.java'ya da önceki UserDao interfacesinde eklediğimiz 2 methodu override yazıp içerisini doldurduk.Kodları kitap okur gibi okuyun.Ne anlatıyor ?

private final String GET_USERBYID = "Select * from user where id = ?";
private final String UPDATE_USER = "UPDATE user SET username = ? , password = ? where id = ?";
 
@Override
public User getUserById(int id) {
Connection connect = null;
PreparedStatement pStatement = null;
ResultSet resultSet = null;
User user = null;
String username = "", password = "";
try {
connect = Connectivity.getConnection();
pStatement = connect.prepareStatement(GET_USERBYID);
pStatement.setInt(1, id);
resultSet = pStatement.executeQuery();
while (resultSet.next()) {
username = resultSet.getString("username");
password = resultSet.getString("password");
}
user = new User(id, username, password);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (!pStatement.isClosed())
pStatement.close();
if (!connect.isClosed())
connect.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return user;
}
 
@Override
public boolean updateUser(User user) {
Connection connect = null;
PreparedStatement pStatement = null;
int result = 0;
try {
connect = Connectivity.getConnection();
pStatement = connect.prepareStatement(UPDATE_USER);
pStatement.setString(1, user.getUsername());
pStatement.setString(2, user.getPassword());
pStatement.setInt(3, user.getId());
result = pStatement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (!pStatement.isClosed())
pStatement.close();
if (!connect.isClosed())
connect.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result > 0;
}

VE son olarak da updateUser.jsp adlı bir dosya oluşturdum şimdi bunun içeriğini atıyorum;

<%@page import="com.junior.entity.User"%>
<%@page import="com.junior.dao.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
int id = Integer.parseInt(request.getParameter("id"));
UserDao userDao = new UserDaoImpl();
User user = userDao.getUserById(id);
String updatePost = request.getParameter("update");
String result = "";
if(updatePost != null){
User newUser = new User(id,request.getParameter("username"),request.getParameter("password"));
boolean answer = userDao.updateUser(newUser);
user = userDao.getUserById(id);
if(answer) result ="Updated";
}
%>
<%= result %>
<form action="updateUser.jsp" method="post">
Username : <input type="text" name="username" value="<%= user.getUsername() %>" />
Password : <input type="text" name="password" value="<%= user.getPassword() %>"/>
<input type="hidden" name="id" value="<%= user.getId() %>" />
<input type="submit" value="Update" name="update" />
</form>
<a href="index.jsp">Home Page</a>
</body>
</html>

 

 

Güncelliyoruz

Son hali

Arkadaşlar jspde son dersimiz olan deleting kısmına geçiyoruz...