作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嗨,我一直在尝试通过 java 将字符串插入到 sqlite 数据库中。但是我在值sql语句中传递的字符串参数中有引号作为内容。我认为这就是我收到的错误,为什么它没有插入数据库。有没有办法绕过插入语句中的引号。谢谢。
这是代码:
public void addNote(String topicadd, String contentadd) throws Exception
{
try
{
getConnection();
statement = conn.createStatement();
statement.executeUpdate("insert into tbl_notes (notes_topic, notes_content) values ('" + topicadd + "', '" + contentadd +"')");
System.out.println("inserted note");
}
catch (Exception m)
{`enter code here`
System.out.println("error insert topic");
System.out.println(m.getMessage());
}
}
这是一个很长的参数...这都在 contentadd 中
import java.sql.*;
Resultset rset = null; (this has no new ResultSet() initialization)
Connection conn = null; (this has no new initialization too...)
Statement statement = null; (this has now new initialization)
always.....
try
{
}
catch (Exception e) <- can switch e for any other alphabet
{
e.getMessage();
System.out.println("error this module"); <- personal practice
throw e;
}
- getting connection
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite:m.db");
*** this is sqlite connection format 'm.db' is the database name
establish connection first..
statement syntax follows:
statement = conn.createStatement();
rset = statement.executeQuery("select * from tbl_notes");
- executeQuery is used for SELECT sql statements
rset = statement.executeUpdate("insert into tbl_notes (ID, status) values
('100', 'status here');
整个文本都在字符串 contentadd 中,我正在制作一个简短的笔记程序...好吧,它不执行插入语句...命令提示符上(文本中的单词)附近的错误... .我正在使用 sqlite...如果您需要更多详细信息,请告诉我。再次感谢您。
最佳答案
使用 PreparedStatement
插入包含特殊字符的值:
getConnection();
PreparedStatement statement = conn.prepareStatement("insert into tbl_notes (notes_topic, notes_content) values (?, ?)");
statement.setString(1, topicadd);
statement.setString(2, contentadd);
statement.executeUpdate();
如您所见,您可以将参数与 PreparedStatement
一起使用,其中也可以包含引号。
此外,您还可以获得一些针对 SQL 注入(inject)的保护,因为提供给 PreparedStatement
的字符串会相应地进行转义。
关于java - 字符串参数插入语句中的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17480969/
我是一名优秀的程序员,十分优秀!