Только учусь программировать на java, да и вообще программировать. Перехожу к оконным приложениям. Хочу сделать программу, в которой в таблице, буду указаны люди. Каждый человек будет внутри иметь рейтинг, который складывается из баллов, полученных за некоторые достижения. Все эти данные, конечно, должны браться из БД и вноситься в неё при изменении. В принципе разобрался про подключение MySQL баз к IntelliJIDEA, но столкнулся с проблемой - где хранить саму базу данных MySQL? На хостингах типа hostinger.ru БД создавать можно, но нельзя к ним подключаться извне. Держать постоянно включённым свой локальный компьютер и БД не могу.
Собственно, прошу подсказать, рассказать профану и ньюфагу, как решить эту проблему. Главное - бесплатно.
если тебе круглосуточно надо доступ, то хранить только на хостинге. сейчас хостинги бывают и за 50 и за 100р в мес. не накладно.
если тебе нужна бд локально для приложения, без доступа в сеть, то используй sqlite
Я, как в вопросе уже писал, совсем новичок ещё, много чего не понимаю, поэтому и такой вопрос:
Программа должна иметь функционал, позволяющий авторизованным в ней администраторам\модераторам изменять количество баллов у людей на своих локальных компьютерах с автоматической синхронизацией с изменениями, внесёнными другими "редакторами". Для этого нужно арендовывать хостинг?
Может вам проще будет использовать H2 database в своем приложении!? In process embedded база в виде библиотеки и можете хранить данные в файловой системе там же где работает ваше java приложение
Зачем вам синхронизация файлами? Мне кажется вы не очень точно описали задачу.
Вы хотите многопользовательскую распределенную систему из множества оконных приложений swing или SWT? Хотите чтобы сервер БД был выставлен в сеть и был доступ со множества приложений?
Есть вариант запустить H2 как обычную базу данных с подключением по TCP с помощью jdbc драйвера.
Есть возможность внедрить эту же БД в процесс вашего приложения и только этот экземпляр приложения будет иметь доступ к этой базе. В этом же варианте можно сделать прослойку из soap/rest сервисов или с помощью любого другого RPC между БД и интерфейсом приложения
Я же говорил, я новичок, пока учусь, возможно и не так описал, извините :) Просто хочу, чтобы у людей с других компьютеров была возможность изменять данные прямо в программе и эти изменения происходили в БД и на других компьютерах, где будет открыта программа. Вот примерно так
Возможно просто вам подойдет веб приложение, где пользователи будут подключаться к серверу и совместно редактировать данные. То как вы хотите решить задачу создаст вам больше проблем, Стандартный рецепт в этом случае - многозвенная архитектура с централизованным сервером БД, сервером приложения и веб сервером. Поскольку скорее всего у вас объемы данных и потребности в масштабировании минимальны, то я бы вам рекомендовал совместить все эти три компонента в одном java процессе (H2 база, jetty как веб сервер и ваша функциональность). При правильной реализации потом будет несложно разнести эти компоненты в разные процессы и даже разные сетевые узлы. Поскольку проект учебный, чтобы не запутаться в собственных трусах, посмотрите на нечто генерирующее за вас скелет CRUD приложения sculptorgenerator.org или projects.spring.io/spring-roo . Там люди уже интегрировали множество технологий и кодогенератор сделает за вас почти всю работу. Дальше можете разобраться с сгенерированным проектом и либо продолжать изучать и использовать генератор приложений, либо править уже тот код и конфигурацию что получились и забыть про генератор