Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yeunikey/wiringapi
Простой API для работы с базой данных MySQL с использованием HikariCP
https://github.com/yeunikey/wiringapi
Last synced: 19 days ago
JSON representation
Простой API для работы с базой данных MySQL с использованием HikariCP
- Host: GitHub
- URL: https://github.com/yeunikey/wiringapi
- Owner: yeunikey
- Created: 2023-07-16T23:46:39.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-07-17T23:31:36.000Z (over 1 year ago)
- Last Synced: 2024-07-24T02:24:03.093Z (6 months ago)
- Language: Java
- Homepage: https://vk.com/xflyiwnl
- Size: 20.5 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Привет, я WiringAPI
Простой API для работы с базой данных MySQL с использованием HikariCP
Установка
Для работы с Maven:
```jitpack.io
https://jitpack.iocom.github.xflyiwnl
WiringAPI
v1.1```
Начало работы
Перед начало работы с API, вам необходимо подключить его. Подключение к серверу происходит вот так:
```
WiringAPI api = new WiringAPI("localhost", "root", "1234");
```
или так
```
WiringAPI api = WiringAPI(String driver, String host, int port, String username, String password, Map properties);
```
Здесь предоставлены все параметры для подключения к серверу. В `Map properties` вы сможете добавить нужные настройки для конфига.Примеры
Работа с базой данных
В нашем API база данных создаётся вот так:
```
api.createDatabase("database") // создаём базу данных с именем database
.execute(); // выполняем запрос
```
Также, вы сможете проверить, существует ли база данных с названием `database`:
```
api.existsDatabase("database"); // вернёт вам true или false, если такой базы нет
```
Получение базы данных:
```
api.getDatabase("database"); // получим класс Database
```
и удаление:
```
api.getDatabase("database").drop();
```Работа с таблицами
После создание базы данных, вы сможете создать таблицу данных в базе данных:
```
api.getDatabase("database") // получаем базу данных database
.createTable("mytable") // создаём таблицу mytable
.execute(); // выполняем запрос
```
Также, при создании мы сможем добавить в таблицу колонны:
```
.column(new Column("name", ColumnType.VARCHAR))
```
На примере этого создадим простую таблицу:
```
api.getDatabase("database")
.createTable("mytable")
.column(new Column("name", ColumnType.VARCHAR).primaryKey().notNull())
.column(new Column("age", ColumnType.INT).notNull())
.column(new Column("info", ColumnType.VARCHAR).notNull())
.execute();
```
Создаст таблицу под названием `mytable` и с колоннами `name`, `age`, `info`. Колонна `name` является ключем и не может быть пустым, как и все колонны. Ключ нужен, чтобы получать нужные нам строки в таблице при работе с `.delete()`, `.insert()`, `.select()`.Аналогично с базами данных у таблицы тоже есть методы для проверки, получения таблицы.
Существует ли таблица в базе данных `database`:
```
api.getDatabase("database").existsTable("mytable");
```Получить таблицу в базе данных `database`:
```
api.getDatabase("database").getTable("mytable");
```
И удаление таблицы
```
api.getDatabase("database").getTable("mytable").drop();
```
Ошиблись в названии таблицы при создании?
```
api.getDatabase("database").getTable("mytable").renameTable("othertable");
```Работа с колоннами
Создать колонну вы сможете вот так:
```
api.getDatabase("database").getTable("mytable")
.createColumn(new Column("test", ColumnType.VARCHAR)); // создаёте ещё одну колонну под названием test и типом VARCHAR(255)
```
Получить все существующие колонны:
```
api.getDatabase("database").getTable("mytable").getColumns(); // вернёт вам массив классов с колоннами
```
И получить колонну по названию:
```
api.getDatabase("database").getTable("mytable").getColumn("test"); // вернёт вам класс колонны
```
Удаление колонны::
```
api.getDatabase("database").getTable("mytable").dropColumn("test");
```
Проверка колонны:
```
api.getDatabase("database").getTable("mytable").existsColumn("test");
```Работа с insert
Создать запрос на внесение изменение в таблице можно так:
```
api.insert("database") // база данных с которым работаем
.table("mytable") // таблица
.column("name", "Yerassyl")
.column("age", 17)
.column("info", "Разработчик")
.execute(); // выполнение запроса
```Работа с delete
Создать запрос на удаление строки в таблице:
```
api.delete("database") // база данных с которым работаем
.table("mytable") // таблица
.key("name") // по какому ключу мы сравниваем
.value("Yerassyl") // значение этого ключа, чуть выше мы создали колонну name = Yerassyl
.execute(); // создание запроса
```
Другой способ:
```
api.delete("database") // база данных с которым работаем
.table("mytable") // таблица
.value("Yerassyl") // значение этого ключа, чуть выше мы создали колонну name = Yerassyl
.execute(); // создание запроса
```
Теперь ключ опеределяется автоматический, потому что при создании таблицы мы указали, что колонна `name` является ключем
```
.column(new Column("name", ColumnType.VARCHAR).primaryKey().notNull())
```Работа с select
Создать запрос на получение строки из таблицы:
```
WiringResult result = api.select("database") // база данных с которым работаем
.table("mytable") // таблица
.key("name") // по какому ключу мы сравниваем
.value("Yerassyl") // значение этого ключа, чуть выше мы создали колонну name = Yerassyl
.execute(); // создание запроса
```
Другой способ без `key`:
```
WiringResult result = api.select("database") // база данных с которым работаем
.table("mytable") // таблица
.value("Yerassyl") // значение этого ключа, чуть выше мы создали колонну name = Yerassyl
.execute(); // создание запроса
```
Теперь ключ опеределяется автоматический, потому что при создании таблицы мы указали, что колонна `name` является ключемКласс `WiringResult` является упрощённым аналогом `ResultSet`.
С его помощью вы сможете получить результат `select()` запроса.
```
result.getResult(); // вернёт вам Map result. Класс колонны и что там записано. Например, класс колонны name и String Yerassyl.
```
Отформатированный `HashMap`:
```
result.formatted(); // вернёт вам Map result. Название колонны и что там записано. Например, название колонны name и String Yerassyl.
```
На этом примере мы сможем получить то, что записано в других колоннах:
```
result.get("name"); // вернёт вам Yerassyl
result.get("age"); // вернёт вам 17
result.get("info"); // вернёт вам Разработчик
```
Не забывайте, чтобы ответ к вам поступит в виде `Object`. Вам необходимо переделать его в `int`, `String` или в другой тип. Зависит от того, что там записано.// todo selectAll()