java在MySQL中向Varchar添加反斜杠
我使用Java和MySQL为一个学校项目创建了这个小测验。现在我的项目运行良好,但作为一个实验,我试图在我的问题中添加图像。问题jFrame直接从名为ques的数据库中获取问题和所有选项,该数据库有8列,最后一列是“path”,即varchar(500)。下面是我添加问题的Java代码:-
try {
Class.forName("java.sql.Driver");
Connection con = (Connection) DriverManager.getConnection(jdbcurl, user, pass);
Statement st = con.createStatement();
ResultSet rt = st.executeQuery("SELECT qno from ques order by qno desc limit 1");
// get last qno primary key
for (; rt.next(); ) {
qno = (Integer) rt.getObject(1); // save qno as int
}
nqno = qno + 1; // create new qno
if (path == null){
String query1 = "insert into ques values (" + nqno + ",'" + question + "','" + ans1 + "','" + ans2 + "','"
+ ans3 + "','" + ans4 + "','" + ca + "',null);"; // ca is correct answer and null is path
Statement st1 = con.createStatement();
st1.executeUpdate(query1);
System.out.println("query : "+query1);
JOptionPane.showMessageDialog(this, "Question added successfully! Without Image");}
else {
String query1 = "insert into ques values (" + nqno + ",'" + question + "','" + ans1 + "','" + ans2 + "','"
+ ans3 + "','" + ans4 + "','" + ca + "','"+path+"');";
System.out.println("query :" +query1);
Statement st1 = con.createStatement();
st1.executeUpdate(query1);
JOptionPane.showMessageDialog(this, "Question added successfully! with image");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Error in code");
已发送查询 查询:插入ques值(12、'123'、'123'、'123'、'123'、'123'、'123'、'F:\javaquick\src\javaquick\About.png'); 好的,没有异常处理。 但是在SQL中,路径是这样保存的:-F:JavaQuizsrcjavaquizAbout。巴布亚新几内亚
数据库会忽略反斜杠。我希望它不要这样做。这样以后我可以在我的问题中调用此链接。爪哇
请。。有什么建议吗
(对不起,我是编程新手,如果这是一个愚蠢的问题,我很抱歉)
# 1 楼答案
见Java Character Escape Code Reference
(或者只是更改路径以使用/斜杠)
# 2 楼答案
用户PreparedStatement代替Statement并设置参数。这将使用所需的转义字符设置正确的字符串
试试看。。抓住例外