NutzCN Logo
问答 java代码方式创建的DataSource,怎么和NutDao关联呢?
发布于 3309天前 作者 lmm1990 3593 次浏览 复制 上一个帖子 下一个帖子
标签: dao ioc

http://www.nutzam.com/core/appendix/create_datasource.html 中只提到了
Druid(推荐)
国产精品连接池,淘宝温少诚意出品,带强大的监控功能哦

druid : 直接书写 Java 代码
import com.alibaba.druid.pool.DruidDataSource;

...

DruidDataSource dds = new DruidDataSource();
dds.setDriverClassName("org.postgresql.Driver");
dds.setUrl("jdbc:postgresql://localhost:5432/mydatabase");
dds.setUsername("enzozhong");
dds.setPassword("123");
...
dds.close(); // 关闭池内所有连接
————————————————————————————————————————————————
而我的配置
————————————————————————————————————————————————
var ioc = {
baiChengDao: {
type: "org.nutz.dao.impl.NutDao",
args: [{
refer: "baiChengSource"
}]
},
baiChengSource: {
type: "com.alibaba.druid.pool.DruidDataSource",
events: {
//depose : 'close'
},
fields: {
driverClassName: "com.mysql.jdbc.Driver",
url: "jdbc:mysql:******",
username: "*****",
password: "********"
}
},
....
}

3 回复

没懂, 你自己封装的获取数据库连接的代码???

@wendal 问题已解决
baiChengDao: {
type: "org.nutz.dao.impl.NutDao",
factory:"com.chengadx.admin.classHandler.MyDataSource#create",
args : ["defaultDataSource"]
}

public class MyDataSource {
public static NutDao create(String type){
    AppConfig.logger.error("dsType:" + type);
    DruidDataSource dds = new DruidDataSource();
    dds.setDriverClassName("com.mysql.jdbc.Driver");
    dds.setUrl("jdbc:mysql:*******");
    dds.setUsername("****");
    dds.setPassword("******");
    return new NutDao(dds);
}

}

线上、线下,数据库配置不一样时,可以这样写

线上线下不一致建议使用环境感知

package com.dgj.utils;

import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Strings;

/**
 * 
 * @author 王贵源
 *
 */
@IocBean(name = "envLoader")
public class ENVConfigLoader {
	/**
	 * 根据环境加载配置
	 * 
	 * @param devPaths
	 *            开发环境变量加载路径
	 * @param onlinePaths
	 *            线上环境变量加载路径
	 * @return 根据环境加载到的配置代理
	 */
	public static String load(String devPaths, String onlinePaths) {
		return Strings.equals("online", System.getenv("env_type")) ? onlinePaths
				: devPaths;
	}
}
添加回复
请先登陆
回到顶部