mysql boolean转字符串_Java项目中如何将Boolean与字符串进行转换

news/2024/7/24 10:39:53 标签: mysql boolean转字符串

Java项目中如何将Boolean与字符串进行转换

发布时间:2020-11-26 15:55:40

来源:亿速云

阅读:100

作者:Leah

Java项目中如何将Boolean与字符串进行转换?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

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 populateData(ResultSet resultSet, Class clazz) throws Exception {

List dataList = new ArrayList();

List fieldList = MappingAnnotationUtil.getAllFields(clazz);

ResultSetMetaData rsmd = resultSet.getMetaData();

int columnsCount = rsmd.getColumnCount();

List columnNameList = new ArrayList();

for(int i = 0; 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 

if (trueStrings[i].equals(stringValue)) {

return type.cast(Boolean.TRUE);

}

}

for (int i = 0; i 

if (falseStrings[i].equals(stringValue)) {

return type.cast(Boolean.FALSE);

}

}

f6a495840aa5e109aa1e639d60762a5c.png

核心原理就是根据字符串/数字做对比,如果是1,0就返回true/false,其它的直接返回false或抛出异常,字符串如果是[true, yes, y, on, 1]就返回true,如果是[false, no, n, off, 0]就返回false

看完上述内容,你们掌握Java项目中如何将Boolean与字符串进行转换的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!


http://www.niftyadmin.cn/n/887254.html

相关文章

mysql问题分析工具_mysql数据库 使用分析工具 进行慢查询分析

优化sql语句步骤:1.发现问题2.分析执行计划3.优化索引4.改写sql(再达不到优化效果的话 进行数据库分库分表)1.发现问题途径1.用户上报性能问题2.慢查询日志发现问题SQL3.数据库实时监控长时间运行的SQL2.设置MYSQLset global slow_query_log on/off (慢查询开关)set global sl…

mysql+e+eof_25.第19章 MYSQL数据库

一.mysql数据库基于二进制包一键安装脚本#mysq5.6基于二进制包一键安装脚本#!/bin/bash##********************************************************************#Author: zhanghui#QQ: 19661891#Date: 2021-01-26#FileName: install_mysql5.6.sh#URL: www.neteagl…

mysql 远程过程调用(rpc)协议出现错误 怎么解决_遭遇:“传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确” 错误...

http://www.cnblogs.com/delphinet/archive/2010/03/09/1681777.html正在写一个类似文章的发表系统。其中记录文章内容的字段Contents设计为varchar(Max)类型。其中在DAL层调用存储过程来插入数据的参数SqlParameter[] parameters {new SqlParameter("Contents", Sq…

Vue mixins(混合)的理解,有哪些应用场景?源码分析

一、mixin是什么 Mixin是面向对象程序设计语言中的类,提供了方法的实现。其他类可以访问mixin类的方法而不必成为其子类。 Mixin类通常作为功能模块使用,在需要该功能时“混入”,有利于代码复用又避免了多继承的复杂。 Vue中的mixin 先来…

在MySQL中怎么进行多表删除_MySQL中多表删除方法

如果您是才接触MySQL的新人,那么MySQL中多表删除是您一定需要掌握的,下面就将为详细介绍MySQL中多表删除的方法,供您参考,希望对你学习掌握MySQL中多表删除能有所帮助。1、从MySQL数据表t1中把那些id值在数据表t2里有匹配的记录全…

vue插槽之slots

插槽slot&#xff1a;本质就是向组件传递一个DOM。 index.html&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.panel{border: 1px solid #ececec;}.…

DOM知识结构

一、编程接口&#xff1a; 可通过 JavaScript &#xff08;以及其他编程语言&#xff09;对 HTML DOM 进行访问。 所有 HTML 元素被定义为对象&#xff0c;而编程接口则是对象方法和对象属性。 方法是您能够执行的动作&#xff08;比如添加或修改元素&#xff09;。 属性是您…

机器人二弟_“可佳二代”机器人好性感

将本文分享到微博:小观众认真观看机器人表演“晨报读者这边走……”5月14日上午&#xff0c;在科大科技周各科普点&#xff0c;300余人的晨报“科技周”探秘团&#xff0c;在各分队志愿者导游带领下&#xff0c;玩转科技周&#xff0c;过足科技瘾。看3D、观天象、看机器人&…