在oracle中数据库中需要指定,因为,不指定,像Integer,Long,VArchar,等等都可以为null,这样插入null,mybatis就不能判断是什么数据类型,因为mybatis框架需要转化这些数据类型同数据库类型一致然后插入数据库,
那么需要在每个插入数据库字段的后面加上jdbcType
-
<insert id="save"
-
parameterType="com.tarena.entity.Cost">
-
insert into cost values(
-
#{roleId},//这个就不用了,因为后台service中会手动设置uuid,不会为null,后端已经设置了,就是自己可控的,前端自己不可控,自己可控的并且设置了值,就不要判断,例如下面,下面的state值也是已经在service中设置好了,那么就不用写jdbcType了
<update id="updateState" parameterType="map" >
update CONTRACT_C SET
STATE=#{state}
where CONTRACT_ID in
<foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
-
cost_seq.nextval,
-
#{name,jdbcType=VARCHAR},
-
#{base_duration,jdbcType=INTEGER},
-
#{base_cost,jdbcType=DOUBLE},
-
#{unit_cost,jdbcType=DOUBLE},
-
#{status,jdbcType=CHAR},
-
#{descr,jdbcType=VARCHAR},
-
#{creatime,jdbcType=TIMESTAMP},
-
#{startime,jdbcType=TIMESTAMP},
-
#{cost_type,jdbcType=CHAR}
-
)
-
</insert>
jdbcType 时间类型当jdbcType = DATE 时, 只传入了 年月日
-
jdbcType = TIMESTAMP , 年月日+ 时分秒
那么如何插入null呢
第一步:
insert into table_name(_id,username) values(_id = #{_id,jdbcType=INTEGER},username=#{username,jdbcType=VARCHAR})
加上jdbcType=”数据类型“就可以了。
第二步:其实还需要在mybatis的配置文件中写入:
<settings>
<setting name="jdbcTypeForNull" value="NULL" />
</settings>
转载于:https://my.oschina.net/u/3043570/blog/2243874
分享到:
相关推荐
mybatis常用jdbcType数据类型.txt mybatis常用jdbcType数据类型.txt
经过修改源码的mybatis逆向工程生成器(不生成jdbcType)
在Java Web开发中,Struts2和MyBatis是两个常用的框架,分别用于处理MVC模式中的动作控制和持久层操作。在某些情况下,我们可能需要存储大量的二进制数据,如图片、视频或者大文本文件,这时MySQL数据库中的`...
MyBatis在映射XML文件中,需要对这些类型进行适当地配置,例如使用`jdbcType`属性指定数据库对应的日期类型。 2. **插入日期数据** 当我们需要插入日期数据时,可以在Mapper XML文件中的`<insert>`标签内使用`#{}`...
在 MyBatis 框架中,`jdbcType` 起到了桥梁的作用,使得 Java 类型的数据能够正确地转换为 SQL 语句中的对应类型。以下是对 MyBatis 常用的 `jdbcType` 数据类型的详细解释: 1. **BIT**: 用于存储单个二进制位,...
1. **MyBatis配置**:首先,我们需要在MyBatis的全局配置文件(`mybatis-config.xml`)中进行相关设置,确保MyBatis支持中文注释。可以通过开启`mapUnderscoreToCamelCase`属性,使MyBatis自动将下划线命名转换为驼峰...
`@MappedJdbcTypes(JdbcType.VARCHAR)`注解表示此TypeHandler适用于JDBC的VARCHAR类型,因为通常JSON数据以字符串形式存储在数据库中。 类中有一个静态的`ObjectMapper`实例,这是Jackson库的主要组件,用于读取和...
这是因为在MyBatis中,对于tinyint(1)字段,它会将其映射为jdbcType=BIT,即使设置了`tinyInt1isBit=false`,也无法改变这一行为,因为BIT类型与Integer的映射冲突。 为了解决这个问题,有两种主要方法: 1. **...
在Java开发中,MyBatis是一个非常流行的持久层框架,它简化了数据库操作与对象之间的映射过程。本文将深入探讨在MyBatis中如何使用枚举类型,并通过实际的项目"mybatis入门实战之枚举类型"进行讲解。这个项目提供了...
总结,处理MyBatis中的CLOB类型转换,主要涉及自定义TypeHandler、配置MyBatis、在Mapper中应用TypeHandler,以及在编程时考虑异常处理和性能优化。通过这些步骤,可以有效地管理和操作CLOB类型数据,解决插入数据库...
9. **result**和**id**:在resultMap中定义,分别表示普通属性和主键属性,可以包含column、javaType、jdbcType等属性,指定数据库列名和Java类型。 10. **choose**、**when**、**otherwise**:条件判断语句,类似...
在MyBatis框架中,类型定义方式是其核心机制之一,它涉及到参数绑定、结果映射等关键功能。本文将详细解析MyBatis中的类型定义方式及其应用。 首先,MyBatis提供了多种类型处理器(TypeHandler),它们是MyBatis在...
Mybatis 中 Oracle 的拼接模糊查询及用法详解 Mybatis 是一个基于 Java 的持久层框架,提供了强大的数据库交互能力,而 Oracle 则是业界最流行的关系数据库管理系统。本文将详细介绍 Mybatis 中 Oracle 的拼接模糊...
在本压缩包"mybatis-annotations.zip"中,主要涉及的是MyBatis的注解使用方式。 首先,让我们详细了解一下MyBatis的注解使用: 1. **@Mapper**: 这个注解是定义Mapper接口时使用的,标记在接口上,表明这个接口是...
在本文中,我们将深入探讨如何使用MyBatis直接执行SQL查询以及如何进行数据的批量插入。 **一、直接执行SQL查询** 在MyBatis中,你可以通过Mapper接口和XML配置文件来直接执行自定义的SQL查询。下面是一个简单的...
mybatis中使用oracle关键字出错的解决方法 MyBatis是一种非常流行的持久层框架,它提供了大量的便捷功能,帮助开发者快速高效地开发应用程序。然而,在使用MyBatis时,可能会遇到一些问题,例如使用Oracle关键字时...
在IT行业中,Spring Boot和MyBatis是两个非常流行的框架,它们被广泛用于构建高效、简洁的Java应用程序。Oracle数据库则是企业级应用中常见的关系型数据库,存储过程是其提供的一种强大功能,允许开发者编写复杂的...
在IT行业中,Mybatis作为一款流行的Java持久层框架,被广泛应用在数据访问操作中。它以其灵活、高效和易于理解的特性,深受开发者喜爱。本文将深入探讨在Mybatis中进行高级多表查询,特别是涉及懒加载和SQL优化的...
【描述】:尽管描述中没有提供具体信息,但可以推断这篇博文(链接已提供)可能详细介绍了如何配置MyBatis Generator以在生成的代码中包含数据库列的注释。这通常涉及到在generatorConfig.xml配置文件中进行特定设置...