特殊字符未保存在数据库中

时间:2015-12-02 07:16:01

标签: java mysql

我正在插入带有特殊字符的字符串,但显示问号("?")

代码 -

  String mainquery = "INSERT INTO thread_pitch_gauge ( nominal_value, ob1, ob2) VALUES(?,?,?)";
                    String n1 = 56°± 116’;
                    String n2 = 56° 16’ 44’’;
                    String n3 = 56° 16’ 45’’;                   
                    ps = (PreparedStatement) connection.prepareStatement(mainquery);
                    ps.setInt(1, n1);
                    ps.setString(2, n2);
                    ps.setString(3, n3);                                    
                    ps.execute();
                     ps.close();
in database value showing like
nominal_value=56°± 116’
ob1=56° 16’ 44’’
ob2=56° 16? 45?;

我的数据库表所有字段类型都是varchar(50) 我在java中遇到这个问题 数据库是mysql 请帮我 提前谢谢

2 个答案:

答案 0 :(得分:2)

在插入数据库之前,您需要转义特殊字符

  

有许多特殊字符需要转义   (受保护),如果要将它们包含在字符串中。这里   是逃避规则的一些基本特征:

以下是一些如何包含特殊字符的示例:

SELECT 'It''s Sunday!' FROM DUAL;
It's Sunday! 

SELECT 'Allo, C\'est moi.' FROM DUAL;
Allo, C'est moi.

SELECT 'Mon\tTue\tWed\tThu\tFri' FROM DUAL;
   Mon   Tue     Wed     Thu     Fri

http://dba.fyicenter.com/faq/mysql/Escape-Special-Character.html

答案 1 :(得分:0)

INSERT INTO gauges (degreeValue,degreeValue1,degreeValue2) VALUES("56° 16’ 44’","56° 16’ 45’","56° 16’ 46'");

SELECT * FROM gauges;

结果:

56° 16’ 44’ 
56° 16’ 45’ 
56° 16’ 46'

将您的值插入"" (双引号)直接