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. Object-C类目(Category)

    类目是Object-C中最有用的一个特性.实质上,类目允许你为一个已存在的类添加一些方法而不用子类化该类,也不需要你了解该类的实现细节. 这是特别有用的,因为你可以给一个内建的对象添加方法.当你想在你 ...

  2. iOS 图片按比例压缩,指定大小压缩

    使用系统方法UIImageJPEGRepresentation(UIimage *image,CGFloat quality)进行图片质量压缩,暂且叫参数quality为压缩比吧,取值范围为0-1. ...

  3. fastjson的坑 com.alibaba.fastjson.JSONObject cannot be cast to xxx

    解析json对象时,使用了new TypeReference()对象 fastjson会对解析的对象类型进行缓存   new TypeReference<ResultData>(){}   ...

  4. checkbox 选择一个checkbox,其他checkbox也会选择

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  5. 17_AOP入门准备_Salay案例(利用动态代理)

    [案例分析] 查看Salary: 1.启动日志 2.启动安全性的框架 3.检查权限:如果有查看工资的权限,则查看工资,否则提示"权限不足" [工厂截图] [SalaryManage ...

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

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

  7. centos 忘记 root 密码

    采用单用户维护模式可以重设置新密码 系统重启,按任意键进入如下所示的菜单: 选择“kernel /.....”根据提示,按下 "e" 就能进入grup 编辑模式,此时出现的画面类似 ...

  8. a标签拨打电话、发短信、发邮件

    1.<a href=”tel:xxxx”>拨打电话</a> 2.<a href=”sms:xxxx”>发短信</a> 3.<a href=”mai ...

  9. 《C和指针》章节后编程练习解答参考——第9章

    9.1 #include <stdio.h> #include <ctype.h> #include <string.h> #define N 100 int ma ...

  10. asp.net管道模型

    查了很多资料,终于大概弄懂管道模型(注意并非指定是asp.net范畴)是个什么概念了,其实就是从Unix移植过来的一种概念,也可以说是一种模式吧(只允许一头读,一头写,并且读完了就会自动消失). as ...