android中傻瓜式建立数据库及高效数据库操作代码的编写

初学者在学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编写、高效排序搜索数据库、如何高效的查询数据库、高效嵌入式数据库,以便于您获取更多的相关知识。

时间: 2024-12-11 05:03:06

android中傻瓜式建立数据库及高效数据库操作代码的编写的相关文章

android java 回调-关于android中的回调机制 求大神帮忙看看代码

问题描述 关于android中的回调机制 求大神帮忙看看代码 boss 叫我写一个sdk 然后里面得实现回调 还给了我个demo 说回调机制和这个demo 一样 大概就是从A客户端发出一个数据 然后我这边接受 接受和执行一个事件 然后再回调给C public class DemoActivity extends Activity { private InputInterceptor input; @Override protected void onCreate(Bundle savedInst

Android中ActionBar和ToolBar添加返回箭头的实例代码

1.ActionBar添加返回箭头 //onCreate方法中 ActionBar actionBar = this.getSupportActionBar(); actionBar.setTitle("搜索功能"); actionBar.setDisplayHomeAsUpEnabled(true); //activity类中的方法 @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getI

Android中imageView图片放大缩小及旋转功能示例代码

一.简介 二.方法 1)设置图片放大缩小效果 第一步:将<ImageView>标签中的android:scaleType设置为"fitCenter" android:scaleType="fitCenter" 第二步:获取屏幕的宽度 DisplayMetrics dm=new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); dm.widthPixels 第三

傻瓜式用Eclipse连接MySQL数据库_Mysql

本来不想写这么简单人文章,在百度上搜索我这个标题,完全符合标题的一大堆.但我按照那些文章捣鼓了很久,就是不行. 我的环境:MySQL:mysql-essential-5.1.51-win32 jdbc驱动 Eclipse:任意版本,免费的,可以百度的到. 1.MySQL安装,不会的朋友可以看这里的图文讲解http://www.jb51.net/article/23876.htm,很详细. 下面来创建一个数据: mysql>CREATE DATABASE test; //创建一个数据库 mysql

Android中文件读写(输入流和输出流)操作小结_Android

1. Android中文件读写的原理: (1).所有文件的储存都是字节的储存. (2).在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘. (3).在读取文件(特别是文本文件)时,也是一个字节一个字节的读取以形成字节序列. 2. 字节流和字符流的区别: (1).字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,字符流就可以. (2).字节流转换成字符流可以用InputStreamReader,OutputStreamWriter. 一般我们在

Android中给按钮同时设置背景和圆角示例代码_Android

前言 最近在做按钮的时候遇到在给按钮设置一张图片作为背景的同时还要自己定义圆角,最简单的做法就是直接切张圆角图作为按钮就可以了,但是如果不这样该怎么办呢,看代码: 下面来看效果图 一.先建一个圆角的shape文件: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android">

Android中文件读写(输入流和输出流)操作小结

1. Android中文件读写的原理: (1).所有文件的储存都是字节的储存. (2).在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘. (3).在读取文件(特别是文本文件)时,也是一个字节一个字节的读取以形成字节序列. 2. 字节流和字符流的区别: (1).字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,字符流就可以. (2).字节流转换成字符流可以用InputStreamReader,OutputStreamWriter. 一般我们在

Android中给按钮同时设置背景和圆角示例代码

前言 最近在做按钮的时候遇到在给按钮设置一张图片作为背景的同时还要自己定义圆角,最简单的做法就是直接切张圆角图作为按钮就可以了,但是如果不这样该怎么办呢,看代码: 下面来看效果图 一.先建一个圆角的shape文件: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android">

Android中实现基本的短信拦截功能的代码示例_Android

要点 1.在Manifest.xml里加"接收"SMS的权限 <uses-permission Android:name="android.permission.RECEIVE_SMS"></uses-permission> 2.在Manifest.xml里注册一个receive <!-- 注册Receiver,并且设置优先级 --> <receiver android:name=".AutoSMS" a