Androide SQLiteDatabase数据库操作(转)

SQLite可以解析大部分的标准SQL语句:
建表语句:create table 表名(主键名 integer primary key
autoincrement(设置为自增列),其他列名及属性)或(主键名 integer primary key
)SQLite数据库中将所有声明为“integer primary key”的列自动识别为自增列。

查询语句:select * from 表名 where 条件子句 group by 分组子句 having…order by 排序子句
DESC(降序)(ASC 升序)。

分页语句:select * from 表名 limit 记录数 offset 开始位置

或者 select * from 表名 limit 开始位置,记录数

插入语句:insert into 表名(字段列表) values (值列表)

更新语句:update 表名 set 字段名=值 where 条件子句

删除语句:delete from 表名 where 条件子句

删表语句:drop table if exists 表名

增加字段语句:

alter table 表名 add column 列名 字段类型

修改数据库名称

alter table 表名 rename to 新表名

而为了方便对数据库进行版本管理,建议在开发项目的时候使用SQLiteOpenHelper类,它提供了两个重要的方法,分别是

onCreate(SQLiteDatabase db)——用于初次使用软件时生成数据库,一旦数据库存在则不会调用此方法。函数是在第一次创建数据库的时候执行的,仅仅生成DataBaseHelper对象的时候是不会调用该函数的,而只有当实现DataBaseHelper对象的getReadableDataBase时或者是调用了getWritableDataBase时,如果是第一次创建数据库,那么就一定会调用onCreate()函数

onUpgrade(SQLiteDatabase db,int oldVersion,int
vewVersion)——用于升级软件时更新数据库表结构,如增加表、列字段等操作。

提示一下,在软件升级前,最好对原有数据进行备份,在新表建好后把数据导入新表中。

实现了这两个方法,就可以用他的getWritableDatabase()和getReadableDatabase()来获得数据库。

强调下:当第一次创建数据库时,当实现DataBaseHelper对象的getReadableDataBase时或者是调用了getWritableDataBase时,系统自动调用oncreater()方法(当然程序中也可以调用);

如果用户需要升级数据库表结构,需要主动调用onUpgrade(SQLiteDatabase db,int oldVersion,int
vewVersion),传入一个新的版本的号。

查询操作:在使用SQLite的进行查询时最好用占位符“?”来代替各值,注意直接用?而不是‘?‘。

例如:
SQLiteDatabase
db=databaseHelper.getWritableDatabase();
db.execSQL(“update person set
name=?,age=? where personid=?”,new
Obect{person.getName(),person.getAge(),person.getId()});
execSQL()方法是用来执行除查找语句外的sql语句,查找语句用rawQuery()来执行它会放回一个Cursor。当然,他还提供了封装好的Java类方法供我们操作。具体方法不介绍了,可以直接查看文档中SQLiteDatabase类的用法。

插入操作:

插入一行记录,可以通过三种方式实现:

第一种,封装列-值对,调用 db.insert(table, nullColumnHack,
values)或者db.insertOrThrow(table, nullColumnHack,
values)方法插入,插入成功返回行号,失败时返回-1.

ContentValues values=new
ContentValues();
        values.put(MyHelper.COUNTRY,
"中国");
        values.put(MyHelper.CODE,86);  
        //插入一行数据
        db.insert(MyHelper.TD_NAME,
MyHelper.ID, values);

如果传入的values为空的话,则将插入一行各列指为NULL或0的数据,(如果列是Integer类型,则0,其它类型为NULL)。

第二种,组织SQL语句,使用 db.execSQL(String sql)或 db.execSQL(String sql,Object[]
data)执行,无返回值。

String sql1="insert into
"
          +MyHelper.TD_NAME+"("
          +MyHelper.COUNTRY+","
          +MyHelper.CODE+")values"
          +"(?,789)";
        String[]
data={"Japan"};    
        db.execSQL(sql1,
data);

第三种,使用update(String table, ContentValues values, String whereClause, String[]
whereArgs)

更新行数据,注意WhereClause为update的where条件,不带关键字where:如:

SQLiteDatabase db = this.getWritableDatabase();
  String where =
BOOK_ID + " = ?";
  String[] whereValue = { Integer.toString(id)
};

ContentValues cv = new
ContentValues();
  cv.put(BOOK_NAME,
bookname);
  cv.put(BOOK_AUTHOR,
author);
  db.update(TABLE_NAME, cv, where, whereValue);

时间: 2024-11-23 17:35:52

Androide SQLiteDatabase数据库操作(转)的相关文章

SQLiteDatabase数据库操作详解

今天花了点时间总结了一下数据的相关知识android中系统自带的数据库SQLiteDatabase数据库,这种数据库操作起来比ormLite数据库(第三方的)麻烦点,但是我对这种数据库操作比较熟悉所以我就采用了这种数据库,如有错误欢迎大家批评指正,谢谢 1.SQLiteDatabase SQLiteDatabase本身是一个数据库的操作类,但是如果想进行数据库的操作,还需要android.database.sqlite.SQLiteOpenHelper类的帮助,在执行SQL语句时execSQL(

Android打造属于自己的数据库操作类。

1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要去做增删改查的操作的时候,就得通过getWritableDatabase获取一个SQLiteDataBase然后老老实实去写操作值的put以及查询返回的Cursor处理,其实我们可以搞一个对象来帮我们干这些事情,打造属于你自己的数据库操作类. 2.操作类的初显形 假设现在我们什么都没有,我们要去搞一

SQLite数据库操作

安卓中创建数据库的步骤: 1.写一个类MyOpenHelper继承SQLiteOpenHelper类 2.覆写其中的OnCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 3.创建数据库: MyOpenHelper helper = new MyOpenHelper(this); //创建数据库 需要调用 getReadableDatabase 或 getWritableDa

android中的数据库操作(转)

android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   android中采用的数据库是SQLite这个轻量级的嵌入式开源数据库,它是用c语言构建的.相关简介可以从链接查看. 2.数据库基本知识观花   对于一些和我一样还没有真正系统学习数据库技术的同学来说,把SQL92标准中的一些基本概念.基本语句快速的了解一下,是很有必要的,这样待会用Android的da

Android学习--------实现增删改查数据库操作以及实现类似微信好友对话管理操作

最近的一个实验用到东西挺多,特地总结一下. 要求功能: 1.第一个页面添加歌曲名和歌手,跳到第二个页面列表显示所有记录,使用sqlite数据库 2.对于第二个页面显示的信息可以进行删除和修改操作,并自动刷新 最后我做的效果: 长按列表项弹出单个管理的菜单,像微信好友对话管理一样. 删除时可以直接删除这一条并在列表中直接显示,更新时弹出对话框更新内容提交后在列表中重新显示. 做此例遇到的困难: 1.菜单获取上下文 2.获取对话框中的内容 3.对话框按钮添加监听事件-----注意包不要导错:impo

跟我学Android之十三 SQLite数据库操作

本章内容 第1节  SQLite数据库概述 第2节  SQLite建库建表 第3节 管理数据库连接 第4节  操作数据库数据 第5节  数据绑定 本章目标 掌握SQLite数据的基本特点与工具使用. 熟练掌握SQLite建库建表的方法. 熟练掌握连接SQLite数据库的方法. 熟悉SQLite数据库的升级与建立方法. 掌握通过数据绑定完成数据显示的方法. SQLite数据库简介 SQLite是一种非常流行的嵌入式数据库,是由C语言编写而成,是一款轻型关系型数据库,支持SQL,支持多种操作系统,完

Android Day02-SQLite数据库操作及ListView详解

一.Android中的数据库的创建和操作 在Android中如果进行大量的具有相同数据结构存储时,需要用到SQLite数据库. 1.SQLite的特点: 1)它是一个轻量级的数据库,其实就是一个文件.当然它的容量有有限的,毕竟是运行在 Android系统中的. 2)它虽然小,但是它功能却十分的强大,操作起来非常简便. 2.SQLite的创建 第1步:创建一个类继承SQLiteOpenHelper类,实现它的2个方法onCreate()和onUpgrade(). public class MyOp

数据库操作 简单汇总

操作封装类 SQLiteDataBaseHelper.java package com.wyj.db; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.content.Context; import android.database.Cursor; import android

Android数据库操作_表格显示

Android数据库操作_表格显示 显示表格布局 完成后效果如下: 首先需要一个主布局文件main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation=&quo