public class UserDAOImpl implements UserDAO {
private Connection connection;
public UserDAOImpl(Connection connection) {
this.connection = connection;
}
@Override
public void insert(User user) {
String sql = "INSERT INTO users (id, name, email) VALUES (?, ?, ?)";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, user.getId());
statement.setString(2, user.getName());
statement.setString(3, user.getEmail());
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public User findById(int id) {
String sql = "SELECT * FROM users WHERE id = ?";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, id);
ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
int userId = resultSet.getInt("id");
String name = resultSet.getString("name");
String email = resultSet.getString("email");
return new User(userId, name, email);
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
@Override
public void update(User user) {
String sql = "UPDATE users SET name = ?, email = ? WHERE id = ?";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setString(1, user.getName());
statement.setString(2, user.getEmail());
statement.setInt(3, user.getId());
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void delete(User user) {
String sql = "DELETE FROM users WHERE id = ?";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, user.getId());
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}