Простейшая система управления базой данных пользователей.
Используемые технологии:
- Java 8
- СУБД MySQL
- MySQL Connector/J 6.0.5
- Hibernate 5.2.5
- Servlet API 3.1
- JSP / JSTL 1.2
- (Не обязательно) Выбрать тип используемой технологии доступа к базе данных - JDBC или Hibernate (по-умолчанию используется Hibernate)
- Hibernate: приступить к пункту 2
- JDBC: в конфигурационном файле
TCDBServer\src\main\db.propertiesизменить параметрDAOFactoryImplementationClassNameнаdatabase.dao.factory.JdbcDaoFactory
- Указать путь к базе пользователей, имя и пароль в параметре
ConnectionURLфайла конфигурацииTCDBServer\src\main\db.properties(при использовании JDBC) или параметрахhibernate.connection.url,hibernate.connection.username,hibernate.connection.passwordфайлаTCDBServer\src\main\hibernate.cfg.xml(при использовании hibernate) - Выполнить цель
mvn install. В итоге будет собран war архив - Развернуть архив на сервере. Я использовал Tomcat 8.5
- Устанавливаем Tomcat с официального сайта, распаковываем, прописываем необходимые переменные среды, указываем путь к Tomcat в IntelliJIDEA
- Заходим в раздел Run/Debug Configuration > Add New Configuration > Tomcat Server > Local:
- Переходим в раздел Deployment > Add > Artifact > tcdbserver:war exploded > OK > OK
- Запускаем как обычный проект
Shift + F10 - Переходим в браузере по адресу http://localhost:8080/
- Регистрация. Зарегистрироваться можно только с правами пользователя. Создать профиль администратора можно из панели управления администратора либо напрямую добавить пользователя с полем
role = adminSQL-запросом - Авторизация. После регистрации можно войти в систему под своим логином и паролем
- Система прав пользователей. Незарегистрированные пользователи, как и обычные пользователи не имеют доступа к панели администратора
/admin/* - Администратор может:
- Просматривать список всех пользователей и их данные по адресу
/adminлибо кликнув на навигационной панели соответствующиё пункт меню - Создавать новых пользователей (в том числе и новых администраторов) по адресу
/admin/add - Изменять данные существующих пользователей по адресу
/admin/edit?id={id}, где {id} это id изменяемого пользователя - Удалять пользователей -
/admin/delete?id={id}, {id} - id удаляемого пользователя
- Просматривать список всех пользователей и их данные по адресу
| id | login | password | role | |
|---|---|---|---|---|
| 1 | KanyeWest | passqwertypass | kanye@gmail.com | admin |
| 2 | 50cent | fJKngi7Gj | fiftyfifty@gmail.com | user |
Для использования других СУБД нужно выполнить несколько действий:
- Подключить зависимость необходимого коннектора СУБД
- Создать класс, реализацию UserDao, реализовав в нём все используемые методы:
public class MyDbUserDao implements UserDao {
@Override
...
}- Создать класс, наследник DaoFactory, переопределив в нём единственный метод так, чтобы он возвращал единственный экземпляр вашего Dao:
public class MyDbDaoFactory extends DaoFactory {
@Override
public UserDao getUserDao() {
if (userDao == null) {
userDao = new MyDbUserDao();
}
return userDao;
}
}- В файле
resources/db.propertiesуказать класс используемой реализации DaoFactory и в файлеhibernate.cfg.xml(db.properties- в зависимости от того, что будете использовать) указать настройки базы данных
- Просмотр списка всех пользователей
- Создание пользователей
- Редактирование пользователей
- Регистрация/авторизация
- Ограничение доступа к панели администратора
- Удаление пользователей по POST запросу (сейчас удаление по GET)
Реализовано в SpringWebApp (но не реализовано здесь):
- Переход на Spring Framework
- Thymeleaf вместо JSP

