最近研究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),但是这样插到数据库中又报有语法错误,原因是缺少’单引号。真是让人纠结啊,不知道有什么解决的方法没?我连用\去转义单引号都做了,但是还是不行......真的郁闷了。求教....
"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),但是这样插到数据库中又报有语法错误,原因是缺少’单引号。真是让人纠结啊,不知道有什么解决的方法没?我连用\去转义单引号都做了,但是还是不行......真的郁闷了。求教....
可以试试这个!
在 String 中,"''" 表示单引号。QuotedString 可以包含除单引号之外的任意字符;围绕的单引号被移除。UnquotedString 可以包含除单引号和左花括号之外的任意字符。因此,格式化后消息字符串为 "'{0}'" 的字符串可以写作 "'''{'0}''" 或 "'''{0}'''"。
十分感谢虎翼兄!问题已经解决了,就是用两个’’去表示单引号!我刚刚一试用发现没有出错,呵呵,也感谢大家的一些意见!我也不是非用这个format不可,只是想到了这个用法然后又不知道该怎么解决心理不舒服而已~