{"id":19137870,"url":"https://github.com/isaquepinheiro/cqlbrasil","last_synced_at":"2026-04-11T17:06:46.138Z","repository":{"id":152918468,"uuid":"621317429","full_name":"isaquepinheiro/cqlbrasil","owner":"isaquepinheiro","description":"CQLBr Framework for Dart/Flutter (Isaque Pinheiro)","archived":false,"fork":false,"pushed_at":"2023-04-13T19:47:45.000Z","size":176,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-03T13:51:53.303Z","etag":null,"topics":["cassandra","criteria","dart","database","db2","firebase","firebird","flutter","framework","mongodb","mysql","sql","sqlite"],"latest_commit_sha":null,"homepage":"https://www.isaquepinheiro.com.br","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isaquepinheiro.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":"2023-03-30T12:26:31.000Z","updated_at":"2023-04-13T19:31:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"042e8162-4dc3-40f3-a6b0-ab17f22b7be9","html_url":"https://github.com/isaquepinheiro/cqlbrasil","commit_stats":null,"previous_names":["isaquepinheiro/cqlbrasil"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaquepinheiro%2Fcqlbrasil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaquepinheiro%2Fcqlbrasil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaquepinheiro%2Fcqlbrasil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaquepinheiro%2Fcqlbrasil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isaquepinheiro","download_url":"https://codeload.github.com/isaquepinheiro/cqlbrasil/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240217048,"owners_count":19766696,"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":["cassandra","criteria","dart","database","db2","firebase","firebird","flutter","framework","mongodb","mysql","sql","sqlite"],"created_at":"2024-11-09T06:40:51.259Z","updated_at":"2026-04-11T17:06:46.095Z","avatar_url":"https://github.com/isaquepinheiro.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Criteria Query Language Brasil (Dart/Flutter)\n\nCQLBr é um framework opensource que provê escritas gerando o script SQL, através de uma interface, permitindo mapear de forma orientada a objeto, toda sintaxe de comandos SQL (SELECT, INSERT, UPDATE e DELETE), para banco de dados relacional.\n\nDurante o desenvolvimento de software, é evidente a preocupação em que se tem em aumentar a produtividade e manter a compatibilidade entre os possíveis bancos que um sistema pode usar. No que se refere a sintaxe de banco de dados, temos em alguns casos, incompatibilidades entre comandos SQL, exigindo assim, a necessidade de um maior controle na escrita de cada banco, e foi para ajudar nesse ponto crítico que CQLBr nasceu, ele foi projetado para que a escrita de querys seja única, de forma funcional e orientada a objeto, possibilitando assim a mesma escrita feita pelo framework, gerar querys diferentes conforme o banco selecionado, o qual pode ser mudado de forma muito simples, bastando selecionar um dos modelos implementados no CQLBr Framework, sem ter que re-faturar diversas querys espalhadas pelas milhares de linhas de código.\n\n\u003cimg src=\"https://www.isaquepinheiro.com.br/projetos/cqlbr-framework-for-delphilazarus-65199.png\" width=\"1280\" height=\"500\"\u003e\n\n# :hammer: Recursos do Criteria Quary Language\n\n:heavy_check_mark: `Core`: ```Dependency on Packages```\n\n:heavy_check_mark: `Package 1`: ```Firebase Database``` (Result Query)\n\n:heavy_check_mark: `Package 2`: ```MySQL``` (Result String)\n\n:heavy_check_mark: `Package 3`: ```SQLite``` (Result String)\n\n:heavy_check_mark: `Package 3`: ```Firebase``` (Result String)\n\n:heavy_check_mark: `Package 3`: ```DB2``` (Result String)\n\n\n## CQLBr Interface\n\n```Dart\nabstract class ICQL {\n  ICQL and$(dynamic expression);\n  ICQL as$(String alias);\n  ICQLCriteriaCase case$(dynamic expression);\n  ICQL on$(dynamic expression);\n  ICQL or$(dynamic expression);\n  ICQL set$(String columnName, dynamic columnValue);\n  ICQL all$();\n  ICQL asc$();\n  ICQL clear$();\n  ICQL clearAll$();\n  ICQL column$([dynamic columnName = '', String tableName = '']);\n  ICQL delete$();\n  ICQL desc$();\n  ICQL distinct$();\n  ICQLCriteriaExpression expression$(dynamic term);\n  ICQL from$(dynamic tableName, [String alias = '']);\n  ICQL groupBy$(dynamic columnName);\n  ICQL having$(dynamic expression);\n  ICQL fullJoin$(String tableName, [String alias = '']);\n  ICQL leftJoin$(String tableName, [String alias = '']);\n  ICQL rightJoin$(String tableName, [String alias = '']);\n  ICQL innerJoin$(String tableName, [String alias = '']);\n  ICQL insert$();\n  ICQL into$(String tableName);\n  bool isEmpty$();\n  ICQL orderBy$(dynamic columnName);\n  ICQL select$([dynamic columnName = '']);\n  ICQL first$(int value);\n  ICQL skip$(int value);\n  ICQL limit$(int value);\n  ICQL offset$(int value);\n  ICQL update$(String tableName);\n  ICQL where$([dynamic expression = '']);\n  ICQL values$(String columnName, dynamic columnValue);\n  // Operations functions\n  ICQL equal$([dynamic value = '']);\n  ICQL notEqual$(dynamic value);\n  ICQL greaterThan$(dynamic value);\n  ICQL greaterEqThan$(dynamic value);\n  ICQL lessThan$(dynamic value);\n  ICQL lessEqThan$(dynamic value);\n  ICQL isNull$();\n  ICQL isNotNull$();\n  ICQL like$(String value);\n  ICQL likeLeft$(String value);\n  ICQL likeRight$(String value);\n  ICQL notLike$(String value);\n  ICQL notLikeLeft$(String value);\n  ICQL notLikeRight$(String value);\n  ICQL notLikeFull$(String value);\n  ICQL in$(dynamic value);\n  ICQL notIn$(dynamic value);\n  ICQL exists$(String value);\n  ICQL notExists$(String value);\n  ICQL count$();\n  ICQL lower$();\n  ICQL min$();\n  ICQL max$();\n  ICQL upper$();\n  ICQL substring$(int start, int length);\n  ICQL date$(String value);\n  ICQL day$(String value);\n  ICQL month$(String value);\n  ICQL year$(String value);\n  ICQL concat$(List\u003cString\u003e value);\n  ICQLFunctions asFun$();\n  T asResult\u003cT extends Object\u003e();\n}\n```\n## Use Firebase\n\n```dart\n  CQLBr cqlbr = CQLBr(select: CQLSelectFirestore(instance1));\n\n  cqlbr.select$()\n       .all$()\n       .from$('users')\n       .where$('username').equal$('Bob 1')\n       .and$('email').equal$('bob1@gmail.com')\n       .or$('sobrenome').equal$('Sobrenome Bob 1')\n       .orderBy$('username, sobrenome').desc$()\n  .asResult();\n```\n## Use MySQL\n\n```dart\n  CQLBr cqlbr = CQLBr(select: CQLSelectMySQL());\n\n  cqlbr.select$()\n       .all$()\n       .from$('users')\n       .where$('username').equal$('Bob 1')\n       .and$('email').equal$('bob1@gmail.com')\n       .or$('sobrenome').equal$('Sobrenome Bob 1')\n       .orderBy$('username, sobrenome').desc$()\n  .asResult();\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisaquepinheiro%2Fcqlbrasil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisaquepinheiro%2Fcqlbrasil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisaquepinheiro%2Fcqlbrasil/lists"}