初学者在学android的时候,看到书上的sqlite数据库编程怎么有点复杂。
初学阶段的难点:
建立数据库表字段(field)数据类型(text,interge)选择较多,考虑较多。
在activity中数据更新插入要考虑的约束条件好多
老是访问数据库的数据,每次都要在activity中声明一个cursor并且通过一大堆代码来获取cursor感觉有点繁琐。
对于上述的难点解决方式如下
1.数据类型都用text(除了id编号)
2.在activity中无论插入或更新都只用DB文件中同一个函数实现,并且不需要在activity中考虑任何因素(是否数据表中已经有当前要插入或更新的数据)
3.在DB文件中 写一个返回值为cursor的函数(返回的cursor为常用的cursor)
要知道的一些原理
1) db.update(TABLE_NAME, cv, where, whereValues)如果更新数据失败返回0
2)db.update(TABLE_NAME, cv, where, whereValues)更新表中符合 where=whereValue的所有值
3)假如要查询的值或要更新的值有多个关键字约束,那么可以安如下填写where 跟where
String where = field1+"=? and " + field2 + "=? and " + field3 + "=?"; String[] whereValues = {string1, string2, string3}; //Cursor cursor = db.query(HSTRYBUYTABLE, null, where, whereValues, null, null, null); //db.update(HSTRYBUYTABLE, cv, where, whereValues);
4)return db.insert(HSTRYBUYTABLE, null, cv)只要调用就会在数据库中插入数据
方案:
1)构建数据库表时请默认“自动编号”,并且其他字段数据类型都用text,(java中string类型容易转换成其他数据类型)
public void onCreate(SQLiteDatabase db) { String sql = "create table "+YOUTABLENAME+" (" +TABLE_ID+" integer primary key autoincrement, " +TABLE_FIELD1+" text, " +TABLE_FIELD2+" text, " +TABLE_FIELD3+" text, " +TABLE_FIELD4+" text )"; db.execSQL(sql); }
2)在HelpDB中写个如下函数替代insrtDB 跟 updataDB,以后在其他地方直接拿来用就是了,别想那么多,直接能用这个函数关键是update函数中的where语句写的正确恰当(这里的正确看工程需求)。
public int operateHProduct(String string1, String string2, Product string3){ int i = 0; if(updateHProduct(string1, string2, string3) == 0 ){//尝试更新数据 i = 1; insertHProduct(string1, string2, string3); } return i; }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库
, string
, 函数
, 更新
, 数据类型
where
傻瓜式数据库、傻瓜式ea编写、高效排序搜索数据库、如何高效的查询数据库、高效嵌入式数据库,以便于您获取更多的相关知识。