NutzCN Logo
问答 多数据源使用时返回null
发布于 2823天前 作者 tuchief 1838 次浏览 复制 上一个帖子 下一个帖子
标签:

问题描述:配置了多数据源,sql写在文件中,使用dao4mbss这dao来执行sql,结果返回null,但是拿控制台打印的sql到数据库中执行是有结果的?
单独使用dao4mbss..fetch()来执行也是没有问题的,为什么把sql写入文件中调用不行呢?

	    dataSource : {
			factory : "$conf#make",
			args : ["com.alibaba.druid.pool.DruidDataSource", "db."],
	        type : "com.alibaba.druid.pool.DruidDataSource",
	        events : {
	        	create : "init",
	            depose : 'close'
	        }
	    },
		dao : {
			type : "org.nutz.dao.impl.NutDao",
			args : [{refer:"dataSource"}],
			fields : {
				executor : {refer:"cacheExecutor"},
				sqlManager : {refer:"sqlManager"}
			}
		},
		dataSource4mbss : {
			factory : "$conf#make",
			args : ["com.alibaba.druid.pool.DruidDataSource", "db4mbss."],
			type : "com.alibaba.druid.pool.DruidDataSource",
			events : {
				create : "init",
				depose : 'close'
			}
		},
		dao4mbss : {
			type : "org.nutz.dao.impl.NutDao",
			args : [{refer:"dataSource4mbss"}],
			fields : {
				sqlManager : {refer:"sqlManager"}
			}
		},
		//sql文件位置声明
		sqlManager : {
			type : "org.nutz.dao.impl.FileSqlManager",
			args : ["sql/"]
		},
   注入 
   @Inject
    protected Dao dao;
    @Inject
    protected Dao dao4mbss;

      ...
使用:
        Sql sql = dao4mbss.sqls().create("getCrdInfoByCrdNo");
        sql.setParam("crdNo", crdNo);
        Record crdInfo = dao4mbss.execute(sql).getObject(Record.class);
6 回复

缺了sql.setCallback哦

为什么没有sql.setCallback不行呢?什么时候需要?在使用单数据源的时候都不需要设置回调也可以获取到结果哈

@tuchief 我不信,找一段贴出来看看

@wendal 真真的呀,现在不在电脑前,明天贴,代码其实和上面贴的使用代码是一样的,就是之前可以,我才这么用,结果现在不行了

Sqls.queryXXX等帮助方法会预设回调,但create是不带回调的,除非你们改过源码

@wendal 我错了,我create的都有加回调

添加回复
请先登陆
回到顶部