jdbc中mySQL语句单双引号_JDBC: 执行MySQL语句时,bit类型的数值在java代码中应该怎么表示?...
目录
Window’s Note
记录自己在实际操作中用到的问题以及最后的解决方案
前提描述
注册页面用户填写信息后需要执行insert()方法向数据库中插入新用户的信息,需要插入的用户信息变量在数据库中定义如下:
* mail varchar(255)
* pwd varchar(255)
* isManager bit(1)
* isNormal bit(1)
varchar类型直接对应java中String,bit类型对应java中boolean类型
问题
java中执行插入新用户的语句如下String sql = "INSERT INTO household (mail,pwd,isManager,isNormal) VALUES ('" + mail + "','" + pwd + "'," + false + "," + true + ")";
编译运行报错
Unknown column 'isManger' in 'field list'
尝试修改代码如下依旧报错如上String sql = "INSERT INTO household (mail,pwd,isManager,isNormal) VALUES ('" + mail + "','" + pwd + "','0'," + true + ")";
String sql = "INSERT INTO household (mail,pwd,isManager,isNormal) VALUES ('" + mail + "','" + pwd + "',0,1)" ;
String sql = "INSERT INTO household (mail, pwd, isManger, isNormal) VALUES ('" + mail + "','" + pwd + "'," + 0 + "," + 1 + ")";
解决问题思路梳理
报错的原因是因为上述几种方式java中变量sql中的isManager的value并不是真正sql可识别的bit类型
首先需要确定SQL中的布尔类型是不是bit
查阅发现MySQL中并不支持布尔类型, MySQL中tinyint(1)是变相的布尔类型, 默认值1, 0 分别对应true, false
修改数据库中isManager和isNormal的类型为tinyint(1)
执行上述几类代码后依旧报相同的错误
乌龙一场
我把sql中isManager写成了isManger, 大家还是要养成细心看报错的习惯啊
后续(值得小白一看)
把SQL中isManager和isNormal的数值类型修改为tinyint(1)后,sql中赋值’0’, 0和false都可以成功插入数据,且结果一致,具体java代码和数据库中如下:
String sql0 = "INSERT INTO household (mail,pwd,isManager,isNormal) VALUES ('testUser1','test',0,1)" ;
String sql0 = "INSERT INTO household (mail,pwd,isManager,isNormal) VALUES ('testUser2','test'," + 0 + "," + 1 + ")";
String sql0 = "INSERT INTO household (mail,pwd,isManager,isNormal) VALUES ('testUser3','test','0','1')" ;
String sql0 = "INSERT INTO household (mail,pwd,isManager,isNormal) VALUES ('testUser4','test',false,true)" ;
String sql0 = "INSERT INTO household (mail,pwd,isManager,isNormal) VALUES ('testUser5','test'," + false + "," + true + ")";
数据库中结果如下
id
pwd
isManager
isNormal
1
testUser1
test
0
1
2
testUser2
test
0
1
3
testUser3
test
0
1
4
testUser4
test
0
1
5
testUser5
test
0
1
注意执行以下代码会报错,因为传入的类型变为了varcharString sql0 = "INSERT INTO household (mail,pwd,isManager,isNormal) VALUES ('testUser4','test','false','true')" ;
jdbc中mySQL语句单双引号_JDBC: 执行MySQL语句时,bit类型的数值在java代码中应该怎么表示?...相关推荐
- 解决稻香老农无组件上传类在文件上传时当文件名中含中文单双引号取不到正确的文件名的方案
今天完成了对稻香老农的最新版本无组件上传类V2.1的修改. 解决了文件上传时当文件名中含中文单双引号取不到正确的文件名的问题. 参考了无惧上传类,在此感谢稻香老农和梁无惧两位老师,谢谢他们无偿的奉献了 ...
- linux调用函数和case,Shell篇(3)-单双引号 ,函数及case语句用法
一 . 单引号和双引号 1.单引号和双引号两者之间的作用和区别: 单引号('') : 单引号中的所有字符均作为普通字符处理 , 即原样输出 , 无法调用变量的值 . 双引号("") ...
- js中,转义单双引号
(1)针对双引号""的使用: html= "<a href=\"javascript:void(0)\" οnclick=\"getS ...
- mysql无法识别双引号_sqlite3迁移mysql问题集合攻略
简述 适合阅读对象:移动开发 sqlite3数据迁移到mysql会遇到许多语法问题,想要一下列出所有问题会力所不及,本文会尽量多的列出可能会遇到的问题,因为每个人遇到的问题都不一样.读者根据此文可以提 ...
- Linux单双引号嵌套引发的小问题
单双引号如何嵌套使用 最近有个小需求需要统计下ES中的文本结果,编辑和未编辑文本的占比,由于直接统计ES中的结果,这里直接写了个DSL查询脚本,初版脚本如下 curl -XGET 127.0.0.1: ...
- c语言中常量单双引号,C语言常量中字元与字串 除了单引号与双引号的区别外,还有什么不同。...
C语言常量中字元与字串 除了单引号与双引号的区别外,还有什么不同.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言 ...
- java sql 引号_java拼接sql语句里的单双引号
一.场景描述 平时在用字符串拼接sql语句的时候,有没有遇到过下面的情况: 没错,就是单双引号问题.其实,关于双引号我们是容易理解的,sql语句是用String字符串拼接的,因此需要用到双引号.但是为 ...
- python笔记22-literal_eval函数处理返回json中的单双引号
前言 在做接口测试的时候,最常见的接口返回数据就是json类型,json类型数据实际上就是字串,通常标准的json格式是可以转化成python里面的对应的数据类型的 有时候开发返回的数据比较坑,不按常 ...
- 【php基础入门】运算符、流程控制语句及单双引号区别和模块化编程的使用详解
目录 字符串的单引号和双引号区别 PHP 运算符 算数运算符 字符运算符 关系运算符 逻辑运算符 赋值运算符 错误抑制符 三元运算符 PHP 流程控制 分支语句 循环语句 模块化编程 今日相关函数 今 ...
最新文章
- arcgis server 开发
- 【怎样写代码】对象克隆 -- 原型模式(三):原型模式
- vijos 1512 SuperBrother打鼹鼠
- 如何在Vim中用换行符替换字符
- 更新版PowerBI发布了-- Power BI Report Server Update – March 2018
- 使用 Eclipse 调试 Java 程序的 10 个技巧
- java学习笔记8--接口总结
- ubuntu部署git
- js读取外部json指定字段值完整代码_前端工程化 剖析npm的包管理机制(完整版)...
- python爬虫scrapy连接mongodb_爬虫框架scrapy和数据库MongoDB的结合使用(二)实战
- html实现手机显示效果,手机端分类页面的效果图实现
- C语言:指向指针的指针
- ExecuteReader在执行有输出参数的存储过程时拿不到输出参数
- 计算机黑屏但是有鼠标,电脑黑屏有鼠标箭头怎么办
- matlab simulink汽车巡航时的速度模糊pid控制
- 计算机图形图像设计构图的基本形式,构图一学就会!构图基本形式只有四种
- java 对象给对象赋值为空_Java对象不使用时赋值null的意义详解
- 华为手机安装APK提示“该安装包未包含任何证书”
- 什么原因导致了儿童自闭症?跟父母养育有关吗?
- 微信小程序----布局适配与物理逻辑像素