Android 在原始SQL或MLite中传递参数

Android 在原始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,它可以正

我有这个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注入的影响。