android中利用java反射原理将对象添加到sqlit数据库的万能方法

利用java的反射机制,我们可以得到对象里的方法列表,参数列表以及对应的值,那么我们就可以利用这些做一个万能的插入数据库的方法。


以下方法中表名要和数据库名一致。

 protected void insert(Object ob){
ContentValues initialValues = new ContentValues(); 
Class c = ob.getClass();
String className = c.getName();
String tableName = className.substring(className.toString().lastIndexOf(".")+1);
String deviceName = "";
System.out.println("tableName:"+tableName);
Field[] fields= c.getDeclaredFields();
try {
for(Field f:fields){
f.setAccessible(true);  
String str =f.toString().substring(f.toString().lastIndexOf(".")+1);
Object obj = f.get(ob);
if(str.equals("deviceName"));
if(obj!=null&&!obj.toString().equals("0")){
initialValues.put(str, obj+"");
}
// System.out.println("params:"+str+" value:"+f.get(ob).toString());
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
long ss = db.insert(tableName, null, initialValues);

}

增删该查应该都可以利用发射原理做,这里只做了添加处理。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值