{"id":19795281,"url":"https://github.com/spliterash/sqldatabaselib","last_synced_at":"2026-05-11T09:02:49.843Z","repository":{"id":129949701,"uuid":"412621676","full_name":"Spliterash/SQLDatabaseLib","owner":"Spliterash","description":"Simple library to connect and make query in SQL databases","archived":false,"fork":false,"pushed_at":"2023-07-16T19:52:23.000Z","size":131,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-11T04:49:11.622Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Spliterash.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-01T21:28:56.000Z","updated_at":"2021-12-12T17:09:34.000Z","dependencies_parsed_at":"2025-01-11T04:48:40.979Z","dependency_job_id":"24892529-b28e-4f68-ace0-2002bab8344a","html_url":"https://github.com/Spliterash/SQLDatabaseLib","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spliterash%2FSQLDatabaseLib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spliterash%2FSQLDatabaseLib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spliterash%2FSQLDatabaseLib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spliterash%2FSQLDatabaseLib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Spliterash","download_url":"https://codeload.github.com/Spliterash/SQLDatabaseLib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241137271,"owners_count":19916092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T07:15:56.433Z","updated_at":"2026-05-11T09:02:44.754Z","avatar_url":"https://github.com/Spliterash.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SQL Database\n\nНебольшая библиотека призванная упростить работу с базами данных.\n\nС помощью этой библиотеки, вы сможете делать запросы к базе данных максимально просто.\n\nНапример:\n\n* Запросы с параметрами по номеру\n\n    ```java\n    database.update(\"INSERT INTO test_table (id, column1, column2, column3) values (?,?,?,?)\",\"id\",\"value1\",\"value2\",\"value3\");\n    ```\n\n* Запросы с named параметрами\n\n    ```java\n    Map\u003cString,Object\u003e paramMap = new HashMap\u003c\u003e(4);\n    \n    paramMap.put(\"userId\", userId);\n    paramMap.put(\"age\", age);\n    \n    database.query(\"SELECT * FROM table where id=:userId and age=:age\")\n    ```\n* Запросы с named параметрами из объекта\n\n    ```java\n    @Getter\n    @Setter\n    public class UserDto {\n        private String id;\n        private String name;\n        private int age;\n    }\n    ```\n  \n  ```java\n  UserDto dto = new UserDto();\n  \n  dto.setName(\"userName\");\n  dto.setAge(16);\n  \n  database.queryDto(\"SELECT * FROM table where id=:id and age=:age\", dto)\n  ```\n\n* Сессия для запросов, позволяет совершить несколько запросов, используя 1 Connection.\n\n  Очень сильно оптимизирует процесс, когда нужно сделать несколько запросов, например (я знаю что это можно сделать 1 запросом, тут как пример)\n    ```java\n    try (DatabaseSession session = database.createSession()) {\n        QueryResult result = session.query(\"SELECT id, age, name from users where age \u003e= ?\", 18);\n\n        List\u003cString\u003e userIds = result\n                .stream()\n                .map(row -\u003e row.getString(\"id\"))\n                .collect(Collectors.toList());\n\n        session.update(\"UPDATE users set canDrink=true where id in (?)\", userIds);\n    }\n   ```\n* и даже без проблем делать запросы с массивом параметров, это работает как в named запросах, так и обычных, например:\n\n  ```java\n  List\u003cString\u003e userIds = Arrays.asList(\"id1\",\"id2\",\"id3\")\n  \n  database.query(\"SELECT * FROM users where id in (?)\", userIds);\n    ```\n  Данный запрос превратится сначала в\n  ```sql\n  SELECT * FROM users where id in (?,?,?)\n    ```\n  а затем через средства JDBC установит необходимые поля\n\nЧтобы начать пользоваться этой \"замечательной\" либой, нужно сделать всего 2 вещи\n\n1) Подключить мой nexus\n    * maven\n    ```xml\n    \u003crepository\u003e\n        \u003cid\u003espliterash-group\u003c/id\u003e\n        \u003curl\u003ehttp://nexus.spliterash.ru/repository/group/\u003c/url\u003e\n    \u003c/repository\u003e\n    ```\n    * gradle\n   ```groovy\n    maven {\n        name = \"spliterash-group\"\n        url = uri(\"https://nexus.spliterash.ru/repository/group/\")\n    }\n   ```\n2) Добавить нужную зависимость\n   * SQLite стандартный\n    ```xml\n    \u003cdependency\u003e\n      \u003cgroupId\u003eru.spliterash\u003c/groupId\u003e\n      \u003cartifactId\u003esql-database-sqlite-simple\u003c/artifactId\u003e\n      \u003cversion\u003e1.0.0-SNAPSHOT\u003c/version\u003e\n    \u003c/dependency\u003e\n    ```\n    ```java\n    Database base = new SimpleSQLiteDatabase(new File(\"base.sqlite\"));\n    ```\n    * SQLite через HikariCP\n    ```xml\n    \u003cdependency\u003e\n      \u003cgroupId\u003eru.spliterash\u003c/groupId\u003e\n      \u003cartifactId\u003esql-database-sqlite-hikaricp\u003c/artifactId\u003e\n      \u003cversion\u003e1.0.0-SNAPSHOT\u003c/version\u003e\n    \u003c/dependency\u003e\n    ```\n    ```java\n    Database base = new HikariCPSQLiteDatabase(new File(\"base.sqlite\"));\n    ```\n    \n    \u003chr\u003e\n\n   * MySQL стандартный\n    ```xml\n    \u003cdependency\u003e\n      \u003cgroupId\u003eru.spliterash\u003c/groupId\u003e\n      \u003cartifactId\u003esql-database-mysql-simple\u003c/artifactId\u003e\n      \u003cversion\u003e1.0.0-SNAPSHOT\u003c/version\u003e\n    \u003c/dependency\u003e\n    ```\n    ```java\n    Database base = new SimpleMySQLDatabase(\"localhost\", 3306, \"login\", \"password\");\n    ```\n    * MySQL через HikariCP\n    ```xml\n    \u003cdependency\u003e\n      \u003cgroupId\u003eru.spliterash\u003c/groupId\u003e\n      \u003cartifactId\u003esql-database-mysql-hikaricp\u003c/artifactId\u003e\n      \u003cversion\u003e1.0.0-SNAPSHOT\u003c/version\u003e\n    \u003c/dependency\u003e\n    ```\n    ```java\n    Database base = new HikariMySQLDatabase(\"localhost\", 3306, \"login\", \"password\");\n    ```\n\n3) Инициализировать нужный вам тип базы данных\n    * SimpleSQLiteDatabase(File file) - SQLite база данных, подключение к которой реализованно стандартными средствами\n      java\n    * HikariCPSQLiteDatabase(File file) - SQLite база данных, подключение к которой реализованно через HikariCP\n4) Пользоваться базой данных, желательно привести её к Database типу, чтобы не привязываться к реализации\n5) Обязательно вызывать метод destroy() при завершении работы приложения","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspliterash%2Fsqldatabaselib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspliterash%2Fsqldatabaselib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspliterash%2Fsqldatabaselib/lists"}