日期:2014-05-16  浏览次数:20426 次

数据源的一些小问题

去年毕业的,在以前公司工作的时候

用的各种框架,太混乱了

数据源是也是直接配置的

来到新公司,有点东西先记下来

写项目的时候测试的时候用的tomcat,数据源可以配置在tomcat的service.xml ,context.xml中

还有一种可以直接配置在web项目中,在META-INF下新建context .xml,在里面配置如下:

-------------------------------------

<?xml version="1.0" encoding="UTF-8"?>

<Context? debug="0"
????????? path="/sinoiaca"
????????? reload="true">

??? <Resource name="DataSource"
????????????? auth="Container"
????????????? type="javax.sql.DataSource"
????????????? driverClassName="com.ibm.db2.jcc.DB2Driver"
????????????? url="jdbc:db2://192.168.1.32:50000/iaca_kf"
????????????? username="instiaci"
????????????? password="password"
????????????? maxIdle="30"
????????????? maxWait="10000"
????????????? maxActive="100"/>
</Context>

另外在项目下的web.xml中配置如下:

---------------------

<resource-ref id="ResourceRef_20090831">
??<description></description>
??<res-ref-name>SinoiacaDataSource</res-ref-name>
??<res-type>javax.sql.DataSource</res-type>
??<res-auth>Application</res-auth>
??<res-sharing-scope>Shareable</res-sharing-scope>
?</resource-ref>

当发布到tomcat的时候,tomcat会自动加载数据源

?

而当发布到was的时候,公司使用的在dbmanager-config.xml中配置JNDI,

而在was上配置JNDI以及数据源,在AppConst中配置SINOIACA_DATASOURCE_JNDI;底层的访问都已经封装,在程序启动的时候就会初始化这些参数,在查询数据库的时使用:dbManager.open(AppConst.SINOIACA_DATASOURCE_JNDI);连接数据库

当打成war包发布到was上即可使用,部分配置如下:

.xml:

--------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<datasource-defines>
?<datasource-define>
???? <name>sinoiacaDataSource</name>
???? <jndiname>java:comp/env/SinoiacaDataSource</jndiname>
???? <db-to-server-encode-charset>GBK</db-to-server-encode-charset>
???? <db-to-server-decode-charset>GBK</db-to-server-decode-charset>
???? <need-convert-from-db-to-server>false</need-convert-from-db-to-server>

???? <server-to-db-encode-charset>GBK</server-to-db-encode-charset>
???? <server-to-db-decode-charset>GBK</server-to-db-decode-charset>
???? <need-convert-from-server-to-db>true</need-convert-from-server-to-db>
??<description>visa datasource define.if encode equals decode ,the need convert will auto set false </description>
?</datasource-define>
</datasource-defines>

?