2015-12-02 87 views
0

我将字符串特殊字符显示问号(“?”)特殊字符不被保存在数据库中

代码 -

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的 请帮我 在此先感谢

+0

这与Java有什么关系?为你的表显示模式 –

+0

@Scary Wombat当我直接在mysqlbrowser上插入查询时它正确插入,但在java中它不正确插入数据库表中所有字段都是相同的,即varachar(50) –

+0

你使用什么样的特殊字符? – Jain

回答

2

你需要插入databa之前转义特殊字符se

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

下面是如何使用的特殊字符的一些例子:

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

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' 

插入你直接在“”(双引号)中输入r值