S E*_*S E 1 sql blackberry java-me
我正在尝试将我从json服务获得的两个变量与我在应用程序中拥有的数据库进行比较.我试图对其进行硬编码并且有效
Statement st = tmsDB.createStatement(
"SELECT * FROM ObjectTexts WHERE programID ='AAA' AND objName ='BBB'");
Run Code Online (Sandbox Code Playgroud)
但当我试图这样做时
Statement st = tmsDB.createStatement(
"SELECT * FROM ObjectTexts WHERE programID="+ JsonProgramID +"AND objName ="+JsonobjName);
Run Code Online (Sandbox Code Playgroud)
它不起作用.
有任何想法吗?
FROM ObjectTexts WHERE programID='"+ JsonProgramID +"' AND objName =' "+JsonobjName +"'"
Run Code Online (Sandbox Code Playgroud)
如果您观察到硬编码查询,则参数在单引号内,但动态缺少单引号.
在SQL中,所有String/Varchar都应该在单引号内.
注意:这些原始查询非常容易受到SQL注入攻击.
BlackBerry API支持正常的创建,准备,绑定,执行语义:
Statement st = tmsDB.createStatement( "SELECT * FROM ObjectTexts WHERE programID=? AND objName = ?");
st.prepare();
st.bind(1, JasonProgramID);
st.bind(2, JsonobjName);
Cursor c = st.getCursor();
...
Run Code Online (Sandbox Code Playgroud)