关于mybatis callSettersOnNulls 配置解析
今天做了一件坑了自己的事情,为此浪费了好多时间。。。
在mybatis的设置中,看到了这样的一行设置。出于程序员的好奇,去搜索了一下,这条设置是干什么的。
<setting name="callSettersOnNulls" value="true"/>
在网上众多大神的解答下,终于一知半解了。
在一般查询中,如果用map接受查询结果时,会自动将查询结果为null的字段忽略,这样就造成取参数时报空指针异常的情况。
如果设置了这条属性之后,mybatis就不会忽略这些字段,你依然能get到这些key,只不过value为null,这样也方便。
那么坑来了,这种设置的情况下,会出现2种比较特殊的情况。
1.如果整个查询的所有字段都没有值,就是查询到0条记录时,那么接受到的map是什么结果?
答案是,我们会接收到一个所有key值都为null 的map 而不是一个为null的map。
2.如果只查询一个字段,而用map接收,此时为null是什么结果?
答案是,我们会接收到一个为null的map,跟上面情况正好相反。
总结
以上所述是小编给大家介绍的关于mybatis callSettersOnNulls 配置解析,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
相关推荐
-
Spring+Mybatis 实现aop数据库读写分离与多数据库源配置操作
在数据库层面大都采用读写分离技术,就是一个Master数据库,多个Slave数据库.Master库负责数据更新和实时数据查询,Slave库当然负责非实时数据查询.因为在实际的应用中,数据库都是读多写少(读取数据的频率高,更新数据的频率相对较少),而读取数据通常耗时比较长,占用数据库服务器的CPU较多,从而影响用户体验.我们通常的做法就是把查询从主库中抽取出来,采用多个从库,使用负载均衡,减轻每个从库的查询压力. 废话不多说,多数据源配置和主从数据配置原理一样 1.首先配置 jdbc.prope
-
mybatis 加载配置文件的方法(两种方式)
一. 使用sqlSessionFactory 的 mapperLocations 进行加载, <!-- SessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" scope="singleton"> <property name="dataSource" ref=
-
spring与mybatis整合配置文件
最近因为项目要求整合了spring+mybatis架构进行项目开发,现将相关整合配置文件整理如下: 基本架构:spring+springmvc+mybatis 分布式框架:dubbo+zookeeper 数据库:mysql 数据库连接池:Druid 1 数据库连接配置信息jdbc.properties #mysql version database druid # setting validationQuery=SELECT 1 jdbc.driverClassName=com.mysql.jd
-
MyBatis在insert插入操作时返回主键ID的配置(推荐)
很多时候,在向数据库插入数据时,需要保留插入数据的id,以便进行后续的update操作或者将id存入其他表作为外键. 但是,在默认情况下,insert操作返回的是一个int值,并且不是表示主键id,而是表示当前SQL语句影响的行数... 接下来,我们看看MyBatis如何在使用MySQL和Oracle做insert插入操作时将返回的id绑定到对象中. MySQL用法: <insert id="insert" parameterType="com.test.User&qu
-
Mybatis分页插件PageHelper的配置和简单使用方法(推荐)
前言 在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页. 前端分页 一次性请求数据表格中的所有记录(ajax),然后在前端缓存并且计算count和分页逻辑,一般前端组件(例如dataTable)会提供分页动作. 特点是:简单,很适合小规模的web平台:当数据量大的时候会产生性能问题,在查询和网络传输的时间会很长. 后端分页 在ajax请求中指定页码(pageNum)和每页的大小(pageSize),后端查询出当页的数据返回
-
mybatis学习笔记之mybatis注解配置详解
Java API 既然你已经知道如何配置 MyBatis 和创建映射文件,你就已经准备好来提升技能了. MyBatis 的 Java API 就是你收获你所做的努力的地方.正如你即将看到的,和 JDBC 相比, MyBatis 很大程度简化了你的代码而且保持简洁,很容易理解和维护.MyBatis 3 已经引入 了很多重要的改进来使得 SQL 映射更加优秀. MyBatis 3构建在基于全面且强大的Java配置API上.该配置API是基于XML的MyBatis配置的基础,也是新的基于注解配置的基础
-
Mybatis中的config.xml配置文件详细解析
经过前面的文章,我觉得对Mybatis的正题理解已经足够了,但是对Mybatis的使用,我觉得还是会有一点的模糊,就我个人而言,我觉得掌握好Mybatis框架,主要要明白三个文件,第一个就是等下要谈论的Mybatis-comfig.xml文件,还有就是**Mapper.xml,以及我们所定义的Mapper类,理解了这三个东西,然后有sql的基础,还有java的基础的话,后面不论是使用基于xml的方法,还是基于java-based Configuration的方法,都会简单的多. 废话不多说,现在
-
关于mybatis callSettersOnNulls 配置解析
今天做了一件坑了自己的事情,为此浪费了好多时间... 在mybatis的设置中,看到了这样的一行设置.出于程序员的好奇,去搜索了一下,这条设置是干什么的. <setting name="callSettersOnNulls" value="true"/> 在网上众多大神的解答下,终于一知半解了. 在一般查询中,如果用map接受查询结果时,会自动将查询结果为null的字段忽略,这样就造成取参数时报空指针异常的情况. 如果设置了这条属性之后,mybatis就
-
详解MyBatis XML配置解析
MyBatis核心配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environm
-
详解Mybatis是如何解析配置文件的
缘起 经过前面三章的入门,我们大概了解了Mybatis的主线逻辑是什么样子的,在本章中,我们将正式进入Mybatis的源码海洋. Mybatis是如何解析xml的 构建Configuration 我们调用new SqlSessionFactoryBuilder().build()方法的最终目的就是构建 Configuration对象,那么Configuration何许人也?Configuration对象是一个配置管家, Configuration对象之中维护着所有的配置信息. Configura
-
springmvc mybatis集成配置示例
简单之美,springmvc,mybatis就是一个很好的简单集成方案,能够满足一般的项目需求.闲暇时间把项目配置文件共享出来,供大家参看: 1.首先我们来看下依赖的pom: <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.ve
-
springmvc与mybatis集成配置实例详解
简单之美,springmvc,mybatis就是一个很好的简单集成方案,能够满足一般的项目需求.闲暇时间把项目配置文件共享出来,供大家参看: 1.首先我们来看下依赖的pom: <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.ve
-
Spring+SpringMVC+MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析
前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(二)--MyBatis原始Dao开发和mapper代理开发 MyBatis的全局配置文件SqlMapConfig.xml,配置内容和顺序如下: properties(属性) setting(全局配置参数) typeAliases(类名别名) typeHandlers(类名处理器) objectFactory(对象工厂) plugins(插件) environments(环境集合属性对象) environment(环境子属性
-
Spring整合MyBatis图示过程解析
这篇文章主要介绍了Spring整合MyBatis图示过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.导入所需要的jar依赖 !--MyBatis和Spring的整合包 由MyBatis提供--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <vers
-
Spring SpringMVC,Spring整合MyBatis 事务配置的详细流程
整合思路 (1)SSM是什么? Spring,SpringMVC,Mybastis (2)思路 搭建整合的环境,初始化环境 搭建Spring环境,配置完成并测试 (service层) 再使用Spring整合MyBatis框架,并测试(Dao层) 最后使用Spring整合SpringMVC框架,并测试(web层) SSM搭建环境 (1)数据库创建ssm (2)创建maven工程 (3)git (创建.gitignore来过滤不用提交的文件) (4)依赖框架 (5)log4j.properties
-
Mybatis 插件原理解析
Mybati s作为⼀个应⽤⼴泛的优秀的ORM开源框架,这个框架具有强⼤的灵活性,在四⼤组件 (Executor.StatementHandler.ParameterHandler.ResultSetHandler)处提供了简单易⽤的插 件扩展机制. Mybatis对持久层的操作就是借助于四⼤核⼼对象.MyBatis⽀持⽤插件对四⼤核⼼对象进 ⾏拦截,对mybatis来说 插件就是拦截器,⽤来增强核⼼对象的功能,增强功能本质上是借助于底层的 动态代理实现的,换句话说, MyBatis中的四⼤对象
-
Mybatis源码解析之事务管理
目录 Mybatis事务管理 和Spring整合后的事务管理 Mybatis事务管理 我们可以在mybatis-config.xml中配置事务管理器的实现 <transactionManager type="JDBC"/> 当值为JDBC时,事务管理实现类为JdbcTransaction,底层利用数据库的Connection来管理事务 当值为MANAGED时,事务管理实现类为ManagedTransactionFactory,但它对事务的管理是一个空实现,将事务管理交给外部
随机推荐
- Mint UI 基于 Vue.js 移动端组件库
- Angular模板表单校验方法详解
- js querySelector() 使用方法
- Android屏蔽软键盘自动弹出的解决方案
- Nginx中虚拟主机与指定访问路径的设置方法讲解
- ASP.NET微信公众号查看粉丝信息接口
- android错误 aapt.exe已停止工作的解决方法
- zf框架的zend_cache缓存使用方法(zend框架)
- php查看网页源代码的方法
- php批量更改数据库表前缀实现方法
- js confirm()方法的使用方法实例
- Android IPC机制利用Messenger实现跨进程通信
- 纯js实现瀑布流展现照片(自动适应窗口大小)
- Ruby在cmd下中文显示乱码以及不支持OpenSSL的问题解决
- Oracle存储过程循环语法实例分析
- C# Winform 调用系统接口操作 INI 配置文件的代码
- jquery滚动特效集锦
- js控住DOM实现发布微博效果
- JS对象是否拥有某属性如何判断
- 使用Java编写控制JDBC连接、执行及关闭的工具类