请问JFInal只支持MySQL数据库吗?还是使用其他的数据库要实现自己的dialect?

Mashwad 发布于 2016/08/23 10:55
阅读 573
收藏 0

我是看着JFinal挺好用又轻量级,就抱着试试看的态度去读源码,就是看到这有点疑惑,求大家给说说呗。

ActiveRecordPlugin.java Start方法中调用了new Config(configName, dataSource); 而这个方法中调用了MySQL的Dialect。

ActiveRecordPlugin.java  Start 方法部分源码:

public boolean start() {
	if (isStarted) {
		return true;
	}
	if (configName == null) {
		configName = DbKit.MAIN_CONFIG_NAME;
	}
	if (dataSource == null && dataSourceProvider != null) {
		dataSource = dataSourceProvider.getDataSource();
	}
	if (dataSource == null) {
		throw new RuntimeException("ActiveRecord start error: 
                 ActiveRecordPlugin need DataSource or DataSourceProvider");
	}
        if (config == null) {
		config = new Config(configName, dataSource); //这里调用了Config
	}

Config.java 部分源码:

public Config(String name, DataSource dataSource) {
		this(name, dataSource, new MysqlDialect());
	}



加载中
0
JFinal
JFinal

  不设置方言时,默认是 mysql 方言,可以通过如下方式设置其它方言:

ActiveRecordPlugin arp = new ActiveRecordPlugin(...);
arp.setDialect(new OracleDialect());

    jfinal 提供了常用的数据库方言,例如 sqlite、postgresql、sqlserver。如果这些方言还不满足需求,可以用一下 AnsiSqlDialect,这个方言支持所有满足 ANSI SQL 标准的数据库,当然,你还可以通过继承 Dialect 随心所欲扩展自己喜欢的方言

0
Mashwad
Mashwad

引用来自“JFinal”的评论

  不设置方言时,默认是 mysql 方言,可以通过如下方式设置其它方言:

ActiveRecordPlugin arp = new ActiveRecordPlugin(...);
arp.setDialect(new OracleDialect());

    jfinal 提供了常用的数据库方言,例如 sqlite、postgresql、sqlserver。如果这些方言还不满足需求,可以用一下 AnsiSqlDialect,这个方言支持所有满足 ANSI SQL 标准的数据库,当然,你还可以通过继承 Dialect 随心所欲扩展自己喜欢的方言

谢谢,收到官方回复,受宠若惊。我看了其他人用JFinal写的项目代码,又去看了看源码,有点受项目误导了。
Mashwad
Mashwad
回复 @JFinal : 十分感谢
JFinal
JFinal
git.oschina.net 上的 jfinal 开源项目好几百个,质量参差不齐,建议多看看排名较高的 jfinal 项目
返回顶部
顶部