我是靠谱客的博主 负责蜡烛,最近开发中收集的这篇文章主要介绍为什么tinyint(1)映射po类中属性时的字段类型为Boolean,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

问题描述:

建表,字段类型 tinyint 长度 1 ,映射为PO类中的字段类型为 Boolean
tinyint(3) --> Byte
tinyint(1) --> Boolean

问题原因:
1.MySQL中无Boolean类型数据;MySQL中将Boolean==》tinyint(1)
2.BOOL, BOOLEAN
These types are synonyms(同义词) for TINYINT(1). A value of zero is considered(认为是) false. Nonzero(不为0) values are considered true
3.Tinyint(1) 就只用来保存 bool 值 只有0和1 不要保存其他的值

如果要保存多的值,就用 Tinyint(4) 这样的,那么到了Ef中这个 类型会变成 sbyte ,这个就是一个整形 .

备注:sbyte:存储8位带符号整数。sbyte中的s代表带符号(signed),意味着变量可为正值或负值。sbyte变量的最小可能值为-128,最大可能值为127。


解决方法:
1.强制修改mapResult中的映射,将po属性的类型由Boolean改为Byte
2.查询 tinyint(1) 的sql 字段时,转为 (status+0) as status
3.避免使用 tinyint(1) 作为字段的数据类型

博文参考:
[url=https://www.cnblogs.com/xiaochaohuashengmi/archive/2011/08/25/2153011.html]关于 MySQL 的 boolean 和 tinyint(1)[/url]
[url=http://blog.csdn.net/yefengzhichen/article/details/50956369]Mysql tinyint长度为1时在java中被转化成boolean型[/url]
[url]http://www.cnblogs.com/joeylee/p/3878223.html[/url]

最后

以上就是负责蜡烛为你收集整理的为什么tinyint(1)映射po类中属性时的字段类型为Boolean的全部内容,希望文章能够帮你解决为什么tinyint(1)映射po类中属性时的字段类型为Boolean所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部