`
119568242
  • 浏览: 431887 次
  • 性别: Icon_minigender_1
  • 来自: 深圳/湛江
社区版块
存档分类
最新评论

Android菜鸟日记10 SQLite 数据库

 
阅读更多
Android菜鸟日记10
SQLite

SQLite
1. 作用:数据库操作
2. 重点:
通过使用SQLiteOpenhelper(数据库助手)来创建数据库。
SQLiteOpenhelper的构造函数有4个参数;
(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
环境、数据库名、不知道、版本号
3. 使用: 
1.首先创建一个集成SQLiteOpenhelper的类。覆写
public void onCreate(SQLiteDatabase db) {第一次获得数据对象时调用 一般用于创建数据表}
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {每次版本(version)更新数据库内容时调用}
public void onOpen(SQLiteDatabase db) {每次打开数据库是调用}
2.在activity使用SQLiteOpenhelper时
MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test3",null,1);
//获得SQLiteOpenhelper对象(自己写的继承SQLiteOpenhelper的对象)。
SQLiteDatabase db=my.getReadableDatabase();
从SQLiteOpenhelper对象获得SQLiteDatabase对象。(第一次获取会调用SQLiteOpenhelper的 onCreate方法)

3.通过获得的SQLiteDatabase对象进行对数据的增删改查。

MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test3");
//test3为数据库名
SQLiteDatabase db=my.getWritableDatabase();
ContentValues c= new ContentValues();
// ContentValues 类似于hashMap的东西,和bundle一样都是键为String。
//用于存储数据 他的键值为值需要放入的列名ContentValues.put(“列名”,值)
//值需要和生成数据表时的值匹配
c.put("id", i);
i++;
c.put("name", "poolo");
Random r= new Random();
c.put("age", r.nextInt(20));
db.insert("poolo", null, c);
//参数:数据表名、为空时补充的值、ContentValues对象
System.out.println("SQLiteActivity======>insert success");


MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test3");
//打开的数据库名 test3
SQLiteDatabase db=my.getWritableDatabase();
ContentValues c= new ContentValues();
db.delete("poolo", "id=?", new String[]{"1"});
//参数:待删除的表名、String型(where后面的字句 不过具体指为?)、匹配?的String数组
System.out.println("SQLiteActivity======>delete success");

MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test3");
SQLiteDatabase db=my.getWritableDatabase();
ContentValues c= new ContentValues();
c.put("name", "awen");
db.update("poolo", c, "id=?", new String[]{"1"});
//参数:待删除的表名、存放待改的内容的ContentValues 、String型(where后面的字句 不过具体指为?)、匹配?的String数组

System.out.println("SQLiteActivity======>update success");


MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test3");
SQLiteDatabase db=my.getReadableDatabase();

Cursor c=db.query("poolo", new String[]{"id","name","age"},null,null, null, null, null);
//这个就复杂了
//数据表名
//需要查询的列名
// String型(where后面的字句 不过具体指为?)
//匹配?的String数组
// String groupBy, 组序
// String having, 不知道
// String orderBy 排序
System.out.println("SQLiteActivity======>update success");
while(c.moveToNext()){
int id= c.getInt(0);
String name =c.getString(1);
int age= c.getInt(2);
System.out.println("sqlquery:id_"+id+",name_"+name+",age_"+age );

补充:
进入android的linux环境的方法[前提模拟器开启状态]
Cmd =>adb shell
可以在对应的包下找到database方法
(具体 cd data cd data cd 包名 cd databases)
到了这里后ls就能看到生成的数据库文件了。

通过 sqlite3 数据库名

就可以进入数据库操作了
.schema
可以查看数据库表的架构

在没有进入数据操作前 可以通过
Rm 文件名
删除文件。







效果:


代码:

SQLiteActivity:
package cfuture.poolo;

import java.util.Random;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class SQLiteActivity extends Activity {

private Button createSQLite=null;
private Button updateSQLite=null;
private Button insert=null;
private Button update=null;
private Button select=null;
private Button delete=null;
int i=1;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        createSQLite=findView(R.id.creatButton);
        updateSQLite=findView(R.id.updateSQLite);
        insert=findView(R.id.insert);
        update=findView(R.id.update);
        select=findView(R.id.select);
        delete=findView(R.id.delete);
        createSQLite.setOnClickListener(new createSQLiteListener());
        updateSQLite.setOnClickListener(new updateSQLiteListener());
        insert.setOnClickListener(new insert());
        update.setOnClickListener(new update());
        select.setOnClickListener(new select());
        delete.setOnClickListener(new delete());

    }
    public  Button findView(int Rtemp)
    {
    Button temp=null;
    temp=(Button)this.findViewById(Rtemp);
    return temp;
    }
   
    class createSQLiteListener implements OnClickListener
   
    {

@Override
public void onClick(View v) {
MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test3",null,1);
SQLiteDatabase db=my.getReadableDatabase();


}
   
    }
    class updateSQLiteListener implements OnClickListener

    {

@Override
public void onClick(View v) {
MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test3",2);
SQLiteDatabase db=my.getReadableDatabase();


}
   
    }
    class insert implements OnClickListener

    {
   
@Override
public void onClick(View v) {
MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test3");
SQLiteDatabase db=my.getWritableDatabase();
ContentValues c= new ContentValues();
c.put("id", i);
i++;
c.put("name", "poolo");
Random r= new Random();
c.put("age", r.nextInt(20));
db.insert("poolo", null, c);
System.out.println("SQLiteActivity======>insert success");

}
   
    }
    class update implements OnClickListener

    {

@Override
public void onClick(View v) {
MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test3");
SQLiteDatabase db=my.getWritableDatabase();
ContentValues c= new ContentValues();
c.put("name", "awen");
db.update("poolo", c, "id=?", new String[]{"1"});
System.out.println("SQLiteActivity======>update success");


}
   
    }
    class select implements OnClickListener

    {

@Override
public void onClick(View v) {
MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test3");
SQLiteDatabase db=my.getReadableDatabase();

Cursor c=db.query("poolo", new String[]{"id","name","age"},null,null, null, null, null);
System.out.println("SQLiteActivity======>update success");
while(c.moveToNext()){
int id= c.getInt(0);
String name =c.getString(1);
int age= c.getInt(2);
System.out.println("sqlquery:id_"+id+",name_"+name+",age_"+age );

}


}
   
    }
  class delete implements OnClickListener

    {

@Override
public void onClick(View v) {
MySqliteOpenHelper my=new MySqliteOpenHelper(SQLiteActivity.this,"test3");
SQLiteDatabase db=my.getWritableDatabase();
ContentValues c= new ContentValues();
db.delete("poolo", "id=?", new String[]{"1"});
System.out.println("SQLiteActivity======>delete success");


}
   
    }

}

MySqliteOpenHelper
package cfuture.poolo;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class MySqliteOpenHelper extends SQLiteOpenHelper {

public static final int version=1;

public MySqliteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
{
super(context,name,factory,version);
}
public MySqliteOpenHelper(Context context, String name, int version)
{
this(context,name,null,version);
}
public MySqliteOpenHelper(Context context, String name)
{
this(context,name,version);
}
@Override
public void onCreate(SQLiteDatabase db) {

db.execSQL("create table poolo(id int,name varchar(20),age int)");
System.out.println("MySQLiteOpenHelper======>onCreate");
}

@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
System.out.println("MySQLiteOpenHelper======>onUpgrade");
System.out.println("onUpgrade====="+ arg1 + "|"+ arg2 + "=======");

}
    public void onOpen(SQLiteDatabase db) { 
        super.onOpen(db); 
        System.out.println("MySQLiteOpenHelper======>open");
    } 

}

布局文件
Main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<Button
android:id="@+id/creatButton"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/createSQLite"/>
    <Button
android:id="@+id/updateSQLite"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/updateSQLite"/>
    <Button
android:id="@+id/insert"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/insert"/>
    <Button
android:id="@+id/select"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/select"/>
        <Button
android:id="@+id/update"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/update"/>
            <Button
android:id="@+id/delete"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/delete"/>
</LinearLayout>




2011-8-15
poolo

Android菜鸟日记10
SQLite 数据库
  • 大小: 41.3 KB
分享到:
评论

相关推荐

    Android 绿豆通讯录【SQLite数据库】

    前情提要:Android 数据库(SQLite) 【简介、创建、使用(增删改查、事务、实战演练)、数据显示控件(ListView、Adapter、实战演练)】 https://blog.csdn.net/weixin_44949135/article/details/105955663  Android ...

    Android实验报告Sqlite数据库操作.pdf

    Android SQLite 数据库操作报告 一、实验目的 Android 实验报告的主要目的是熟悉 Android 平台的文件操作、掌握 Android SQLite 数据库的设计和应用、熟悉 XML 和 JSON 文件的读取。通过本实验,用户可以掌握 ...

    基于android的个人日记本程序(Sqlite数据库).zip

    《基于Android的个人日记本程序:SQLite数据库应用详解》 在移动应用开发领域,Android操作系统以其开源、灵活性和广泛的应用范围占据了重要的地位。本项目“基于Android的个人日记本程序”是一个典型的应用实例,...

    Android开发中的SQLite数据库的增删改查工具类

    在Android开发中,SQLite数据库是应用进行本地数据存储的主要方式之一。SQLite是一个轻量级的、关系型的数据库,它不需要单独的服务器进程,并且完全支持SQL标准。本篇文章将详细解析标题和描述中提到的两个关键文件...

    Android中SQLite数据库查看工具

    SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 就像其他数据库,SQLite 引擎不是一个...

    android 的sqlite数据库加密实现

    在Android应用开发中,SQLite是一个常用的轻量级数据库,它为数据存储提供了便利。然而,随着数据安全性的日益重要,对SQLite数据库进行加密是必要的,以保护敏感信息免受未授权访问。本篇文章将深入探讨如何在...

    Android数据库SQLite详解

    在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于存储和管理应用程序中的数据。SQLite具有高效、可靠且易于集成的特点,使得它成为Android应用数据...

    Android源码——数据库SQLite.zip

    这个压缩包文件"Android源码——数据库SQLite.zip"可能包含了关于Android中SQLite数据库的源码分析、使用示例以及相关的图像资源,如1-120912223R80-L.png,可能用于解释或展示SQLite在Android中的工作原理。...

    基于Android平台的SQLite数据库加密研究.pdf

    "基于Android平台的SQLite数据库加密研究" 本文研究了基于Android平台的SQLite数据库加密问题,提出了一个优化的AES-128算法整库加密方案。该方案在AES轮变换过程中,对状态矩阵进行分块、并行处理;密钥扩展算法...

    Android导入已有的SQLite数据库

    在Android开发中,有时我们需要利用已存在的SQLite数据库来加速应用的开发或实现特定功能。本文将详细介绍如何在Android项目中导入一个预建的SQLite数据库。首先,我们需要理解SQLite是Android系统内置的一种轻量级...

    Android studio学生管理系统SQLite数据库

    Android studio软件开发:基于SQLite数据库编写的学生管理系统源码,学生信息的增删改查和list view列表显示数据库内容,内附含sharepreference数据库编写的基础注册页面。

    Android代码-连接SQLite数据库源码.zip

    在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于存储应用程序中的数据。本文将深入探讨如何在Android应用中连接并操作SQLite数据库,主要基于提供...

    Android开发:使用sqlite数据库实现记单词APP

    在本项目中,开发者实施了一个基于Android平台的记单词应用,使用SQLite数据库作为数据存储解决方案。以下是关于Android开发和SQLite数据库的关键知识点: 1. **SQLite数据库**:SQLite是Android系统内置的关系型...

    Android-chapter05 SQLite数据库.ppt

    在Android开发中,SQLite是一个至关重要的组件,它是一个轻量级的、无服务器进程的数据库系统,特别适合嵌入式设备。SQLite具有ACID特性,保证了数据在各种操作中的完整性和一致性。它支持五种基本数据类型:NULL、...

    SQLite数据库加密/解密工具

    SQLite数据库加密/解密工具是一款专门用于SQLite数据库的安全软件插件。它提供了在C#环境下对SQLite数据库进行加密和解密的全套解决方案,让数据库管理员和开发者能够对敏感数据进行安全保护。软件的核心功能是通过...

    Android平台下通用SQLite数据库模型的设计与实现.pdf

    Android 平台下通用 SQLite 数据库模型的设计与实现 Android 平台下通用 SQLite 数据库模型的设计与实现是指在 Android 平台下设计和实现一个通用的 SQLite 数据库模型。该模型的设计目标是为了降低数据库管理的...

    arcgis for android 读取加载sqlite数据库.rar

    而SQLite是一种轻量级的、开源的、嵌入式的关系型数据库,广泛应用于移动应用,包括Android。本教程将探讨如何在ArcGIS for Android环境中利用SQLite数据库进行数据存储和读取。 1. **SQLite数据库介绍**: SQLite...

    android SQLite数据库管理软件

    SQLite是一款轻量级的数据库管理系统,它被广泛应用于Android应用程序中,因为它不需要独立的服务进程,而是内嵌在应用中,提供了高效、可靠的本地数据存储功能。"android SQLite数据库管理软件"是一个专为Android...

    实验十 使用SQLite数据库存储数据

    在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于处理应用程序中的数据存储。"实验十 使用SQLite数据库存储数据"是一个旨在帮助开发者掌握如何在...

    Android-在浏览器管理中Sqlite数据库

    在Android开发中,SQLite是一个内置的轻量级数据库系统,用于存储应用程序的数据。SQLite数据库管理系统在Android设备上广泛使用,因为它高效、可靠且易于使用。本文将深入探讨如何在Android的浏览器环境中管理和...

Global site tag (gtag.js) - Google Analytics