gpt4 book ai didi

java - MySQL中的Varchar添加反斜杠

转载 作者:行者123 更新时间:2023-11-29 06:11:01 25 4
gpt4 key购买 nike

我使用 Java 和 MySQL 为学校项目创建了这个小测验。现在我的项目运行良好,但作为一个实验,我尝试在我的问题中添加图像。 Question 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");

发送的查询是查询:插入查询值(12,'123','123','123','123','123','123','F:\JavaQuiz\src\javaquiz\About.png');一切正常,没有异常处理。但在 SQL 中,路径保存如下:- F:JavaQuizsrcjavaquizAbout.png

数据库省略了反斜杠。我希望它不要这样做。以便稍后我可以在 Question.java 中调用此链接

请问..有什么建议吗?

(很抱歉,我是编程新手,如果这是一个愚蠢的问题,很抱歉)

最佳答案

用PreparedStatement代替Statement并设置参数。这将设置带有所需转义字符的正确字符串。

String query1 = "insert into ques values (?,?,?,?,?,?,?,?)";
PreparedStatement ps=connection.prepareStatement(query1);
ps.setInt(1,nqno);
ps.setString(2,question);
ps.setString(3,ans1);
ps.setString(4,ans2);
ps.setString(5,ans3);
ps.setString(6,ans4);
ps.setString(7,ca);
ps.setString(8,path);
ps.executeUpdate();

并对异常执行 try..catch。

关于java - MySQL中的Varchar添加反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9139864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com