mysql有个字段是bit,只存储1和0,是二进制存储,那么在java的dao层如何映射成boolean呢
@Column(name="is_standard")
private boolean isStandard;
public void setIsStandard(boolean isStandard){
this.isStandard = isStandard;
}
public boolean getIsStandard(){
return isStandard;
}
其实就是在底层dao做反射的时候,先判断字段(比如isStandard)的字段类型是否为boolean,如果是,则在查出数据库字段bit is_standard的时候,做转换
private List<T> populateData(ResultSet resultSet, Class<T> clazz) throws Exception {
List<T> dataList = new ArrayList<T>();
List<Field> fieldList = MappingAnnotationUtil.getAllFields(clazz);
ResultSetMetaData rsmd = resultSet.getMetaData();
int columnsCount = rsmd.getColumnCount();
List<String> columnNameList = new ArrayList<String>();
for(int i = 0; i < columnsCount; i++){
columnNameList.add(rsmd.getColumnLabel(i+1).toLowerCase());
}
while (resultSet.next()) {
T bean = clazz.newInstance();
for(Field f : fieldList) {
String columnName = MappingAnnotationUtil.getDBCloumnName(clazz, f).toLowerCase();
if(columnNameList.contains(columnName)) {
Object columnValueObj = null;
Class<?> filedCls = f.getType();
if(filedCls == int.class || filedCls == Integer.class) {
columnValueObj = resultSet.getInt(columnName);
} else if(filedCls == String.class) {
columnValueObj = resultSet.getString(columnName);
} else if(filedCls == boolean.class || filedCls == Boolean.class) {
columnValueObj = resultSet.getBoolean(columnName);
} else if(filedCls == byte.class || filedCls == Byte.class) {
columnValueObj = resultSet.getByte(columnName);
} else if(filedCls == short.class || filedCls == Short.class) {
columnValueObj = resultSet.getShort(columnName);
} else if(filedCls == long.class || filedCls == Long.class) {
columnValueObj = resultSet.getLong(columnName);
} else if(filedCls == float.class || filedCls == Float.class) {
columnValueObj = resultSet.getFloat(columnName);
} else if(filedCls == double.class || filedCls == Double.class) {
columnValueObj = resultSet.getDouble(columnName);
} else if(filedCls == BigDecimal.class) {
columnValueObj = resultSet.getBigDecimal(columnName);
}
else {
columnValueObj = resultSet.getObject(columnName);
}
if (columnValueObj != null) {
Method setterMethod = MappingAnnotationUtil.getSetterMethod(clazz, f);
setterMethod.invoke(bean, new Object[] { columnValueObj });
}
}
}
dataList.add(bean);
}
return dataList;
}
注意这个
else if(filedCls == boolean.class || filedCls == Boolean.class) {
columnValueObj = resultSet.getBoolean(columnName);
}
resultSet.getBoolean(columnName) 就是转换的方法,具体实现为
for (int i = 0; i < trueStrings.length; ++i) {
if (trueStrings[i].equals(stringValue)) {
return type.cast(Boolean.TRUE);
}
}
for (int i = 0; i < falseStrings.length; ++i) {
if (falseStrings[i].equals(stringValue)) {
return type.cast(Boolean.FALSE);
}
}
核心原理就是根据字符串/数字做对比,如果是1,0就返回true/false,其它的直接返回false或抛出异常,字符串如果是[true, yes, y, on, 1]就返回true,如果是[false, no, n, off, 0]就返回false
以上这篇Java中Boolean与字符串或者数字1和0的转换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# Boolean与字符串或者数字转换
# java实现字符串和数字转换工具
# Java字符串数字左右补全0的四种方式
# 你知道Java判断字符串是否为数字的多种方式吗
# java Scanner输入数字、字符串过程解析
# JAVA中字符串如何与整型数字相加
# java实现统计字符串中大写字母
# 小写字母及数字出现次数的方法示例
# JAVA 统计字符串中中文
# 英文
# 数字
# 空格
# 特殊字符的个数
# java字符串转数字及各种数字转字符串的3种方法
# 给大家
# 有个
# 希望能
# 这篇
# 则在
# 抛出
# 小编
# 大家多多
# 就是在
# fieldList
# getAllFields
# ResultSetMetaData
# rsmd
# MappingAnnotationUtil
# Exception
# throws
# clazz
# Field
# ArrayList
# dataList
相关文章:
表情包在线制作网站免费,表情包怎么弄?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
在线教育网站制作平台,山西立德教育官网?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
如何在阿里云部署织梦网站?
企业微网站怎么做,公司网站和公众号有什么区别?
微课制作网站有哪些,微课网怎么进?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
如何在搬瓦工VPS快速搭建网站?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
如何在万网主机上快速搭建网站?
建站之星收费标准详解:套餐费用及年费价格表一览
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
如何快速上传建站程序避免常见错误?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
如何用wdcp快速搭建高效网站?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
实例解析Array和String方法
寿县云建站:智能SEO优化与多行业模板快速上线指南
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
建站VPS能否同时实现高效与安全翻墙?
如何通过智能用户系统一键生成高效建站方案?
如何用腾讯建站主机快速创建免费网站?
*服务器网站为何频现安全漏洞?
如何挑选最适合建站的高性能VPS主机?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
免费视频制作网站,更新又快又好的免费电影网站?
兔展官网 在线制作,怎样制作微信请帖?
如何通过万网虚拟主机快速搭建网站?
婚礼视频制作网站,学习*后期制作的网站有哪些?
h5在线制作网站电脑版下载,h5网页制作软件?
建站之星如何修改网站生成路径?
如何通过老薛主机一键快速建站?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
文字头像制作网站推荐软件,醒图能自动配文字吗?
如何在Tomcat中配置并部署网站项目?
建站之星如何快速生成多端适配网站?
临沂网站制作企业,临沂第三中学官方网站?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
如何通过商城自助建站源码实现零基础高效建站?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
专业商城网站制作公司有哪些,pi商城官网是哪个?
浅谈Javascript中的Label语句
ui设计制作网站有哪些,手机UI设计网址吗?
*请认真填写需求信息,我们会在24小时内与您取得联系。