Android 在原始SQL或MLite中传递参数
我有这个SQLAndroid 在原始SQL或MLite中传递参数,android,sql,parameter-passing,ormlite,Android,Sql,Parameter Passing,Ormlite,我有这个SQL select sum(distance) AS distance FROM RoadTravelTableFile where checkBoxBusiness ='1' and plate_Number = 'AAA567'" 我在Ormlite文档中看到了这个简单的原始sql查询 long maxUnits = orderDao.queryRawValue("select max(units) from orders"); 在这个例子中,我像这样编写了我的sql,它可以正
select sum(distance) AS distance FROM RoadTravelTableFile where checkBoxBusiness ='1' and plate_Number = 'AAA567'"
我在Ormlite文档中看到了这个简单的原始sql查询
long maxUnits = orderDao.queryRawValue("select max(units) from orders");
在这个例子中,我像这样编写了我的sql,它可以正常工作
distance = (int) getHelper().getRoadTravelTableFileIntegerDao().queryRawValue("SELECT SUM(distance) FROM RoadTravelTableFile where checkBoxBusiness = '1' and plate_Number ='AAA567' ");
但是我有一个问题,如何将checkBoxBusiness和plate_Number值作为参数?将当前值替换为
?
,并向queryRawValue方法添加参数
Integer checkBoxBusiness = 1;
String plateNumber = "AAA567";
distance = (int) getHelper()
.getRoadTravelTableFileIntegerDao()
.queryRawValue("SELECT SUM(distance) FROM RoadTravelTableFile where checkBoxBusiness = ? and plate_Number = ?", checkBoxBusiness, plateNumber);
这管用!但是我已经读过关于sql注入的文章。。这安全吗@WojciechKoI猜测这根本不安全。通常,参数化(“使用?”)被认为更安全,因为您告诉数据库/驱动程序?严格来说是一个文本值,而不是命令/表达式。@nsandersen谢谢您的评论!4年后,现在我明白了sql注入的含义,我可以说它似乎不会受到sql注入的影响。