Db.use中的一点小疑问

场景:

    当我通过程序去创建数据库A后,执行了Db.update("use A"),然后创建了表等信息,同时也将A数据源加入到了ActiveRecordPlugin中。此时,A保持为mysql中的默认数据库。

问题来了:

    当我在下文使用Db.use(other)时,其实还是在使用A库。

具体代码顺序:

  1. Db.update("USE `" + dbName + "`;");//使用新创建的库

  2. Db.batch(bat, bat.size());//执行其他库sql

  3. Global.createMerchantDataSource(cus);//添加数据源

  4. a.use(Conts.DATA_SOURCE).save();//调用其他数据源时会报错,提示表不存在(因为A库的影响,导致use不起作用)



评论区

JFinal

2017-04-07 15:48

Db.use(configName) 与 Db.update("use databaseName") 完全是两回事,千万不要混淆

configName 关联到某个数据源,具体用法看一下 jfinal 手册

JFinal

2017-04-07 15:48

sql 语句中的 use databaseName 是纯 sql 意义上的事情,Db.use(configName) 是 jfinal 层面上的事情

broccoli0

2017-04-07 15:54

@JFinal ok,那我自己处理下

热门反馈

扫码入社