tags:

views:

820

answers:

2

hi,

How do I configure an xml file as the datasource in iBatis?

thanks, R

A: 

You can use JndiDataSourceFactory.. here is what i got from the IBATIS documentation:

JndiDataSourceFactory - This implementation will retrieve a DataSource implementation from a JNDI context from within an application container. This is typically used when an application server is in use and a container managed connection pool and associated DataSource implementation are provided. The standard way to access a JDBC DataSource implementation is via a JNDI context. JndiDataSourceFactory provides functionality to access such a DataSource via JNDI. The configuration parameters that must be specified in the datasource stanza are as follows:

I used Spring to configure IBATIS with AppServer defined Data Source, the spring framework has a nice integration with IBATIS. look at org.springframework.orm.ibatis.SqlMapClientFactoryBean to do this.

Alon
A: 

If you are using Tomcat you can configure the DataSource in config.xml and have the following definition in your iBatis configuration xml where comp/env/jdbc/db is your jndi definition in Tomcat.

<bean id="JndiDatasource" class="org.springframework.jndi.JndiObjectFactoryBean">
      <property name="jndiName" value="java:comp/env/jdbc/db"/>   
      <property name="resourceRef" value="true" />
</bean>

If its a standalone application:

<bean id="jdbc.DataSource"
      class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
    <property name="initialSize" value="${jdbc.initialSize}"/>
    <property name="maxActive" value="${jdbc.maxActive}"/>
    <property name="minIdle" value="${jdbc.minIdle}"/>
    <property name="password" value="${jdbc.dbpassword}"/>
    <property name="url" value="${jdbc.dburl}"/>
    <property name="username" value="${jdbc.dbuser}"/>
    <property name="accessToUnderlyingConnectionAllowed" value="true"/>
</bean>
Kiran Kandala