iBATIS DAO framework初体验

开发 后端
iBATIS DAO framework初体验为你讲述iBATIS DAO framework的具体应用操作。

iBATIS DAO framework的应用一、

准备工作

1.到这里可以下载http://apache.etoak.com/ibatis/binaries/ibatis.java/iBATIS_DAO-2.2.0.638.zip

2.首先写DAO层接口及实现类:具体类方法省略,主要是实现类需要继承

com.ibatis.dao.client.template.SqlMapDaoTemplate类

Java代码

package datamigrate;  
import datamigrate.TCommGuestbook0;  
import datamigrate.TCommGuestbook0Example;  
import java.util.List;  
 
public interface TCommGuestbook0DAO {  
 int countByExample(TCommGuestbook0Example example);  
}   
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

Java代码

package datamigrate;     
import com.ibatis.dao.client.DaoManager;     
import com.ibatis.dao.client.template.SqlMapDaoTemplate;     
import datamigrate.TCommGuestbook0;     
import datamigrate.TCommGuestbook0Example;     
import java.util.List;     
    
public class TCommGuestbook0DAOImpl extends SqlMapDaoTemplate implements TCommGuestbook0DAO {     
    public TCommGuestbook0DAOImpl(DaoManager daoManager) {     
        super(daoManager);     
    }     
    
    public int countByExample(TCommGuestbook0Example example) {     
        Integer count = (Integer) queryForObject(     
                "t_comm_guestbook_0.ibatorgenerated_countByExample", example);     
          return count;  
    }   
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

iBATIS DAO framework应用二、

开始iBATIS DAO framework的体验

1.配置dao.xml –The Configuration File (http://ibatis.apache.org/dtd/dao-2.dtd)

Xml代码

﹤!DOCTYPE daoConfig  
 
    PUBLIC "-//ibatis.apache.org//DTD DAO Configuration 2.0//EN"  
 
    "http://ibatis.apache.org/dtd/dao-2.dtd"﹥  
 
﹤daoConfig﹥  
 ﹤!-- Example SQL Maps DAO Configuration --﹥  
 ﹤context﹥  
  ﹤transactionManager type="SQLMAP"﹥  
   ﹤property name="SqlMapConfigResource" value="sqlmap-config.xml" /﹥  
  ﹤/transactionManager﹥  
  ﹤dao interface="datamigrate.TCommGuestbook0DAO" implementation="datamigrate.TCommGuestbook0DAOImpl" /﹥  
  ﹤dao interface="datamigrate.TCommMsgbrdDAO" implementation="datamigrate.TCommMsgbrdDAOImpl" /﹥  
 ﹤/context﹥  
﹤/daoConfig﹥  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

非常简单的配置:

1.申明了事物和JDBC连接使用sqlmap-config.xml(Ibatis标准的配置文件,如下)中的属性,

2.申明了需要管理的dao文件接口和实现。

sqlmap-config.xml

Xml代码

﹤?xml version="1.0" encoding="GBK"?﹥    
﹤!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"     
        "http://www.ibatis.com/dtd/sql-map-config-2.dtd"﹥    
    
﹤sqlMapConfig﹥    
    
    ﹤settings cacheModelsEnabled="true"    
              useStatementNamespaces="true"/﹥    
    ﹤transactionManager type="JDBC"﹥    
        ﹤dataSource type="SIMPLE"﹥    
            ﹤property name="JDBC.Driver" value="com.mysql.jdbc.Driver" /﹥    
            ﹤property name="JDBC.ConnectionURL" value="jdbc:mysql:
//134.1:3306/b23?useUnicode=true&
characterEncoding=gbk&
zeroDateTimeBehavior=convertToNull" /﹥    
            ﹤property name="JDBC.Username" value="weisong" /﹥    
            ﹤property name="JDBC.Password" value="weisong" /﹥    
        ﹤/dataSource﹥    
                ﹤/transactionManager﹥    
    ﹤sqlMap resource="datamigrate/t_comm_guestbook_0_SqlMap.xml" /﹥    
    ﹤sqlMap resource="datamigrate/t_comm_msgbrd_SqlMap.xml" /﹥    
﹤/sqlMapConfig﹥  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.


iBATIS DAO framework具体支持一下集中JDBC连接和事物管理方式(当然通常会用sqlmap)

图1

2.使用方式:

iBATIS DAO framework接口类非常简洁:

图2

使用起来大致如下:

Java代码

package datamigrate;     
    
import java.io.IOException;     
import java.io.Reader;     
import java.util.List;     
    
import com.ibatis.common.resources.Resources;     
import com.ibatis.dao.client.DaoManager;     
import com.ibatis.dao.client.DaoManagerBuilder;     
    
public class MainClass {     
    public static void main(String[] args) throws IOException {     
        Reader reader = Resources.getResourceAsReader("dao.xml");     
        DaoManager daoManager = DaoManagerBuilder.buildDaoManager(reader);     
    
        try {     
            TCommMsgbrdDAO dao1 = (TCommMsgbrdDAO) daoManager     
                    .getDao(TCommMsgbrdDAO.class);     
            daoManager.startTransaction();     
            List﹤TCommMsgbrdWithBLOBs﹥ oldDB = dao1     
                    .selectByExampleWithBLOBs(new TCommMsgbrdExample());     
            daoManager.commitTransaction();     
        } catch (Exception e) {     
            // TODO Auto-generated catch block     
            e.printStackTrace();     
        } finally {     
            daoManager.endTransaction();     
        }     
    
    }     
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.

获取到DaoManager 之后磊代码就是了,根本不需要什么web环境。

iBATIS DAO framework三、

跟iBATIS结合

现在使用iBATIS的时候,通常会选择“Ibator”工具来自动生成PO对象和sql-map.xml,在﹤daoGenerator﹥元素里面可以配置一个属性type="IBATIS",具体意思就是“The generated DAO objects will conform to the (now deprecated) iBATIS DAO framework.” 就会自动生成支持iBATIS DAO framework的DAO实现了。

iBATIS DAO framework的体验就向你介绍到这里,希望对你有所帮助。

【编辑推荐】

  1. iBATIS使用$和#的一些理解
  2. iBATIS分页的一些理解
  3. iBATIS应用之SQLMap API编程浅析
  4. 动态Mapped Statement在iBATIS中应用
  5. iBATIS中添加DAO的配置浅析
责任编辑:仲衡 来源: JavaEye
相关推荐

2009-07-16 17:01:32

ibatis dao

2009-07-16 09:14:26

iBATIS DAO

2009-07-20 18:00:16

iBATIS DAO事

2009-07-16 16:27:33

ibatis DAO

2009-07-22 13:32:43

iBATIS DAO

2009-08-01 09:06:35

UbuntuOneLinux开源操作系统

2009-03-09 15:12:39

XenServer安装

2009-07-17 14:20:31

ibatis Dao

2009-07-21 11:17:46

iBATISDAO的配置

2023-07-15 08:01:38

2011-05-30 15:12:10

App Invento 初体验

2010-11-22 10:31:17

Sencha touc

2009-07-17 14:03:34

ibatis DAO事务管理

2009-07-20 14:56:18

iBATIS.NET动态选择DAO

2013-06-08 10:15:29

Outlook 201Outlook 201

2009-11-30 10:09:02

谷歌Chrome OS

2011-09-15 15:03:10

2011-11-01 10:30:36

Node.js

2010-12-13 11:39:39

2011-08-02 10:26:59

iOS 多线程 线程
点赞
收藏

51CTO技术栈公众号