今天碰到一个问题,那就是数据库的空值处理问题;其实这个问题也是老生常谈了,如果是在命令行里面打命令的话估计不会有什么问题;关键是现在的开发中到少不了用orm进行持久层的处理的了,具体原因在这里不在赘述;现在的开发中,我用的是ibatis;今天的问题是这样的把 一个对象的各个属性保存到为一条记录的字段,这问题才普通不过了;问题是如果属性是空的话怎么办了,想过把一个默认值赋予对象的属性,但感觉这样的思路非常的别扭,一个方面是由于加大了不必要的工作量,二是数据库那端也比较难管理;为了健忘,整理如下:
<insert id="saveMpsOperatorAuthority">
insert into mps_OperatorAuthority (infoId,companyId,localId,operatorId)
values (mps_OperatorAuthority_seq.nextVal,#companyId:NUMERIC#,#localId:VARCHAR# ,#operatorId#)
</insert>
以上的配置的意思就是如果插入对象的companyId属性为null,则把numberic类型的默认值插入数据库,localid属性做同样的处理;需要留意的是 一定要写成NUMERIC 不能写成NUMBER(如果是日期类型,精确到秒的则用TIMESTAMP) ,否则插入时候就会有异常,今天为这个问题搞了好几个小时 ;
同样的道理,如果要把数据库中的记录影射成对象的各个属性也面临着同样的问题,那 就是如果数据库中该字段为空则对象属性作何处理,具体如下:
<resultMap id="result"
class="com.pre.mps.model.Account">
<result property="infoId" column="infoId" columnIndex="1" />
<result property="companyId" column="companyId" columnIndex="2" jdbcType="NUMERIC" />
<result property="localId" column="localId" columnIndex="3" jdbcType="VARCHAR"/>
<result property="operatorId" column="operatorId" columnIndex="4" jdbcType="VARCHAR" />
</resultMap>
这里的jdbcType="NUMERIC"中的NUMERIC和NUMBER可以互换,也就是两者中写哪一个都可以,为了这个问题弄了半天真是郁闷,不过到头来还是很High
分享到:
相关推荐
在进行Oracle数据库操作时,必须确保该驱动已经正确添加到项目类路径中。 其次,`mybatis-3.0.2.jar`是MyBatis的核心库,包含了MyBatis框架的主要功能,如SQL映射文件解析、SQL执行等。这个版本的MyBatis支持动态...
这些文件包含了 SQL 查询、插入、更新和删除操作,每个操作对应一个映射元素。例如,你可以创建一个 `UserMapper.xml` 文件,其中包含用户相关的 CRUD 操作。 3. **Mapper 接口**:在 Java 代码中,你需要定义一个...
最后,在主程序中,创建SqlSession,调用UserMapper接口的方法,执行插入操作,并确保关闭SqlSession。 5. MyBatis的动态SQL MyBatis的动态SQL功能强大,可以在XML映射文件中使用`<if>`, `<choose>`, `<when>`, `...
MyBatis的主要优势在于它的SQL映射文件,开发者可以直接写SQL语句,提高了数据库操作的灵活性。它通过XML或注解方式配置和映射SQL与Java对象,使得数据库操作更加简洁直观。MyBatis与Spring整合后,可以实现DAO...
Mybatis 是一个基于 Java 的持久层框架,它提供了对数据库的访问和操作的功能。今天,我们将分享一个关于 Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例。 Mybatis 插入一条或批量插入 在 Mybatis 中...
MyBatis通过XML或注解方式,把Java对象和数据库表之间做映射,然后在Java代码中通过SQL Session操作数据库。 在实际配置中,MyBatis通常会与数据库连接池搭配使用,如c3p0、Druid等。数据库连接池管理数据库连接的...
整合的struts2 spring myibatis easyUI基础框架 ...2.异常处理机制 3.logback日记整合 4.oracle agile 整合(不需要agile,可以直接删除代码) 5.其他一些小东西的整合和整理 6.项目中有详细的注解
首先,MyBatis是一个轻量级的持久层框架,它解决了Java开发中数据库操作的繁琐。MyBatis通过SQL映射文件将SQL语句与Java代码解耦,使得开发者能够更加灵活地处理数据库交互。它支持动态SQL,可以根据业务逻辑自由...
通过XML配置文件或注解,MyBatis 可以动态地执行SQL查询、更新、删除和插入操作。它提供了一种灵活的方式来进行数据库操作,避免了传统的JDBC代码的繁琐。 **Hibernate** Hibernate 是一个强大的ORM框架,它可以将...
MyiBatis_用户手册包含以下资源: 1.iBatis2.0 开发指南中文版 2.MyiBatis3 用户指南中文版 3.MyiBatis Spring 1.0.0-snapshot 参考文档 以上都是pdf格式文档
MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,解决了在Java中操作数据库时的繁琐性,提升了开发效率。 在本书中,你将学习到以下核心知识点: 1. **MyBatis概述**:了解MyBatis的基本...
MyIbatis3.0入门+进阶实例,直接把资源工程导入到MyEclise里就可以运行,导入到Eclipse里也可以, 包含: ---ibatis_3_学习笔记.pdf ---ibatis3__发布_入门示例.pdf 可以带你熟练使用MyIbatis3.0,实例代码对MyIbatis3.0...
7. **事务管理**:MyBatis如何处理数据库事务,包括手动和自动提交,以及事务隔离级别的配置。 8. **日志配置**:如何开启和配置MyBatis的日志,便于调试和问题定位。 9. **插件支持**:MyBatis允许自定义插件,...
本示例聚焦于如何在SpringMVC 3.0和MyBatis 3.0环境中实现分页功能,这在处理大量数据时尤其重要,能够提高用户体验并减轻服务器压力。 **SpringMVC 3.0** SpringMVC是Spring框架的一部分,它是一个基于模型-视图-...
综上所述,"springMVC+myibatis的maven项目架构"是一个完整的Java Web解决方案,它利用SpringMVC处理Web请求,MyBatis负责数据访问,而Maven确保了项目的构建和依赖管理。此外,项目还提供了实用的Word和Excel工具类...
标题 "springmvc+spirng+myibatis jar包" 描述的是一个包含了一系列Java库的压缩文件,这些库主要用于构建基于Spring MVC、Spring框架和MyBatis的Web应用程序。这个组合是Java后端开发中常见的一种技术栈,用于处理...
在Java开发领域,MyBatis和Spring框架的结合使用已经成为一种常见的实践,它们的整合能够帮助开发者更好地管理数据库操作和业务逻辑。本文将深入探讨MyBatis与Spring整合的源码,以期帮助读者理解其内部工作机制,...
在SpringMVC框架中,MyBatis作为数据访问层的组件,负责处理数据库交互。首先,我们需要在`applicationContext.xml`配置文件中定义数据源(`dataSource`)。数据源是连接数据库的关键,它为Spring容器提供连接池,以...
4. **配置MyBatis的SqlSessionTemplate或SqlSessionDaoSupport**:提供DAO层操作数据库的模板方法。 5. **编写Mapper接口和XML文件**:定义数据库操作,编写对应的SQL语句。 6. **在Controller中注入Service**:调用...
在本入门示例中,我们将使用MyBatis 3.2.3版本,结合MySQL数据库进行基本操作。MySQL数据库的测试库名为"test"。 首先,让我们了解MyBatis的核心概念: 1. **配置文件**:MyBatis的主配置文件(mybatis-config.xml...