Jfinal1.8多数据源问题

andying 发布于 2014/08/18 10:13
阅读 1K+
收藏 0

@JFinal 你好,想跟你请教个问题:

现升级到1.8,相测试一下多数据源的使用,

我一个数据源是mySQL,一个数据源是SQL2000,配置如下:

 

/**
	 * 配置插件
	 */
	public void configPlugin(Plugins me) {
		// 配置mySql数据库连接池插件
		C3p0Plugin dsMysql = new C3p0Plugin(getProperty("jdbcUrl"), getProperty("user"), getProperty("password").trim());
		me.add(dsMysql);
		
		// 配置ActiveRecord插件
		ActiveRecordPlugin arpMysql = new ActiveRecordPlugin("mysql",dsMysql);
		me.add(arpMysql);
		arpMysql.addMapping("blog", Blog.class);	// 映射blog 表到 Blog模型
		
		System.out.println("启动SQL2000-------------------------");
		//sql2000
		C3p0Plugin  dsSQL2000=new C3p0Plugin(getProperty("jdbcUrl_SQL2000"), getProperty("user_SQL2000"), getProperty("password_SQL2000").trim());
		me.add(dsSQL2000);		
		ActiveRecordPlugin  arpSQL2000=new ActiveRecordPlugin("sql2000",dsSQL2000);
		arpSQL2000.setDialect(new AnsiSqlDialect());
		arpSQL2000.setShowSql(true);
		arpSQL2000.addMapping("SAL_Quotation", Quotation.class);	
	}

 取自SQL2000中的表:

package com.demo.quotation;

import java.util.List;

import com.demo.blog.Blog;
import com.jfinal.plugin.activerecord.Model;

public class Quotation  extends Model<Quotation>{
  	public   static final  Quotation dao=new Quotation();
  	
  	public List<Quotation> findAll() {
  	   return find("select  dh,vCustno from sal_quotation order by id desc"); 
	}
}

//这里报java.lang.NullPointerException异常

public class QuotationControll extends Controller {

 public void index(){   try {    List<Quotation>  list= Quotation.dao.findAll();    setAttr("quoList", list);   } catch (Exception e) {     e.printStackTrace();   }                render("/quolist.jsp");          }   }

 "select  dh,vCustno from sal_quotation order by id desc" 这条语句在查询分析器中可以正常运行,为什么获取不到值呢?是我哪里配置有问题?

加载中
0
JFinal
JFinal

差一行代码:

me.add(arpSQL2000)
0
andying
andying

引用来自“JFinal”的评论

差一行代码:

me.add(arpSQL2000)

还真是这个问题,thks.

那Jfinal报的这个错误提示也太不人性化了,应该更具体点呀?

JFinal
JFinal
这个错误如果要报具体点,需要在很多地方对数据源进行 null 判断,代码量增加不少,而且不优雅。一旦解决问题,这个判断就没有必要
0
andying
andying
明白了,谢谢解惑.
0
Dreampie
Dreampie

 http://www.oschina.net/p/jfinal-dreampie  16  自动绑定多数据源的tablebind

?
1
2
3
4
5
6
7
AutoMultiSourceTableBindPlugin tableBindDefault = newAutoMultiSourceTableBindPlugin(druidDefault, SimpleNameStyles.LOWER);
//让default数据源排除shop目录下的model,因为该目录的model属于custom数据源
tableBindDefault.addExcludePaths("cn.dreampie.function.shop");
 
 AutoMultiSourceTableBindPlugin tableBindCustom = newAutoMultiSourceTableBindPlugin(druidCustom, SimpleNameStyles.LOWER);
//让custom只扫描shop目录,注意当使用includepaths是只会扫描配置的路径,如果没有使用includepaths会扫描全路径
tableBindCustom.addIncludePaths("cn.dreampie.function.shop");

返回顶部
顶部