C3p0Plugin如何设置其他参数

lam2012 发布于 2013/02/19 09:49
阅读 655
收藏 1

@JFinal 你好,想跟你请教个问题:请问C3p0Plugin如何设置setPreferredTestQuery,setTestConnectionOnCheckin之类的其他参数呢,源码里面只提供几个基本的参数设置.通过getDataSource获取的datasource为null,由于初始化在start方法里面.那要怎么配置连接池的其他参数呢?

加载中
0
JFinal
JFinal

JFinal 提供的 C3p0Plugin 没有提供这个属性的支持,想要支持极度容易,只需要这样:

public class MyC3p0Plugin extends C3p0Plugin {
  public boolean start() {
    // 原来 C3p0Plugin.start() 中的代码照抄一次
    dataSource.setPreferredTestQuery(preferredTestQuery);
    return true;
}
即自建一个 MyC3p0Plugin,覆盖其start()方法并添加setPreferredTestQuery(...)方法


0
缪斯的情人
缪斯的情人

ComboPooledDataSource ds = new ComboPooledDataSource();

ds.setPreferredTestQuery()

0
lam2012
lam2012

引用来自“缪斯的情人”的答案

ComboPooledDataSource ds = new ComboPooledDataSource();

ds.setPreferredTestQuery()

C3p0Plugin c3p0Plugin = new C3p0Plugin(loadPropertyFile("jdbc.properties"))

ComboPooledDataSource dataSource = (ComboPooledDataSource) c3p0Plugin.getDataSource();

这里是可以取出来的,可是在configPlugin方法里面时这样取出来时null,因为c3p0Plugin的start方法还没被调用(datasource是在start方法里面初始化)

你的方法新建一个的话就跟我c3p0Plugin内部新建的是不同个的了.

缪斯的情人
缪斯的情人
先start(),再在你获取的dataSourse里做设置你需要的
返回顶部
顶部