SQLite在Android程序中的使用方法,SQLite的增删查改方法

Sqlite:

1.一款用来实现本地数据存储的轻量级数据管理工具,是众多用来实现数据库管理的工具之一。

2.Android已经将SQLite的代码功能吸收在它的系统中,我们可以直接在Android程序中使用SQLite的语句来创建数据库,并实现数据库的增删查改

SQLite的简单使用方法:

如何获得一个数据库的class模板,并设定数据库里的数据结构:

自己新建一个类,继承SQLiteOpenHelper,并重写构造方法,oncreate(),onUpgrade()

自定义类的代码实现方法和构造方法的原始模板解析:

public class Database extends SQLiteOpenHelper {
    public Database(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);     //Context      //String name "创建数据库的名字"     //SQLiteDatabase.CursorFactory factory  "在数据库中查找是的光标(相当于数组中的下标)"     // int Version   "数据库的版本信息"  
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
      //在创建数据库的时候调用
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      //每次启动数据库会检测数据库的版本信息,如果版本有变动就会执行此方法
    }
}

用来实现数据库的自定义类的具体代码:

public class Data extends SQLiteOpenHelper

public Data(Context context) {

    //简单起见,直接指定了数据库的名字为DATA,光标信息为null,版本为1    //所以在自定义的类的构造方法中只有Context参数    //在调用父类构造方法的时候,给定固定的参数来简化数据库创建        super(context,"DATA", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {      //创建数据库建构内容的语句,具体解析在下文整理
        db.execSQL("CREATE TABLE user("+                "_id INTEGER PRIMARY KEY AUTOINCREMENT," +
                "name TEXT DEFAULT \"\"," +
                "sex TEXT DEFAULT \"\")");    //以上的语句给出了一个名为user的数据库结构对象,里面包含INTERGER类型的_id信息,并自增    //TEXT数据类型的name    //text数据类型的sex    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      //由于给出了版本参数信息为固定的1,所以不会执行数据库更新操作
    }
}

自己重写了数据库的模板后,如何实现数据库的使用和管理:

1.利用自定义的数据库类来新建一个数据库对象,

2.再通过新建的数据库得到可读的数据库对象和可写的数据库对象,

新建ContentValues对象向获得的可写数据库中添加内容,实现代码:

Private Data data = new Data(this);
private SQLiteDatabase dbWriter = db.getWritableDatabase();
 ContentValues cv = new ContentValues();
 cv.put("name",etName.getText().toString());
 cv.put("sex",etSex.getText().toString());
//insert方法的三个参数的意义分别是:插入数据表的名称,插入数据表的位置信息,插入的对象
 dbWriter.insert("user",null,cv);
//每次使用完数据库之后,记得关闭数据库,类似I/O的关闭 dbWrite.close();

注:位置信息这里填的是null,具体运行方式尚不清楚,但看到这里的时候,有时间去研究一下

通过获得的可读数据库对象,在目标数据库中进行查找的方法实现代码:

SQLiteDatabase DB = db.getReadableDatabase();//新建一个光标对象,指明在“user”数据表中查找,后面的参数是一系列限制条件,//全部为null意味输出所有user中的数据
Cursor c = DB.query("user",null,null,null,null,null,null);//当光标仍然能够向下一行运行的时候,执行数据库的读取操作while (c.moveToNext()){
String name=c.getString(c.getColumnIndex("name"));
String sex=c.getString(c.getColumnIndex("sex"));
Toast.makeText(getApplicationContext(),name+"--"+sex,Toast.LENGTH_SHORT).show();}
时间: 2024-10-13 06:34:23

SQLite在Android程序中的使用方法,SQLite的增删查改方法的相关文章

在Android程序中使用已有的SQLite数据库

已经将这篇文章迁移至 Code问答,你也能够到这里查看这篇文章,请多多关注我的新技术博客CodeWenDa.com 在中文搜索中,没有找到一篇比較好的关于怎样在Android应用中使用自己事先创建好的数据库的文章,于是在谷歌上找到这篇英文文章,依照它的步骤,測试成功.决定把这篇文章大致的翻译一下,想看原文的能够点击这里:http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ .

SQLite在android中的使用,以及常用增删查改的命令代码!

一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl.PHP.Java.C++..Net等,还有ODBC接口,同样比起 Mysql.PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的

6.在MVC中使用泛型仓储模式和依赖注入实现增删查改

原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pattern-and-dep/ 系列目录: Relationship in Entity Framework Using Code First Approach With Fluent API[[使用EF Code-First方式和Fluent API来探讨EF中的关系]] Code First Mig

5.在MVC中使用泛型仓储模式和工作单元来进行增删查改

原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pattern-and-uni/ 系列目录: Relationship in Entity Framework Using Code First Approach With Fluent API[[使用EF Code-First方式和Fluent API来探讨EF中的关系]] Code First Mig

在android程序中调用shell命令与脚本

最近做android的一个功能就是调用shell命令来进行一些系统级别的操作,比如说是关机开机之类的,现在总结一下具体的用法以及遇到的坑(基于我所用到的,没用到的我就不说了) (1) Runtime.getRuntime().exec("ls"); 这是最简单的一种,你输入后就能就会执行ls命令,如果要获得输出的话可以这样写 Process p = Runtime.getRuntime().exec("ls"); String data = null; Buffer

【转】如何在 Android 程序中禁止屏幕旋转和重启Activity

原文网址:http://www.cnblogs.com/bluestorm/p/3665890.html 禁止屏幕随手机旋转变化 有时候我们希望让一个程序的界面始终保持在一个方向,不随手机方向旋转而变化:在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入android:screenOrientation=”landscape” 属性. landscape = 横向portrait = 纵向 避免在转屏时重启Activity android中每次屏幕方向切换时

在Android程序中使用Modbus协议时报 java.net.SocketException: recvfrom failed: ECONNRESET解决办法

最近在开发基本Modbus协议的Android端PLC控制程序,C#版程序没有任何问题,移到JAVA下出现各种问题,其中比较苦恼的是java.net.SocketException: recvfrom failed: ECONNRESET错误. 开始我的解决方法是每次向PLC发送一条数据后关掉socket,但是这样做太极端了. 经过分析发现是由于发送的数据包大小我设定为256,当写入1个寄存器值时,Modbus服务端直接报错,关掉了socket连接,将发送的数据包大小改成实际的大小后解决问题.

Android程序中Acticity间传递数据

在Android开发过程中,在不同的Acitivity之间传递数据的情况是非常常见的.我花费了一点时间来总结Acitivity之间的数据传递,记录下来. 1.简单传递键值对 这种传递方式非常简单,只需要在构造Intent加入相应的键值对. 在ActivityA中,调用Intent的代码如下: 1 Intent i = new Intent(ActivityA.this,ActivityB.class); 2 i.putExtra("name", "Finlay Liu&quo

Android程序中Web页面和NativeCode交互

首先应该在AndroidManifest.xml把下面这个加上使得具有网络访问权限 <uses-permission android:name="android.permission.INTERNET"/> 然后在布局文件上插入WebView main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http:/