android的四大组件中就有Content Provider,对其他应用,提供自己的数据,所以,一般情况下,android应用不需要提供content provider。

  1.  简单的数据库表单字段声明:

   MySqlName.java

    

        public static final int VERSION = 1;

    public static final String DBNAME = "mydb";     

        /*
* 联系人详情数据库
*/
public class Contacts{
public static final String TableName="contacts"; public static final String Id="cId";//联系人的uri public static final String Number="number"; public static final String Name="name";
}

一般一张表,写一个内部类,内部类的变量是数据库中的列。这个文件写成这样子就可以了。

  2. 创建数据库

  MySql.java

  

public class Mysql extends SQLiteOpenHelper{

public Mysql(Context context) {
super(context,Mysqlname.DBNAME, null, Mysqlname.VERSION); } @Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
/*
* 创建人员表单
*/
db.execSQL("create table "+Mysqlname.Contacts.TableName+"(" + Mysqlname.Contacts.Id+" integer primary key autoincrement not null,"+ Mysqlname.Contacts.Number+" text ," + Mysqlname.Contacts.Name+" text );"
  
        );
}
}

这样,在这个数据库创建就完成了,但是除了创建工作,还需要对外提供一些方法;

  3.  操作

  • 查询 
SQLiteDatabase db = this.getWritableDatabase();
Cursor cr =db.query(Mysqlname.Contact.TableName, null, Mysqlname.Contact.Id+"=?", new String[]{id}, null, null, null);

如果需要使用这个cr的内的值,需要:

if(cr!=null&&cr.getCount()>0&&cr.moveToFirst()){
String name = cr.getString(cr.getColumnIndex(Mysqlname.Contact.Name));
}

这里必须要movetofirst,不然会报错。

  • 插入
db.insert(Mysqlname.Contact.TableName, Mysqlname..Contact.ID, values)
  • 删除
db.delete(Mysqlname.Contact.TableName, Mysqlname.Contact.Id+"=? and "+Mysqlname.Contact.NAME+"=?", new String[]{id,name});
  • 修改
db.update(Mysqlname.Contact.TableName, values, Mysqlname.Contact.Id+"=?", new String[]{id})

注意,以上的db ,Cursor,在使用完毕后,必须及时调用db.close(),cr.close();

使用事务进行批量操作:

db.beginTransaction();

String deleteContactSql = "DELETE from "+ Mysqlname.Contact.TableName+ " where "
+ Mysqlname.Contact.ContactId+ "='"+num+"';";
SQLiteStatement deleteContact = db.compileStatement(deleteContactSql);
deleteContact.executeUpdateDelete(); db.setTransactionSuccessful();
db.endTransaction();

android基本的数据库创建和使用的更多相关文章

  1. Android入门(十)SQLite创建升级数据库

    原文链接:http://www.orlion.ga/603/ 一.创建数据库 Android为了让我们能够更加方便地管理数据库,专门提供了一个 SQLiteOpenHelper帮助类, 借助这个类就可 ...

  2. Android(java)学习笔记245:ContentProvider使用(银行数据库创建和增删改查的案例)

    1. Android的四大组件: (1)Activity  用户交互的UI界面 (2)Service  后台运行的服务 (3)BroadcastReceiver 广播接收者 (4)ContentPro ...

  3. Android SQLiteOpenHelper Sqlite数据库的创建与打开

    Android Sqlite数据库是一个怎样的数据库? 答:是一种嵌入式小型设备,移动设备,的数据库,应用在穿戴设备(例如:智能手表,计算手环 等等),移动设备(例如:Android系统类型的手机 等 ...

  4. 【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建

    数据库的创建和sql语句增删改查 1. 载入驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, nam ...

  5. Android(java)学习笔记189:ContentProvider使用(银行数据库创建和增删改查的案例)

    1. Android的四大组件: (1)Activity  用户交互的UI界面 (2)Service  后台运行的服务 (3)BroadcastReceiver 广播接收者 (4)ContentPro ...

  6. Android之SQLite数据库篇

    一.SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大. 二.SQLite的特点 1.轻量级使用 SQLit ...

  7. Android中SQLite数据库小计

    2016-03-16 Android数据库支持 本文节选并翻译<Enterprise Android - Programing Android Database Applications for ...

  8. Android之SqlLite数据库使用

    每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的.与操作系统无关的SQL数据库—SQLite.SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据 ...

  9. 我的Android六章:Android中SQLite数据库操作

    今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...

随机推荐

  1. 学习笔记_Java_day14—编码实战___一个注册页面的完整流程

  2. 时间处理总结(二)oracle

    不断总结中................. 1.等于land.djsj=to_date('2016/7/26','yyyy-MM-dd')2.大于等于land.djsj>=to_date('2 ...

  3. Redis单机版以及集群版的安装搭建以及使用

    1,redis单机版 1.1   安装redis n  版本说明 本教程使用redis3.0版本.3.0版本主要增加了redis集群功能. 安装的前提条件: 需要安装gcc:yum install g ...

  4. (转)IOS内存管理 retain release

    obj-c本质就是"改进过的c语言",大家都知道c语言是没有垃圾回收(GC)机制的(注:虽然obj-c2.0后来增加了GC功能,但是在iphone上不能用,因此对于iOS平台的程序 ...

  5. 简单的doc命令

    cd 切换目录 dir 显示目录列表 mkdir 创建目录(mkdir) rmdir 删除空目录(rmdir test) rmdir  /s 删除非空目录(rmdir test /s) echo 创建 ...

  6. make makefile

    Gcc的编译流程预处理阶段: gcc –E hello.c –o hello.i编译阶段: gcc –S hello.i –o hello.s汇编阶段:gcc –c hello.s –o hello. ...

  7. nodejs -mysql模块链接数据库创建库创建表单。

    var mysql = require('mysql'); var connection= mysql.createConnection({ host:'localhost', user:'root' ...

  8. DevExpress 控件使用之BarManager

    DevExpress 开发的控件有很强的实力,不仅功能丰富,应用简便,而且界面华丽,更可方便定制.对于编程人员来说是个不错的选择.它的菜单栏控件更具代表,完全可以替代开发环境提供的基本控件,而让您编写 ...

  9. sae后台管理的js(二)

    jsloader cssloader 使用方法<link rel="stylesheet" type="text/css" href="/min ...

  10. c#反射机制判断同一个类的两个实例的值是否完全一样

    ; i < properties1.Length; i++)            {                string s = properties1[i].DeclaringTyp ...