iBatis DAO

iBatis DAO

  1. DBCP: Use DBCP when you want to use Apache DBCP for connection management. Please see the DAO online guide for information on how to configure the DBCP connection pool.
  2. JNDI: When you want to use the application server's implementation of the connection pool, all you have to do is provide the JNDI name of your connection pool and the DAO framework will use it for getting a connection.
    
    
    
    <transactionManager type="JDBC">
    
     <property name="DataSource" value="JNDI"/>
    
     <property name="DBJndiContext"
    
      value="java:comp/env/jdbc/MyDataSource"/>
    
    </transactionManager>
    
    
    
    

Then you will have to create a class that extends JdbcDaoTemplate.java to implement your business interface. In our sample, we created JDBCContactDAO.java. In the business method, you can ask your superclass for the connection by calling getConnection(). Since we are not using any persistence framework, we'll have to create our own SQL queries and execute them.






public int updateContact(Contact contact) {

 try {

  Connection conn = getConnection();

  PreparedStatement updateStmt =

   conn.prepareStatement("UPDATE DB2ADMIN.CONTACT

    SET FIRSTNAME=?,LASTNAME=? WHERE CONTACTID=?");

  updateStmt.setString(1, contact.getFirstName());

  updateStmt.setString(2, contact.getLastName());

  updateStmt.setInt(3, contact.getContactId());

  return updateStmt.executeUpdate();

 } catch (SQLException ex) {

    throw new DaoException(ex);

 }

}



When using a JDBC transactionManager, the DAO framework will control the transaction by calling commit and rollback methods on the Connection object, so transactions will be handled at the Connection level instead of participating in global transaction.

JTA

If you are creating a J2EE application, then it is a much better idea to use the connection pool provided by your application server, because it will perform much better than a SIMPLE or DBCP connection pool. Also, with a J2EE application, RDBMS will be only one of the transactional sources; in addition to RDBMS, you will also have other things like JCA, MQ Server, etc. This means you cannot start and commit transactions at the connection level; instead, your code should participate in global transaction by calling the begin() and commit() methods on a UserTransaction. For this type of requirement, you can use JTA as transctionManager and provide the JNDI URL of both your DataSource pool and UserTransaction object to it.




<transactionManager type="JTA">

 <property name="DBJndiContext"

  value="java:comp/env/jdbc/MyDataSource"/>

 <property name="UserTransaction"

  value="java:comp/env/UserTransaction"/>

</transactionManager>



Hibernate

Since Hibernate is a very popular persistence framework, iBatis DAO offers support for it. To use Hibernate in your application, add a <transactionManager> element in your DAOMap.xml file, as follows.




<transactionManager type="HIBERNATE">

 <property name="hibernate.dialect"

  value="net.sf.hibernate.dialect.Cloudscape"/>

 <property name="hibernate.connection.driver_class"

  value="com.ibm.db2j.jdbc.DB2jDriver"/>

 <property name="hibernate.connection.url"

  value="jdbc:db2j:D:\cloudscape\wpsdb"/>

 <property name="hibernate.connection.username"

  value="db2admin/>

 <property name="hibernate.connection.password"

  value="db2admin"/>

 <property name="class.1"

  value="com.sample.contact.Contact"/>

</transactionManager>



You also need to create a DAO class extending HibernateDaoTemplate. Inside your DAO, you can access the Hibernate Session object by calling the getSession() method.

SQL Map

Please look at the sample application (in the Resources section) for details about how to use the SQL Map persistence framework in your application.

External

An external transaction manager allows transactions to be externally controlled by the DAO framework. This behavior is good for interacting with non-RDBMS data sources. In the next section, we will see how to use the DAO framework to use an XML file as a data source.



<transactionManager type="EXTERNAL">

</transactionManager>



Prev  [1] [2] [3] [4] [5] Next

Close    To Top
  • Prev Article-Java:
  • Next Article-Java:
  • Now: Tutorial for Web and Software Design > Java > JDOnJDBCnSQLJ > Java Content
    Photoshop Tutorial
     

    Special Effect

      3D Effect
      Photoshop Articles
    Programming Tutorial
     

    C/C++ Tutorial

      Visual Basic
      C# Tutorial
    Database Tutorial
     

    MySQL Tutorial

      MS SQL Tutorial
      Oracle Tutorial
    Geek Tutorial
     

    Blogging Tutorial

      RSS Tutorial
      Podcasting Tutorial
    Graphic Design Tutorial
      Coreldraw Tutorial
      Illustrator Tutorial
      3D Tutorials
    Webmaster Articles
     

    Domain Service

      Web Hosting
      Site Promotion
    Java Tutorial/ Articles
     

    Java Servlets

      JavaEE Tutorial
     

    JavaBeans Tutorial

    XML Tutorial/ Articles
     

    XML Style

      AJAX Tutorial
      XML Mobile
    Flash Tutorial/ Articles
     

    Flash Video

      Action Script
      Flash Articles
    OS Tutorial/ Articles
      Linux Tutorial
      Symbian Tutorial
      MacOS Tutorial
    Personal Tech
      Hardware Tutorial
      Software Tutorial
      Online Auction