db操作的一些坑

随便写下记录下

1.jdbctemplate查询时,如果数据库中的类型为tinyint,

对应的bean为Boolean,是可以正常映射的,jdbctemplate默认对tinyint映射为Boolean,会被当作boolean类型返回。

在项目中需要注意,很多时候我们将数据库中的字段设置为tinyint作为枚举,但原生jdbctemplate进行操作时,tinyint类型的字段的值如果为0,使用jdbctemplate查询时,返回的是false,为1则为true。

解决方案:可以自己重写RowMapper,在返回的数据进行Mapper匹配时,判断如果是TINYINT类型,就作特殊处理。 也可以在jdbc url后面添加了?tinyInt1isBit=false,问题解决

2.mybatis查询时,如果查询结果是一个List,Map,Set这种集合类型,会想进行创建,如果是普通对象类型则不会。所以当查询结果为集合时,不能用 == null判断是否有匹配数据而应该使用size == 0判断

猜你喜欢

转载自blog.csdn.net/leaves_story/article/details/88912237