I have objects that are made up of data from two different datasources. I am currently using spring and my configuration is like that below. I guess this is a design question, but I have always constructed these type of objects in a service layer. It doesn't look like you can access two data sources from 1 dao or if you should even do this. Does it make sense to construct these type of objects in one DAO? Or should the DAOs be tied to one datasource and stricly return one object?

I guess what I am asking is, what is the best way to construct an object that is made up from two different datasources? And should the construction of an object be completed in the DAO?

Warren

Brandon Goodin wrote:
You are correct.

Brandon Goodin

On Fri, May 1, 2009 at 1:48 PM, Srinivas Doddi <srinivas_do...@gap.com <mailto:srinivas_do...@gap.com>> wrote:

    We were using two separate Sql Map Configuration files for this
    kind of scenario.  In IBATIS, I guess there is no way of
    specifying two different Sql maps clients in a single
    configuration file.  ( Correct me, if I am wrong)

    Thank you.

    **SRINIVAS DODDI**

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

    *From:* Bhaarat Sharma [mailto:bhaara...@gmail.com
    <mailto:bhaara...@gmail.com>]
    *Sent:* Friday, May 01, 2009 2:24 PM
    *To:* user-java@ibatis.apache.org <mailto:user-java@ibatis.apache.org>
    *Subject:* Re: how to have two datasources in sql-map-config.xml

    also, we have a spring-for-ibatis.xml file where we have code like
    this

    <bean id="IbatisDataSource"
    class="org.springframework.jndi.JndiObjectFactoryBean">

        <property name="jndiName" value="jdbc/RSGH/IJA/twy/ftwdb"/>

    </bean>

    <bean id="BTHSqlMapClient"
    class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

      <property name="configLocation"
    value="classpath:sql-map-config.xml"/>

      <property name="dataSource" ref="IbatisDataSource"/>

     </bean>

     <bean id="UsageIfaceDAO"
    class="biv.data.dao.reports.auditreports.UsageReportDAO">

        <property name="sqlMapClient" ref="BTHSqlMapClient"/>

        <property name="dataSource" ref="IbatisDataSource"/>

     </bean>

so can I then just add another bean with jndi like this:
    <bean id="IbatisDataSource2"
    class="org.springframework.jndi.JndiObjectFactoryBean">

        <property name="jndiName"
    value="jdbc/RSGH/IJA/twy/<mynewDBNAME>"/>

    </bean>

    then another bean for sql-map-client (I will have to make another
    xml right? say sql-map-client1.xml)

    <bean id="BTHSqlMapClient1"
    class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

      <property name="configLocation"
    value="classpath:sql-map-config1.xml"/>

      <property name="dataSource" ref="IbatisDataSource"/>

     </bean>

    and then start registering my DAO's like this

     <bean id="SomeNewDAO"
    class="biv.data.dao.reports.auditreports.SomeReportDAO">

        <property name="sqlMapClient" ref="BTHSqlMapClient1"/>

        <property name="dataSource" ref="IbatisDataSource"/>

     </bean>

    Thanks

    -bhaarat

    On Fri, May 1, 2009 at 2:09 PM, Bhaarat Sharma
    <bhaara...@gmail.com <mailto:bhaara...@gmail.com>> wrote:

    Hi

    Currently our sql-map-config looks like this:

    <sqlMapConfig>

       <settings enhancementEnabled="true"
    useStatementNamespaces="true" />

                <transactionManager type="JDBC">

                            <dataSource type="JNDI">

                                        <property name="DataSource"
    value="jdbc/RSGH/IJA/twy/ftwdb" />

                            </dataSource>

                </transactionManager>

                <sqlMap resource="existingSearch.xml" />

            <sqlMap resource="deceased_search.xml"/>

            <sqlMap resource="multiLoanSearch.xml"/>

    </sqlMapConfig>

    In the above we only have one JDBC connection and this connection
    goes to a SQL Server.  However, now we will have to access another
    DB which is in Oracle.  So we will have to create another JDBC
    connection and have some of our sqlMaps reference that NEW JDBC
    connection.  Can this be done in iBatis? can we have multiple data
    sources, and if so, then how do we differentiate which DB a sqlMap
references.
    Thanks!




--
Thanks,

Warren Bell
909-645-8864
warrenbe...@gmail.com

Reply via email to