`
sw1982
  • 浏览: 511456 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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类

package datamigrate;
import datamigrate.TCommGuestbook0;
import datamigrate.TCommGuestbook0Example;
import java.util.List;

public interface TCommGuestbook0DAO {
	int countByExample(TCommGuestbook0Example example);
}

 

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;
	}
}

 

 

 

二。开始iBATIS DAO framework的体验

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

<!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.申明了事物和JDBC连接使用sqlmap-config.xml(Ibatis标准的配置文件,如下)中的属性,

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

sqlmap-config.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&amp;characterEncoding=gbk&amp;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>

 

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

 
 

2.使用方式:

iBATIS DAO framework接口类非常简洁:



 
 使用起来大致如下:

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();
		}

	}
}

 

 

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

 

三。跟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实现了

 

 

P.s

1.在property文件配置DB连接时,通常

jdbc.url=jdbc:mysql://1.2.3.4:3306/bb?useUnicode=true;characterEncoding=gbk;zeroDateTimeBehavior=convertToNull

 

但是写到xml里面;会报错,需要转译成& a m p ; 使用

 

2.zeroDateTimeBehavior=convertToNull来自一个mysql版本升级的bug

Datetimes with all-zero components (0000-00-00 ...) — These values can not be represented reliably in Java. Connector/J 3.0.x always converted them to NULL when being read from a ResultSet.

Connector/J 3.1 throws an exception by default when these values are encountered as this is the most correct behavior according to the JDBC and SQL standards. This behavior can be modified using the zeroDateTimeBehavior configuration property. The allowable values are:

exception (the default), which throws an SQLException with an SQLState of S1009.

convertToNull, which returns NULL instead of the date.

round, which rounds the date to the nearest closest value which is 0001-01-01.

Starting with Connector/J 3.1.7, ResultSet.getString() can be decoupled from this behavior via noDatetimeStringSync=true (the default value is false) so that you can retrieve the unaltered all-zero value as a String. It should be noted that this also precludes using any time zone conversions, therefore the driver will not allow you to enable noDatetimeStringSync and useTimezone at the same time.

<!--EndFragment--><!--EndFragment-->

 

<!--EndFragment-->
  • 大小: 67.9 KB
  • 大小: 49 KB
分享到:
评论
2 楼 sw1982 2009-04-25  
lqixv 写道

现在这个框架已经不再维护了,好像都推荐使用spring Dao框架来代替。

这个我还真没注意到。。。只是用ibator的时候顺带下了一个了解下。代码实现非常简单直观,可以学习到一些东西
1 楼 lqixv 2009-04-24  
现在这个框架已经不再维护了,好像都推荐使用spring Dao框架来代替。

相关推荐

    iBATIS-DAO-2.3.4.726.rar_com.ibatis.dao_iBATIS dao 2_iBatis DAO_

    iBATIS DAO是Java开发中的一个持久层框架,它提供了数据访问对象(DAO)的实现,使得数据库操作更加简单和灵活。在这个2.3.4.726版本的源码中,我们可以深入理解iBATIS DAO的工作原理,并通过添加注释来帮助我们更好...

    iBatis DAO

    iBatis DAO

    ibatis dao包

    ibatis dao 包ibatis dao 包ibatis dao 包ibatis dao 包ibatis dao 包ibatis dao 包ibatis dao 包ibatis dao 包ibatis dao 包ibatis dao 包

    IBATISDAO库类操作

    **IBATISDAO库类操作详解** 在Java开发中,IBATIS是一个流行的数据访问接口框架,它提供了灵活的SQL映射机制,使得开发者能够直接使用SQL语句进行数据库操作,而无需编写复杂的JDBC代码。`IBATISDAO`库类是基于...

    生成ibatis Dao

    本知识点主要聚焦于如何生成Ibatis的Dao(数据访问对象)类,以及相关的实体类(Entity)和SQL映射文件(sqlMap)。下面我们将详细介绍这个过程。 首先,Ibatis Dao的生成通常涉及到几个关键步骤: 1. **配置文件*...

    ibatisDao.rar

    本资料“ibatisDao.rar”包含了一份对iBATIS DAO框架的深入分析,旨在帮助开发者更好地理解和应用这一技术。 在iBATIS中,DAO(Data Access Object)是数据库访问对象,它封装了对数据库的增删查改操作。DAO模式是...

    iBATIS-DAO-2

    ### iBATIS Data Access Objects (DAO):一种强大的持久层抽象技术 在深入探讨iBATIS Data Access Objects(DAO)的细节之前,我们先来理解一下这个概念的重要性以及它如何改变Java应用程序的开发方式。 #### 引言...

    iBATIS_DAO-2.2.0.638

    iBATIS DAO是Java开发中的一个关键组件,它在企业级应用中被广泛使用,特别是在数据访问层(DAO,Data Access Object)的设计中。iBATIS DAO 2.2.0.638是一个特定版本的iBATIS框架,这个版本提供了对数据库操作的...

    ibatis--dao的应用

    Ibatis,一个轻量级的Java持久层框架,正是DAO模式的一种实现,它提供了灵活的SQL映射机制,使得开发者能够更方便地将SQL查询与Java代码结合。下面我们将深入探讨Ibatis在DAO应用中的核心概念、工作原理以及实际应用...

    iBATIS-DAO-2_en

    在IT领域,尤其是在Java开发中,iBATIS与DAO(Data Access Object)模式的结合为开发者提供了一种高效、灵活且可扩展的数据访问方案。本文将深入探讨iBATIS实现DAO的相关知识点,包括其背景、原理、优势以及具体实现...

    使用abator搭建ibatis dao框架

    本篇文章将详细介绍如何使用Abator工具搭建基于Ibatis的DAO框架。 Abator是一款自动化工具,它可以自动生成Java代码和SQL映射文件,大大简化了开发过程。下面我们将分步骤解析如何利用Abator来创建Ibatis DAO框架。...

    ibatis-dao-2.jar

    ibatis-dao-2.jar gggggggggggg

    iBATIS_DBL-2.2.0.638

    iBATIS 2.2.0 is the last release that includes the iBATIS DAO framework. After 2.2.0, the DAO iBATIS framework is removed from the downloads. We suggest converting iBATIS framework DAOs to the Spring ...

    ibatis开发包(common+sqlmap+dao)

    这个开发包包含了Ibatis的核心组件,分别是`ibatis-common-2.jar`、`ibatis-sqlmap-2.jar`和`ibatis-dao-2.jar`。 1. **ibatis-common-2.jar**: 这个组件是Ibatis的基础工具包,包含了Ibatis运行时的一些通用类和...

    J2EE核心:iBatis_DAO入门与进阶.doc

    【J2EE核心:iBatis_DAO入门与进阶】 DAO(Data Access Object)模式在J2EE应用中扮演着关键角色,它提供了一种将业务逻辑与数据访问操作解耦的方式。DAO模式的核心思想是创建一个接口,该接口定义了所有与数据源...

    hibernate3.jar、ibatis-dao-2.jar、spring.jar、struts.jar、log4j-1.2.9.jar

    5. **iBatis-dao-2.jar**:iBatis(在本例中可能是iBATIS DAO的特定版本)是另一种ORM框架,不同于Hibernate,它更强调SQL的灵活性。iBatis允许开发者编写自定义的SQL,将SQL语句直接嵌入XML配置文件或Java代码中,...

    IBatis常用操作封装

    本篇我们将深入探讨“IBatis常用操作封装”,并结合提供的`IBatisDao.java`文件来解析其核心功能和用法。 首先,`IBatis`的核心理念是通过XML或注解的方式定义SQL映射文件,将SQL语句与业务逻辑代码分离,提高了...

    strut2+spring+ibatis 的ation层,service层,dao层自动生成,简单易用

    Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层、业务逻辑层(Service层)以及数据访问层(DAO层)。本项目提供的是一款工具,能够自动化生成这三层的代码,极大地提高了...

    iBATIS框架源码剖析

    资源名称:iBATIS框架源码剖析内容简介:iBATIS是一种比较流行的ORM框架,本书全面介绍其结构体系和分析其源程序代码,该框架的核心包括两个组件,一个是iBATIS DAO,另一个是iBATIS SQL Map。本书分为三个部分,第...

Global site tag (gtag.js) - Google Analytics