获取数据源方式有很多
你可以自己指定,也可以给定一个条件自动获取
例如:
Sheet1UsedRange
Range("a1")CurrentRegion
range("a1:h10")
也可以通过变量取得
为了建立一个连接,你可以从 DriverManager 这个对象获取以及连接,也可以从DataSource数据源获取一个连接,这个是一种 更加高效的方式
如果开放的软件不止使用一种数据源,可以发布不同的数据源进行隔离, DataSource的具体实现由具体的厂商提供
可以发现DataSource 有两种获取连接的方法,一种是无参的,一种是带有用户名和密码的
MySQL的数据源的具体实现: commysqljdbcjdbc2optionalMysqlDataSource ,
一般来说, 支持分布式的数据源也支持连接池的数据源
数据源的部分,主要是了解有哪几种的实现方式,如果想了解数据源的创建和发布以及从数据源中获取连接:
请参考: >
由 Glide源码分析二——Request相关 可知,SingleRequest#onSizeReady(w,h)可知是通过Engine来加载的。
Engine是在GlideBuilder#build(context)构造Glide时,new出来传给Glide的。之后在RequestBuilder创建SingleRequest时通过GlideContextgetEngine()获取Engine并传给SingleRequest
DocodeJob主要是根据不同的Stage获取不同的DataFetcherGenerator,不同的DataFetcherGenerator可以得到不同的DataFetcher,DataFetcher是用来请求数据的。
获取数据成功之后,会使用DecodePath中保存的Decoder、Transcoder进行解码 *** 作,得到最终数据。
其中Decoder解码成功后会回调DecodeCallback#onResourceDecoded(Resource<Z> decoded),在该回调中会使用Transformation#transform()进行变换 *** 作,之后会调用DeferredEncodeManager#init()将变换后的数据保存起来。 最后在Transcoder解码完成后会在notifyEncodeAndRelease()中调用DeferredEncodeManager#encode()缓存变换后的数据。
DataFetcherGenerator有3个子类,逐级尝试获取数据:
这里分析下ResourceCacheGenerator吧:
DataCacheGenerator和SourceCacheGenerator也差不多,只是SourceCacheGenerator获取到数据之后会根据Engine#load()中设置的diskCacheStrategy来缓存数据。
DataCacheWriter是个包装类,实际还是通过Encoder在缓存数据的:
随便看一个Encoder的实现吧:
由DecodeJob章节可以知道,通过Generator获取数据成功后,会通过LoadPath/DecodePath进行解码。
LoadPath相当于代理类,内部使用DecodePath来完成解码 *** 作。
由DecodeJob章节可以知道,数据解码成功后,会通过DeferredEncodeManager进行缓存,它是DecodeJob的内部类。
它其实是个辅助类,实际的缓存工作是由ResourceEncoder完成的。
DecodeHelper是一个辅助类,每个DecodeJob对应一个DecodeHelper,在DecodeJob#init()中进行初始化,为DecodeJob提供能够处理Model的ModelLoader、LoadData和对应的Key、DiskCache、DiskCacheStrategy、LoadPath、Transformation、以及缓存数据用的Encoder等。
public void testConnection() {
Context context = null;
Properties properties = null;
try {
String url = "iiop://localhost:2809";//端口指的是BOOTSTAR_ADDRESS 端口 在websphere控制台能查到
String user = "用户名";
String password = "密码";
if (context == null) {
properties = new Properties();
propertiesput("javanamingfactoryinitial",
"comibmwebspherenamingWsnInitialContextFactory");
}
propertiesput("javanamingproviderurl", url);
propertiesput("javanamingsecurityprincipal", user);
propertiesput("javanamingsecuritycredentials",
(password == null) "" : password);
context = new InitialContext(properties);
/
webxml配置
<resource-ref>
<res-ref-name>jdbc/oracle_datasource</res-ref-name>
<res-type>javaxsqlDataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
/
DataSource ds = (DataSource)contextlookup("oracle_datasource");
Connection conn = dsgetConnection();
} catch (Exception ex) {
exprintStackTrace();
}
}
以上就是关于Excel,vbn怎样获取复制时,获取数据源地址,谢谢全部的内容,包括:Excel,vbn怎样获取复制时,获取数据源地址,谢谢、(4)数据源datasource详解、Glide源码解析四——Engine相关(从数据源获取数据)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)