{"id":20756561,"url":"https://github.com/tylersuehr7/sqlite-class-parser","last_synced_at":"2025-12-25T05:09:01.131Z","repository":{"id":130831667,"uuid":"68957408","full_name":"tylersuehr7/sqlite-class-parser","owner":"tylersuehr7","description":"A lightweight object-to-SQL statement parser.","archived":false,"fork":false,"pushed_at":"2016-10-26T23:41:54.000Z","size":381,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-18T04:32:06.632Z","etag":null,"topics":["java","java-libraries","parser","sql","sql-parser"],"latest_commit_sha":null,"homepage":"","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/tylersuehr7.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":"2016-09-22T19:58:56.000Z","updated_at":"2020-03-09T02:16:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"f0885658-32d6-488d-8b12-c35c052e1be2","html_url":"https://github.com/tylersuehr7/sqlite-class-parser","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/tylersuehr7%2Fsqlite-class-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylersuehr7%2Fsqlite-class-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylersuehr7%2Fsqlite-class-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylersuehr7%2Fsqlite-class-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tylersuehr7","download_url":"https://codeload.github.com/tylersuehr7/sqlite-class-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243064564,"owners_count":20230594,"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":["java","java-libraries","parser","sql","sql-parser"],"created_at":"2024-11-17T09:33:25.903Z","updated_at":"2025-12-25T05:09:00.992Z","avatar_url":"https://github.com/tylersuehr7.png","language":"Java","readme":"# SQLite Class Parser\n### Summary\nNo more need to write your own SQLite queries and statements! You can automatically \ncreate an SQLite query or statement simply by making a Java class. This parser will\nread the fields in a Java class and create SQLite queries or statements based off of\nit. \n\nYou can use annotations to denote constraints. *i.e.* FOREIGN KEY, NOT NULL, UNIQUE.\nAn annotation called IGNORE is included if you want a field that shouldn't be in a table.\n\nThere are also various options for the parser too; *i.e.* you can pluralize table names\nand capitalize column names.\n\n##### Full usage of SQLiteParser\n```java\n// Initialization\nSQLiteParser parser = SQLiteParser.getInstance();\n\n// Options\nparser.setTablePluralize(true);\nparser.setTableLowercase(true);\nparser.setFilter(true);\nparser.setColFirstUppercase(false);\n\n// Parsing\nString sqlTable = parser.parseTable(AnyKindOfObject.class);\n```\n\n### Example Code Simple\n#### Create Java Class\n```java\npublic class User {\n    private int id;\n    private String firstName;\n    private String lastName;\n    private String username;\n    \n    \n    public User() {}\n    \n    //...\n}\n```\n\n#### Using the SQLiteParser\n```java\npublic class Main {\n    public static void main(String[] args) {\n        // Get instance of SQLiteParser\n        final SQLiteParser parser = SQLiteParser.getInstance();\n        \n        // Get table creation statement for User class\n        String userTable = parser.parseTable(User.class);\n        \n        \n        // This will print out the following SQLite statement:\n        // CREATE TABLE [users] ([id] INTEGER PRIMARY KEY, [firstName] TEXT, [lastName] TEXT, [username] TEXT);\n        \n        System.out.println(userTable);\n    }\n}\n```\n\n### Example Code Advanced (Foreign Keys \u0026 Annotations)\n#### Create Java Classes\n```java\npublic class Address {\n    private int id;\n    private String streetName;\n    \n    \n    public Address() {}\n    \n    //...\n}\n\npublic class User {\n    private int id;\n    private String firstName;\n    \n    FOREIGNKEY(fkDataType = int.class)\n    private Address address;\n    \n    IGNORE\n    private String lastname;\n    \n    \n    public User() {}\n    \n    //...\n}\n```\n\n#### Using the SQLiteParser\n```java\npublic class Main {\n    public static void main(String[] args) {\n        // Get instance of SQLiteParser\n        final SQLiteParser parser = SQLiteParser.getInstance();\n        \n        // Create SQLite table creation statement for Address model\n        String addressTable = parser.parseTable(Address.class);\n        \n        // Create SQLite table creation statement for User model\n        String userTable = parser.parseTable(User.class);\n        \n        // This will print out the following SQLite statements:\n        // CREATE TABLE [addresses] ([id] INTEGER PRIMARY KEY, [streetName] TEXT);\n        // CREATE TABLE [users] ([id] INTEGER PRIMARY KEY, [firstName] TEXT, [addressId] INTEGER, FOREIGN KEY ([addressId]) REFERENCES [addresses]([id]));\n        \n        System.out.println(addressTable);\n        Syste.out.println(userTable);\n    }\n}\n```\n\n### Overview of SQLiteParser Design\n![alt text](https://github.com/tylersuehr7/sqlite-class-parser/blob/master/img_class_diagram.png \"SQLiteParser Class Diagram\")","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftylersuehr7%2Fsqlite-class-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftylersuehr7%2Fsqlite-class-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftylersuehr7%2Fsqlite-class-parser/lists"}