Skip to content

kolya-t/TCDBServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

248 Commits
 
 
 
 
 
 
 
 

Repository files navigation

TCDBServer: Simple user database management system

Простейшая система управления базой данных пользователей.

Используемые технологии:

  • Java 8
  • СУБД MySQL
  • MySQL Connector/J 6.0.5
  • Hibernate 5.2.5
  • Servlet API 3.1
  • JSP / JSTL 1.2

Запуск приложения

  1. (Не обязательно) Выбрать тип используемой технологии доступа к базе данных - JDBC или Hibernate (по-умолчанию используется Hibernate)
    • Hibernate: приступить к пункту 2
  • JDBC: в конфигурационном файле TCDBServer\src\main\db.properties изменить параметр DAOFactoryImplementationClassName на database.dao.factory.JdbcDaoFactory
  1. Указать путь к базе пользователей, имя и пароль в параметре ConnectionURL файла конфигурации TCDBServer\src\main\db.properties (при использовании JDBC) или параметрах hibernate.connection.url, hibernate.connection.username, hibernate.connection.password файла TCDBServer\src\main\hibernate.cfg.xml (при использовании hibernate)
  2. Выполнить цель mvn install. В итоге будет собран war архив
  3. Развернуть архив на сервере. Я использовал Tomcat 8.5

Подробнее о запуске приложения на сервере Tomcat 8.5 из IntelliJIDEA

  • Устанавливаем Tomcat с официального сайта, распаковываем, прописываем необходимые переменные среды, указываем путь к Tomcat в IntelliJIDEA
  • Заходим в раздел Run/Debug Configuration > Add New Configuration > Tomcat Server > Local: Создание Tomcat конфигурации запуска
  • Переходим в раздел Deployment > Add > Artifact > tcdbserver:war exploded > OK > OK Artifact deployment
  • Запускаем как обычный проект Shift + F10
  • Переходим в браузере по адресу http://localhost:8080/

Описание основных возможностей

  • Регистрация. Зарегистрироваться можно только с правами пользователя. Создать профиль администратора можно из панели управления администратора либо напрямую добавить пользователя с полем role = admin SQL-запросом
  • Авторизация. После регистрации можно войти в систему под своим логином и паролем
  • Система прав пользователей. Незарегистрированные пользователи, как и обычные пользователи не имеют доступа к панели администратора /admin/*
  • Администратор может:
    • Просматривать список всех пользователей и их данные по адресу /admin либо кликнув на навигационной панели соответствующиё пункт меню
    • Создавать новых пользователей (в том числе и новых администраторов) по адресу /admin/add
    • Изменять данные существующих пользователей по адресу /admin/edit?id={id}, где {id} это id изменяемого пользователя
    • Удалять пользователей - /admin/delete?id={id}, {id} - id удаляемого пользователя

Пример таблицы пользователей

id login password email 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

About

Simple database management system on tomcat server

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages