Код: Выделить всё
package com.example.hardware_inventory.model;
public class User {
private Long userId;
private String username;
private String passwordHash;
private String role;
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public String getPasswordHash() {
return passwordHash;
}
public void setPasswordHash(String passwordHash) {
this.passwordHash = passwordHash;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
// getters and setters
}
Код: Выделить всё
package com.example.hardware_inventory.repository;
import com.example.hardware_inventory.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import org.springframework.dao.EmptyResultDataAccessException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Optional;
@Repository
public class UserRepository {
@Autowired
private JdbcTemplate jdbcTemplate;
private static final class UserRowMapper implements RowMapper {
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setUserId(rs.getLong("user_id"));
user.setUsername(rs.getString("username"));
user.setPasswordHash(rs.getString("password_hash"));
user.setRole(rs.getString("role"));
return user;
}
}
public List findAll() {
String sql = "SELECT * FROM users";
return jdbcTemplate.query(sql, new UserRowMapper());
}
public Optional findById(Long id) {
String sql = "SELECT * FROM users WHERE user_id = ?";
try {
return Optional.ofNullable(jdbcTemplate.queryForObject(sql, new Object[]{id}, new UserRowMapper()));
} catch (EmptyResultDataAccessException e) {
return Optional.empty();
}
}
public Optional findByUsername(String username) {
String sql = "SELECT * FROM users WHERE username = ?";
try {
return Optional.ofNullable(jdbcTemplate.queryForObject(sql, new Object[]{username}, new UserRowMapper()));
} catch (EmptyResultDataAccessException e) {
return Optional.empty();
}
}
public void save(User user) {
String sql = "INSERT INTO users (username, password_hash, role) VALUES (?, ?, ?)";
jdbcTemplate.update(sql, user.getUsername(), user.getPasswordHash(), user.getRole());
}
public void update(User user) {
String sql = "UPDATE users SET username = ?, password_hash = ?, role = ? WHERE user_id = ?";
jdbcTemplate.update(sql, user.getUsername(), user.getPasswordHash(), user.getRole(), user.getUserId());
}
public void deleteById(Long id) {
String sql = "DELETE FROM users WHERE user_id = ?";
jdbcTemplate.update(sql, id);
}
public void resetPassword(Long id, String newPassword) {
String sql = "UPDATE users SET password_hash = ? WHERE user_id = ?";
jdbcTemplate.update(sql, newPassword, id);
}
public void blockUser(Long id) {
String sql = "UPDATE users SET role = 'blocked' WHERE user_id = ?";
jdbcTemplate.update(sql, id);
}
}
Код: Выделить всё
package com.example.hardware_inventory.service;
import com.example.hardware_inventory.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public void resetPassword(Long id, String newPassword) {
userRepository.resetPassword(id, newPassword);
}
public void blockUser(Long id) {
userRepository.blockUser(id);
}
}
На веб-странице добавления пользователя мне уже нужен список пользователей. в таблице вместе с возможностью администратора добавить пользователя, сбросить пароль и заблокировать пользователей
это мой HTML-код для страницы add_new_user
Код: Выделить всё
Add New User
Add New User
User
Admin
Add User
All Users
User ID
Username
Role
Actions
Код: Выделить всё
document.addEventListener('DOMContentLoaded', function() {
const form = document.getElementById('add-user-form');
const usersTable = document.getElementById('users-table').getElementsByTagName('tbody')[0];
// Fetch users and display them
fetch('/api/users')
.then(response => response.json())
.then(data => {
data.forEach(user => {
addUserRow(user);
});
});
// Handle form submission
form.addEventListener('submit', function(event) {
event.preventDefault();
const newUsername = document.getElementById('new-username').value;
const newPassword = document.getElementById('new-password').value;
const role = document.getElementById('role').value;
fetch('/api/users', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
username: newUsername,
password: newPassword,
role: role
})
})
.then(response => response.json())
.then(user => {
addUserRow(user);
form.reset();
});
});
function addUserRow(user) {
const row = usersTable.insertRow();
const cellId = row.insertCell(0);
const cellUsername = row.insertCell(1);
const cellRole = row.insertCell(2);
const cellActions = row.insertCell(3);
cellId.textContent = user.userId;
cellUsername.textContent = user.username;
cellRole.textContent = user.role;
cellActions.innerHTML = `
Delete
`;
}
});
Моя база данных уже подключена к моему приложению. Я просто не могу правильно получить данные из моей базы данных
Подробнее здесь: https://stackoverflow.com/questions/786 ... a-html-tab