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
相关文章:
如何正确选择百度移动适配建站域名?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
大连网站设计制作招聘信息,大连投诉网站有哪些?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
建站之星代理如何获取技术支持?
制作公司内部网站有哪些,内网如何建网站?
如何快速完成中国万网建站详细流程?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
MySQL查询结果复制到新表的方法(更新、插入)
如何制作一个表白网站视频,关于勇敢表白的小标题?
建站之星微信建站一键生成小程序+多端营销系统
西安大型网站制作公司,西安招聘网站最好的是哪个?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
如何高效生成建站之星成品网站源码?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何续费美橙建站之星域名及服务?
全景视频制作网站有哪些,全景图怎么做成网页?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
如何选择靠谱的建站公司加盟品牌?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
Python文件管理规范_工程实践说明【指导】
如何通过建站之星自助学习解决操作问题?
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
做企业网站制作流程,企业网站制作基本流程有哪些?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
音乐网站服务器如何优化API响应速度?
如何在万网自助建站平台快速创建网站?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
西安专业网站制作公司有哪些,陕西省建行官方网站?
如何用好域名打造高点击率的自主建站?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
如何在Windows虚拟主机上快速搭建网站?
c# 服务器GC和工作站GC的区别和设置
建站之星代理平台如何选择最佳方案?
Java解压缩zip - 解压缩多个文件或文件夹实例
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
北京的网站制作公司有哪些,哪个视频网站最好?
定制建站是什么?如何实现个性化需求?
公司网站的制作公司,企业网站制作基本流程有哪些?
*请认真填写需求信息,我们会在24小时内与您取得联系。