跪求高手帮忙!!!

JAVAERAL 2011-05-13 12:03:14
最近研究JDBC,发现里面插入的语句十分复杂,让人很纠结...然后寻找替代方法,找到了个MessageFormat.format( a ,b)的方法。然后问题就来了:我想向数据库中插入一条语句,是从控制台接收变量插入,如例:String sql=MessageFormat.format(
"insert table1 vales('{0}','{1}',{2})",loginid,pwd,sid);其中loginid和pwd都是String型,sid是int型。我发现这样就用不了这个简单的方法,很纠结。因为这样sql输出的是 insert table1 values({0},{1},3)...如果前面不用’单引号引起来,就是insert table1 values(superadmin,sa123,3),但是这样插到数据库中又报有语法错误,原因是缺少’单引号。真是让人纠结啊,不知道有什么解决的方法没?我连用\去转义单引号都做了,但是还是不行......真的郁闷了。求教....
...全文
120 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
new_bird_0001 2011-05-13
  • 打赏
  • 举报
回复
用占位符的方法比用format格式化好,用format每次出来的sql语句都不一定相同,造成数据库多次编译sql语句,降低了sql语句的运行速度,增加了服务器负担,而占位符的sql语句在数据库中只有一条语句,所以只编译一次,所以尽量用占位符而不是format。要好写可以用hibernate框架。
JAVAERAL 2011-05-13
  • 打赏
  • 举报
回复
补充:我还知道一个用?问号做占位符的方法,但是我不喜欢那样,我就想像C#里那样的用format方法,不知道是否有解决办法?!
虎翼 2011-05-13
  • 打赏
  • 举报
回复
MessageFormat.format("insert into table1 vales(''{0}'',''{1}'',{2})",loginid,pwd,sid);

其他信息
在 String 中,"''" 表示单引号。QuotedString 可以包含除单引号之外的任意字符;围绕的单引号被移除。UnquotedString 可以包含除单引号和左花括号之外的任意字符。因此,格式化后消息字符串为 "'{0}'" 的字符串可以写作 "'''{'0}''" 或 "'''{0}'''"。

tianyu945473925 2011-05-13
  • 打赏
  • 举报
回复
不懂,没试过,等待楼主的解决方案……
zn85600301 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 javaeral 的回复:]

补充:我还知道一个用?问号做占位符的方法,但是我不喜欢那样,我就想像C#里那样的用format方法,不知道是否有解决办法?!
[/Quote]

不是个轮子 都能往车上装~
哈哈哈3234 2011-05-13
  • 打赏
  • 举报
回复
lz 加油,没有做不到的事,只有想不到的问题,既然你想到这个问题,肯定就能搞定!
茫茫大海 2011-05-13
  • 打赏
  • 举报
回复
"insert table1 vales(char(39){0}char(39),char(39){1}char(39),char(39){2}char(39))",loginid,pwd,sid);
可以试试这个!
JAVAERAL 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wsdst497 的回复:]

MessageFormat.format("insert into table1 vales(''{0}'',''{1}'',{2})",loginid,pwd,sid);

其他信息
在 String 中,"''" 表示单引号。QuotedString 可以包含除单引号之外的任意字符;围绕的单引号被移除。UnquotedString 可以包含除单引号和左花括号之外的任意字符。因此,格式化……
[/Quote]

十分感谢虎翼兄!问题已经解决了,就是用两个’’去表示单引号!我刚刚一试用发现没有出错,呵呵,也感谢大家的一些意见!我也不是非用这个format不可,只是想到了这个用法然后又不知道该怎么解决心理不舒服而已~
更多项目进度详情分享:智能小车开源项目文章汇总 我们为什么要做这件事? 困境:“跪求指点”的菜鸟一年比一年多,有空搭理菜鸟的大神一年比一年少。 原因:很多时候不是大神不肯帮忙,而是各种零散、离奇、重复的问题,浇灭了他们“扶弱济贫”的心。 对策:电路城团队深谙两方的急迫和苦衷,作为一个技术交流平台应有的责任,于是有了《来实战》的栏目构想,即每期选定一个富有启发性和趣味性的开源项目,由硬件设计大神带队,引领一批自愿报名加入的同道爱好者,从项目分析、思路梳理开始,逐步完成动手实践、项目调试,直到最后的完美再现和更进一步的功能升级。我们期望,今天的新手菜鸟,能用自己的勤勉好学,得到大神更多的关注和指导,更快加入硬件高手的行列;我们也期望,受益于这个项目的人们,也将更愿意帮助那些陷入迷茫的曾经的自己。 支持:电路城的美国兄弟工程师交流平台hackaday(www.hackaday.com)和摩尔吧视频平台(https://www.moore8.com/)... 关于开源项目,我们计划这样来操作: 1.对标摩尔吧中的中相关主题智能小车项目(基于恩智浦平台智能汽车),我们这次用基于意法半导体的STM32平台来打造多功能智能小车,最终实物性能如何?基于意法半导体平台的智能小车PK恩智浦智能小车,谁更胜一筹?电路城开源项目组现在开始就通过逐步实操并最终打造出来,最后实物演示操作对比。此外,我们将预留资源,增加创意点的功能:红外或者超声波避障、摄像头、激光测距、舵机等等(到时根据实际进度会有一定取舍调整)。 2.项目更新进度:每两天在《来实战》栏目上更新设计进度内容,在工程没有实质性进度的时候也可以在论坛发帖分享进行实施困难点、设计技术难点和原理讲解及器件分析等。 3.建立对应项目讨论群。利用现有已建立的技术Q群资源,我们在做每一个不同主题方向的项目时,为方便讨论同时活跃Q群用户,欢迎更多志同道合的小伙伴加进来参加开源项目讨论或给我们提供建议。 4.采购设计工具 工具:电焊台(刀头、尖头)、焊锡丝、吸锡器、助焊膏、烙铁架子带夹子、松香、热熔胶枪、螺丝刀、万用表、剪钳、镊子、钳子、海绵、美工刀、元器件收纳盒、手持钻孔机等等,以后可以慢慢完善。示波器以及信号源、多功能电源。 元器件及材料:采购电子元器件以及打板。 5.我们会定期举办开源项目直播交流,或制作一些项目设计过程中的小视频,在项目交流群中与大家分享,感兴趣的小伙伴马上加入我们吧。 6.建立开源项目贡献者名单荣誉榜,不定期在本开源项目页面更新。项目结束后,对该开源项目贡献突出的小伙伴,我们评选出“开源之星”给予神秘大奖奖励。开源项目贡献者名单会被注明在最终的开源项目方案中。 7.期待更多的志同道合的技术大咖加入我们“开源项目智囊团”,出谋划策,为开源贡献自己应有的力量。 8.这是一个开源项目,项目最终会被分享上传到“电路城-电路方案”频道,供大家免费下载。 智能小车开源项目开发周期 计划2020.3.5~2020.4.30内完成。 项目主要有以下几个阶段(每个阶段我们还会就开发过程中遇到的一些有价值的开发难点或经验教训,以直播的形式在摩尔吧开播,具体主题和时间后期持续更新,感兴趣的小伙伴可以关注下哈~): 第一阶段:设计的要求及技术指标 -硬件系统(确定硬件设计思路,出总体框图,完成主要器件选型及相关资料查找); -软件系统(确定程序流程框图,查看相关示例程序,一般传感器、相关模块会给示例程序); -设计方案介绍(整体设计方案的介绍,以及相关方案的对比); -工作原理介绍及说明(介绍功能参数、方案原理、相关科普); 第二阶段:硬件系统设计 -硬件系统各模块功能介绍(所用到的功能模块、传感器、少见器件学习以及出文章介绍); -原理图、PCB图或仿真图绘制(完成原理图设计,需制作实物还需进行PCB设计); -元器件选型与BOM表(跟据原理图设计同步确定元器件选型,给出具体BOM表); 第三阶段:软件系统设计 -使用单片机资源情况(单片使用资源介绍,完成一些基础的讲解,还有相关芯片器件); -软件系统各模块功能介绍(各功能模块程序设计流程图,程序实现原理); -程序编写及清单(进行总的程序编写,以及初步调试); 第四阶段:实物制作 -焊接(待元器件集齐,打板完成,进行焊接以及相关结构制作,模型安装等); -软件调试; -硬件调试(结合软硬件调试,完成程序修改,确保功能实现,验证硬件部分没有问题); -设计结果分析(测试功能、验证相关参数,有什么不足以及改正,对做的不好的地方留时间补救); -测试过程(完整测试的发表,实测); 第五阶段:项目总结 -完成知识总结等收尾工作; -整理打包完整的开源方案所有资料; -开源项目突出贡献者名单公布及颁发奖品。

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧