在我們的Java項目中,我們已經開始使用jooq來構建查詢,而不是普通的SQL字符串。該庫很棒,但我有一個問題(因爲我是jooq-newbie):是否可以使用jooq創建數據庫,但不包括項目包含的jooq映射/生成器?帶jooq的數據庫創建語句
回答
有很多,你可以用jOOQ做,而不依賴於它的代碼生成器。從手動入門指南中提到的一些例子:
http://www.jooq.org/doc/2.6/manual/getting-started/use-cases/jooq-as-a-standalone-sql-builder/
例如:
String sql = create.select(
fieldByName("BOOK","TITLE"),
fieldByName("AUTHOR","FIRST_NAME"),
fieldByName("AUTHOR","LAST_NAME"))
.from(tableByName("BOOK"))
.join(tableByName("AUTHOR"))
.on(fieldByName("BOOK", "AUTHOR_ID").equal("AUTHOR", "ID"))
.where(fieldByName("BOOK", "PUBLISHED_IN").equal(1948))
.getSQL();
它也即將使用jOOQ爲 「普通SQL」 的手冊的部分引用:
http://www.jooq.org/doc/2.6/manual/sql-building/plain-sql/
當然,您仍然可以使用代碼生成器來生成元信息你的模式。這並不意味着您必須在生成器上添加運行時依賴項,因爲生成器僅在編譯時使用
這聽起來很愚蠢,但是, 'fieldByName'的方法定義?我使用'jooq 3.0.1',我發現'fieldByName'實際上可以在低版本的'Factory'類中找到。但是當我切換到較低版本(2.6.4)時,我不能使用'DSL'類。 – Bnrdo
@onepotato:以下是2.x - > 3.x遷移指南:http://www.jooq.org/doc/3.0/manual/reference/migrating-to-3.0。該方法就在那裏,在['DSL.fieldByName()'](http://www.jooq.org/javadoc/latest/org/jooq/impl/DSL.html#fieldByName(java.lang.String .. 。)) –
- 1. 在Jooq中創建VIEW語句
- 2. JOOQ排序依據與Case語句
- 3. 使用JOOQ創建一個數據庫進行測試
- 4. 創建數據集如果語句
- 5. 創建用於在SQLce數據庫中創建表的SQL語句
- 6. jooq-3.2.0和db2數據庫
- 7. 創建數據庫,並使用語句在一個腳本
- 8. 創建一個數據庫/從Java執行一堆mysql語句
- 9. 在Java中使用mySQL數據庫創建「INSERT」語句
- 10. 數據庫創建語句不製作第二個表?
- 11. 如何使用EXEC()語句創建SQL數據庫
- 12. 如何創建jooq
- 13. 如何創建和使用MySQL語句庫中的MySQL語句
- 14. 如何將帶有Case語句的Sql orderby子句轉換爲JOOQ?
- 15. 準備語句數據庫
- 16. 數據庫INSERT語句
- 17. SYBASE數據庫DDL語句
- 18. SQL語句從數據庫
- 19. 語法錯誤,創建數據庫
- 20. 創建數據庫和表語法
- 21. 使用帶條件語句的數據庫
- 22. 創建switch語句
- 23. REPLACE語句創建
- 24. 創建if語句
- 25. 動態創建JOOQ查詢
- 26. jOOQ - 爲字段創建值
- 27. mysqldump未創建創建數據庫語法
- 28. JOOQ-如何推廣數據庫操作
- 29. 創建數據庫
- 30. 創建數據庫
您的意思是生成代碼,還是意味着要創建數據庫? (jOOQ沒有對DDL的正式支持,但仍然可以使用普通的SQL 命令來執行DDL)。你的意思是你不會包含jooq-meta和jooq-codegen嗎? –
我們希望通過調用存儲過程來創建數據庫。 – KernelPanic
請更具體一點。這個問題很難回答。請參閱[Stack Overflow FAQ](http://stackoverflow.com/faq#howtoask)以獲取更多詳細信息 –