iBATIS DAO framework试用

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

 

一。准备工作

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
同济土木非0基础三个月跨考复旦计算机攻略 跨考cs攻略前言我cs专业课如何复习How to start from zero简历其他复试 前言 建议多去工地/化工厂涡轮增压一下 我 同济土木gpa 3.2/5 挂科 * n 辣鸡项目 * n (padding 简历) 21考复旦计算机专硕 10月-12月 学习+复习 总分392 政治 68;背肖4即可 英语二 78 裸考,(高考英语140+);做点真题,建议据自己情况准备 数学二 142 ;(高考数学接近满分);做真题+模拟题,每天写一张试卷 专业课 104 ,考试生病了,下文展开。 cs专业课 阅读详情

相关推荐

古风仙侠少女三视图提示词,一键生成角色设定

3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。平视正交视角,统一光照,纯白背景,无文字无水印,避免强透视和动态变形。3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。少女,古风仙侠少女气质,灵动、温婉、仙气。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 584

Ibatis基本操作

本操作所涉及的文件

一个程序员的专栏 537

2025年上半年第1批信息系统项目管理师论文真题解析与范文

文章首先分析了项目经理在交付绩效域中应关注的重点领域,然后按照项目管理五大过程组顺序,阐述了各过程组中与交付绩效域协同的绩效域及协调目标,最后制定了各过程组中交付绩效域的测量指标。本项目的实践表明,系统化的交付绩效管理不仅能保证项目成功,还能创造超出预期的业务价值。需要结合具体项目案例,按照五大过程组(启动、规划、执行、监控、收尾)顺序,分析各过程组中与交付绩效域协同的其他绩效域及其协调目标。价值交付连续性:建立敏捷交付机制,将项目分解为12个迭代周期,每周期交付可验证成果,确保价值持续流动。

Programming Talk 793

iBatis 学习 之一 DAO部分

iBatis作者不喜欢在类前加详尽的说明,批评一下.首先看一下包 com.ibatis.dao.client 1 定义了一个声明式接口 Dao2 一个DaoManager接口,它有一个创建Dao实例的工厂方法:  public Dao getDao(Class type); 是为了将用户自己写的Dao接口与sqlMap实现类解藕,通过在dao.xml中指定二者的映射。   public Dao

青之六号 3160

ibatis--dao的应用

举例说明: [b]1.来一个Person类[/b] [code="java"]package com.Jdnis.ibatis.model; import java.io.Serializable; import java.sql.Date; public class Person implements Serializable { private static final long...

imti_cg的专栏 206

原始的Ibatis基于接口和实现类的开发方式——MyBatis的第一种开发方式

MyBatis有两种开发方式 1. 原始的Ibatis接口实现类的方式 通过SqlSessionFactory创建SqlSession来调用增删改查接口,操作statement的id硬编码来实现,老项目常用这种方式。 缺点:重复代码过多,操作statement的id硬编码将来影响维护。 2. 基于mapper的动态代理的开发方式 mybatis根据一些规则自动创建接口的实现类的代理对象,

. 737

Java tcomm 例子_iBATIS DAO framework初体验

iBATIS DAO framework的应用一、准备工作1.到这里可以下载http://apache.etoak.com/ibatis/binaries/ibatis.java/iBATIS_DAO-2.2.0.638.zip2.首先写DAO层接口及实现类:具体类方法省略,主要是实现类需要继承com.ibatis.dao.client.template.SqlMapDaoTemplate类Jav...

weixin_42395823的博客 149

不同FrameworkDAO层的分析

http://hi.baidu.com/dapplehou/blog/item/6ba8034f5114e038aec3abdb.html Table of Contents 1 言前 2 项目1 (久远,尚无SSH流行) 2.1 使用方式 2.2 原理 2.3 UML 2.4 优点 2.5 缺点 3 项目2 3.1 使用方式(步骤) 3.2 原...

mmonkeyer的博客 296

iBatis DAO(五)

Ibatis

xiaolang85的专栏 595

04.spring frameworkDAO支持

一、Spring数据访问原则 1、将数据访问的功能放到一个或多个专注于此项任务的组件中。这样的组件通常称为数据访问对象(data access object,DAO)或Repository。 2、应该以接口的方式暴露数据访问层所提供的功能; 3、为了将数据访问层与应用程序的其他部分隔离开来,Spring采用的方式之一就是提供统一的数据访问异常体系 二、Spring数据访问异常体系 1、目...

mazhongjia的博客 699

rapid-framework 改造

rapid-framework ibatis3(没有把)

merry163的专栏 920

Gingko Framework(struts集成ibatis)

页面布局:tilesweb层:struts1.1,采用beanaction.半自动化的ORM:ibatis2.0兼容jdk1.3框架分析ActionFormBean充当业务对象BO,并向页面回送数据,业务处理代码写在其中Java...

cuishenhen6889的博客 124

纵论开发FrameWork框架,推荐Webwork+Ibatis+Spring

MVC领域的龙头老大自然非Struts莫属,五六年的发展,已经形成了MVC事实上的规范。现在普遍使用的是Struts1.2.9版本。Webwork不但继承了Struts的思想,更有所发展和简化。一个小系统甚至只需要一个Action控制器就足够了,相比而言,Struts1.2.9就逊色的多了。Struts1.2版本过于僵化,限制的太死,无形中增加了很多额外的开发工作。建立在webwork2基础上的S

霍力强的专栏 2297

ibatis.net 配置常见的错误

ibatis.net 调试中的常见错误: 一、DaoManager的实例为空 对于第一次使用ibatis.net开发项目的人,遇到此问题是难以避免的。 ibatis.net的配置非常灵活,但也比较繁琐,除非你使用Ibatis.net的代码生成器,以避免绝大部份的错误。 ibatis.net在对生成daoManager实例的时候,会对dao.config,SqlMap.config等文件会进

中辽普坦的专栏 7736

rapid framework使用

rapid framework使用步骤,参考:http://code.google.com/p/rapid-framework/wiki/more_archetypes 步骤1: 使用骨架生成项目: mvnarchetype:generate-B-DarchetypeGroupId=com.googlecode.rapid-framework-Darchetyp...

weixin_34391445的博客 245

Spring Framework 开发参考手册 之十一 使用ORM工具进行数据访问

11.1.简介Spring在资源管理,DAO实现支持以及实物策略等方面提供了与Hibernate, JDO和iBATIS SQL映射的集成。 对Hibernate,Spring使用了很多IoC的方便的特性提供了一流的支持,帮助你处理很多典型的Hibernate整合的问题。所有的这些都遵守Spring通用的事务和DAO异常体系。当您选择使用O/R映射来创建数据访问应用程序的时候,Spring的增加部

pioneer's blog 1459

J2EE代码自动生成器rapid-framework3.0发布(struts,strust2,springmvc,hibernate,ibatis,spring_jdbc,flex)

 原文地址:http://badqiu.javaeye.com/blog/514125   2009-11-11rapid-framework发布v3.0 版本关键字: v3.0 虽然spring 3.0及ibatis3还未发布,但rapid里面的集成基本已经成型,正式版发布会继续跟进.以下是changelog

李蓝箫 4187

iBATIS for Java 2.3.0 Released (译)

iBATIS for Java 2.3.0 Released [Status: Beta] (December 1, 2006) This release includes several bug fixes and enhancements. Additionally, this release offers new support for local caching of prepared ...

party 157
上一篇: Java中对象集合的序列化
下一篇: Dozer推土机。。
宋玮-深圳
博客等级 码龄20年 53粉丝 240原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值