相关疑难解决方法(0)

方法设计 - 清晰度或多功能

我在Java和C#中创建了一个允许我执行SQL查询的类,例如我有一个名为Delete的方法,它接受几个参数;

public static int Delete(String table, String column, String operand, Object value)
Run Code Online (Sandbox Code Playgroud)

我将作为Object类型,因为我可能想要删除基于String,Integers或booleans的行,这意味着该方法足够灵活,可以支持不同的类型.然后我通过在Java中使用instanceof测试(或C#中的.GetType),根据它是否为字符串向查询添加其他" ' "字符

原油示例:

if (value instanceof String) 
{   
    System.out.println("It's a String");   
}   
else 
{   
    System.out.println("It's not a String");   
}
Run Code Online (Sandbox Code Playgroud)

在实现类的其余部分时,我开始自己思考前面提到的方法是否是理想的方法,或者我是否应该为特定的数据类型实现其他方法,一个用于容纳String,另一个用于Integer等等.

如果我去实现它,那么它将意味着在逻辑上会有其他方法具有最小的差异,但是每个方法只有一个目的,使它们易于遵循和记录.另一方面,如果我保持原样,那么生成和维护的代码就会少得多,它可以管理任何类型的Delete语句(就数据类型而言),只需要几个if语句确定通过参数传入的对象的类型.

从面向对象/最佳代码实践的角度来看,哪种方法最好?

谢谢你的信息!

c# java sql oop

2
推荐指数
1
解决办法
236
查看次数

使用带有问号 (?) 参数的 sqldb rawQuery

我正在尝试使用 ?s 作为参数来构建我的查询,但它显然有问题。希望文档至少提供一个示例...

SQLDb.rawQuery("SELECT C.?, B.?, B.?, B.? FROM ? C, ? B  WHERE C.? = B.?", new String[] 
               {Tables.CATEGORIES_NAME, Tables.BUDGET_DATE, Tables.BUDGET_VALUE, Tables.KIND, Tables.CATEGORIES, Tables.BUDGET, Tables.CATEGORIES, Tables.TABLE_ID, Tables.TABLE_ID});
Run Code Online (Sandbox Code Playgroud)

那些 const 都是字符串,只是列的名称。我究竟做错了什么?

sqlite android

2
推荐指数
1
解决办法
512
查看次数

标签 统计

android ×1

c# ×1

java ×1

oop ×1

sql ×1

sqlite ×1