全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java中Boolean与字符串或者数字1和0的转换实例

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小时内与您取得联系。