Возникли проблемы с отображением пользовательских записей из таблицы базы данных в таблицу HTML с помощью Java-приложениJAVA

Программисты JAVA общаются здесь
Anonymous
Возникли проблемы с отображением пользовательских записей из таблицы базы данных в таблицу HTML с помощью Java-приложени

Сообщение Anonymous »

это мой класс сущности пользователя

Код: Выделить всё

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











Это JavaScript, который я использовал

Код: Выделить всё

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
`;
}
});

Мой HTML не заполняется, и я борюсь с этим
Моя база данных уже подключена к моему приложению. Я просто не могу правильно получить данные из моей базы данных

Подробнее здесь: https://stackoverflow.com/questions/786 ... a-html-tab

Вернуться в «JAVA»