`
jasin2008
  • 浏览: 69501 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

处理ibatis中oracle date为null的问题

阅读更多
ibatis想oracle中插入date类型数据,当为null时报无效的列类型错误。google一番后,按照http://www.mail-archive.com/user-java@ibatis.apache.org/msg06316.html中的方法,copy之,然后在sqlmapconfig.xml中注册该typehandler,
<typeHandler
        callback="yourpacakge.OracleDateTypeHandler"
        javaType="java.util.Date" />
问题解决。但是打印出来的insert sql语句中date值变成了该date的引用值.对copy来的代码做些修改,修改后代码:

package yourpacakge;

import com.ibatis.sqlmap.client.extensions.ParameterSetter;
import com.ibatis.sqlmap.client.extensions.ResultGetter;
import com.ibatis.sqlmap.client.extensions.TypeHandlerCallback;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Date;
public class OracleDateTypeHandler implements TypeHandlerCallback {

    public void setParameter(ParameterSetter setter, Object parameter) throws
            SQLException {
        if (parameter == null) {
            setter.setNull(oracle.jdbc.OracleTypes.DATE);
        } else {
            Date date = (Date) parameter;
            //DATE oracleDate = new DATE(new Timestamp(date.getTime()));
            //setter.setObject(oracleDate);
//修改后
            setter.setObject(new Timestamp(date.getTime()));
        }
    }

    public Object getResult(ResultGetter getter) throws SQLException {
        Timestamp value = getter.getTimestamp();
        //增加对value的null值判断
        if (getter.wasNull()||value==null) {
            return null;
        }        
        return new Date(value.getTime());

    }

    public Object valueOf(String s) {
        return s;
    }
}


    今天改用parametermap进行insert操作时,报oracle sql无效字符错误,google的结果大都是要去掉insert语句的分号,可是我的insert根本就没分号。无奈将原来用
#parameter#表示的地方改用?代替,问题解决。原来用parametermap的时候ibatis规定sql中要用?,而且这种方式是不被推荐的。参数设置个人推荐使用hashmap,灵活方便。
分享到:
评论

相关推荐

    ibatis+oracle实例

    在IT行业中,数据库管理和持久化框架是至关重要的技术领域,而`ibatis+oracle`的组合就是这样的一个经典实例。Ibatis,一个轻量级的Java ORM(对象关系映射)框架,允许开发者将SQL语句与Java代码分离,提高了数据库...

    ibatis 读取oracle clob类型

    ibatis 读取oracle clob类型

    ibatis连接oracle所需的jar包

    下面我们将详细探讨这些关键的jar包以及它们在Ibatis与Oracle连接中的作用。 1. **ibatis-2.3.3.jar**: 这是Ibatis框架的核心库,包含了Ibatis的主要组件和API。它提供了SQL映射文件解析、事务管理、数据源配置等...

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程

    在IT领域,特别是数据库操作与Java开发中,利用ibatis框架调用Oracle存储过程是一个常见的需求,这不仅能够提升代码的执行效率,还能增强应用程序的安全性。本文将深入解析ibatis如何与Oracle数据库中的存储过程进行...

    spring+ibatis+oracle分页缓存源码

    在Oracle中,我们可以利用ROWNUM伪列进行分页查询。例如,通过WHERE ROWNUM BETWEEN start AND end限制返回的结果集范围。同时,可以结合索引来进一步优化查询性能,尤其是在处理大数据量时。此外,Oracle的...

    Ibatis+Oracle(含对应数据库sql) 源码

    这个资源为初学者提供了一个从理论到实践的桥梁,不仅可以学习到Ibatis和Oracle的基础知识,还能提升实际项目中的应用能力。在实际操作中,读者可以逐步理解这两个组件如何协同工作,从而更好地掌握Java数据库开发...

    Spring MVC+ibatis+oracle框架整合

    本项目整合了Spring MVC、iBatis和Oracle数据库,这三个组件都是企业级应用开发中的重要工具。接下来,我们将深入探讨这三个技术以及它们如何协同工作。 **Spring MVC框架** Spring MVC是Spring框架的一部分,是一...

    Ibatis调用Oracle存储过程返回自定义类型

    本文将深入探讨如何使用Ibatis框架来调用Oracle数据库中的存储过程,并实现返回自定义类型的处理方法。 #### Oracle自定义类型简介 Oracle支持用户自定义数据类型,这为复杂数据结构的应用提供了极大的便利。...

    Ibatis.net+ oracle 简单事例

    添加对Oracle 的引用,如Oracle.DataAccess.Client,然后将Ibatis.net 的相关配置文件和Mapper XML文件加入到项目中。使用VS2008的调试工具,可以快速测试SQL语句和业务逻辑。 【示例应用】 "IbatisTet" 可能是一个...

    struts2+spring+ibatis+oracle整合的登陆系统

    总结来说,"struts2+spring+ibatis+oracle整合的登陆系统"是一个综合性的Web应用示例,它展示了如何利用Struts2处理用户交互,Spring管理依赖和事务,iBatis执行数据库操作,以及Oracle存储数据。这样的整合方案为...

    ibatis + oracle 增删改查例子

    3. **创建Java DAO接口**:在Java代码中,你需要为每种操作创建一个DAO(Data Access Object)接口。这些接口的方法将对应XML文件中的SQL操作。 4. **编写Service层逻辑**:业务逻辑通常在Service层处理,它调用DAO...

    jar框架包2 ibatis spring oracle mysql

    本压缩包“jar框架包2”聚焦于四大关键技术:Ibatis、Spring、Oracle和MySQL,这四者在企业级Java应用开发中扮演着至关重要的角色。 Ibatis,全名MyBatis,是一个优秀的持久层框架,它支持定制化SQL、存储过程以及...

    iBATIS操作Oracle CLOB数据

    在Oracle中,CLOB通常用于存储大段的文本,如文章、报告或者XML文档。 iBATIS是一个Java库,它允许开发者将SQL语句与Java代码分离,提供了一种比JDBC更简单的数据访问方法。iBATIS的配置文件和映射文件中,我们可以...

    spring mvc+ibatis+oracle单表增删改(有包)

    在本项目中,我们主要探讨的是如何利用Spring MVC、iBATIS和Oracle数据库来实现一个基本的单表操作,包括增、删、改等常见功能。Spring MVC是Spring框架的一个模块,专门处理Web应用程序的模型-视图-控制器(MVC)...

    SSI整合,有ibatis连接oracle的分页,ajax等技术

    而Ibatis是一个轻量级的Java持久层框架,它允许开发者将SQL语句直接写在配置文件中,与ORM(对象关系映射)框架相比,提供了更大的灵活性。 在这个项目中,"SSI整合"指的是开发者将SSI技术应用到项目中,可能是在...

    ibatis下oracle树查询

    树形查询通常涉及到递归查询,Oracle数据库提供了一种名为“CONNECT BY”的语法,用于处理层次关系数据。通过指定起始节点(START WITH)和连接条件(CONNECT BY),我们可以构建出一个递归查询,从而获取整个树结构...

    struts2+spring+ibatis+oracle+分页搜索+上传附件实例

    Struts2、Spring、iBatis以及Oracle是Java Web开发中的四大核心组件,它们共同构建了一个强大且灵活的后端架构。在这个实例中,我们将会深入探讨这些技术如何协同工作,实现分页搜索功能和上传附件操作。 1. **...

    maven spring struts ibatis oracle框架整合

    "maven spring struts ibatis oracle框架整合"就是一个典型的例子,它涉及到四个关键的技术组件:Maven、Spring、Struts和iBatis,以及数据库管理系统Oracle。 **Maven**是Java项目管理工具,它负责管理项目的依赖...

    ibatis oracle clob

    标题 "ibatis oracle clob" 涉及到的是在Java开发中,使用iBATIS框架与Oracle数据库交互时处理CLOB(Character Large Object)类型数据的问题。CLOB是Oracle数据库用于存储大文本数据(如XML文档、长篇文章等)的...

Global site tag (gtag.js) - Google Analytics