我使用jooq针对本地数据库生成对象,但在以后的生产中运行“for real”时,实际数据库将具有不同的名称。为了解决这个问题,我使用
同时,我们有多个数据库(模式),并使用一个到服务器的连接池,如“jdbc:mysql://localhost:3306/“(此处不指定数据库)。
如何告诉jooq运行查询时使用哪个数据库?
我已经尝试了我能想到的所有配置:
new Settings()
.withRenderSchema(true) // true/false seems to make no difference.
.withRenderCatalog(true) // true/false seems to make no difference.
.withRenderMapping(new RenderMapping()
.withDefaultSchema("my_database") // Seems to have no effect.
// The above 3 configs always give me an error saying "no database selected".
// Adding this gives me 'my_database.my_table' does not exist - while it actually does.
.withSchemata(new MappedSchema()
.withInputExpression(Pattern.compile(".*"))
.withOutput("my_database")
));
我还尝试了使用数据库/模式名称,如不配置
outputSchemaToDefault
。但是,添加上面的MappdSchema
代码,但这会给我错误'my_databasemy_database.my_table'不存在,这是正确的。我不知道为什么代码给了我两次数据库/模式名称?
编辑:当jooq告诉我db。表不存在,如果我将断点放在一个好的位置,并从jooq获取sql,然后在我的数据库上运行它,它确实会工作。但jooq没有运行它。
另外,我使用的是jooq的3.15.3版本。
我解决了。而不是使用。使用InputExpression(Pattern.compile(“.*))
,它似乎可以与一起工作。使用输入(“”
)。
我仍然不确定它为什么会起作用,或者这是否是解决它的“正确”方式。但至少这是一条前进的道路。
我不知道为什么要用这个模式,但我得到了两次这个名字。但那一个我不去管了。
问题内容: MySQL中有什么方法可以将数据库名称放入变量中?例如,当我有一个名为“ db1”的数据库时,可以执行以下操作: 编辑:还有一个我想做的例子: 问题答案: 付出了很大的努力,是的。
问题内容: 我需要清除所有库存表。 我已经试过了: 但是我得到这个错误: 如果这是正确的方法,那我做错了什么? 问题答案: 使用concat: 当然,这只会生成您需要复制和运行自己的SQL。
我有一个jsp网页。我需要删除用户名从数据库当我按删除按钮从网页。我尝试了下面的代码,但是我不能删除名称,而是在用户名数据库中插入一个新行和一个空值。 unblockServlet.java: 受保护的void doPost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{//TODO自动生成的方法
若要开始使用服务器对象,你应该创建并打开一个连接。如果服务器中没有任何对象,你需要创建一个新的数据库或/和一个新的模式。 创建一个新的数据库 在导航窗格中,右击连接并选择“新建数据库”。 在弹出的窗口中输入数据库的属性。 编辑一个现有的数据库 在导航窗格中,右击数据库并选择“编辑数据库”。 在弹出的窗口中编辑数据库的属性。 创建一个新的模式 在导航窗格中,右击数据库并选择“新建模式”。 在弹出的窗
若要开始使用服务器对象,你应该创建并打开一个连接。如果服务器中没有任何对象,你需要创建一个新的数据库或/和一个新的模式。 创建一个新的数据库 在导航窗格中,右击连接并选择“新建数据库”。 在弹出的窗口中输入数据库的属性。 编辑一个现有的数据库 在导航窗格中,右击数据库并选择“编辑数据库”。 在弹出的窗口中编辑数据库的属性。 创建一个新的模式 在导航窗格中,右击数据库并选择“新建模式”。 在弹出的窗
若要开始使用服务器对象,你应该创建并打开一个连接。如果服务器中没有任何对象,你需要创建一个新的数据库或/和一个新的模式。 创建一个新的数据库 在导航窗格中,按住 Control 键并点按连接,然后选择“新建数据库”。 在弹出的窗口中输入数据库的属性。 编辑一个现有的数据库 在导航窗格中,按住 Control 键并点按数据库,然后选择“编辑数据库”。 在弹出的窗口中编辑数据库的属性。 创建一个新的模