DbPro db = Db.use("mssql"); //String sql1=db.getSql("student.searchStudent"); 这样写无法取到sql String sql = Db.getSql("student.searchStudent");//可以取到正确的sql List<Record> list1= db.templateByString(sql,Kv.by("cond",cond)).find();//可以取到结果 //下边代码无法取到结果 List<Record> records = Db.use("mssql").template("student.searchStudent",Kv.by("cond",cond)).find(); 下边是修改后的写法 DbPro db = Db.use("mssql"); //String sql1=db.getSql("mssql.searchStudent"); 这样写无法取到sql SqlPara sqlPara = Db.getSqlPara("mssql.searchStudent",Kv.by("cond",cond));//可以取到正确的sql List<Record> records= db.find(sqlPara.getSql(),sqlPara.getPara());//可以取到结果 //下边代码无法取到结果 //List<Record> records = Db.use("mssql").template("mssql.searchStudent",Kv.by("cond",cond)).find(); renderJson(Ret.ok("data",records));
问题在注释里写出来了,两种写法一种能取到结果,一种取不到结果,我是两个数据源,一个mysql,一个mssql
项目:JFinal
解决办法是,针对不同的数据源的 arp 对象,分别给它配置 addSqlTemplate(...);