开发者社区> 桃子红了呐> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

安卓操作sqlite3,增删改查

简介:
+关注继续查看

创建

layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/create_database"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Create database"
        />

</LinearLayout>

main

package demo.jq.com.databasetest;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

/**
 * @author jim
 */
public class MainActivity extends AppCompatActivity {
    /**
     * 引入数据库助手类
     */
    private MyDatabaseHelper dbHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dbHelper = new MyDatabaseHelper(this,"BookStore.db",null,2);
        // 初始化创建按钮
        Button createDatabase = (Button) findViewById(R.id.create_database);
        // 设置点击事件
        createDatabase.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                // 执行写入数据库操作
                dbHelper.getWritableDatabase();
            }
        });
    }
}

helper

package demo.jq.com.databasetest;

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

/**
 * @author Jim
 */

public class MyDatabaseHelper extends SQLiteOpenHelper {
    public static final String CREATE_BOOK = "create table Book("
            + "id integer primary key autoincrement,"
            + "author text,"
            + "price real,"  // 浮点型
            + "pages integer,"
            + "name text)"; // 文本类型

    public static final String CREATE_CATEGORY = "create table Category ("
            + "id integer primary key autoincrement,"
            + "category_name text,"
            + "category_code integer)";


    private Context mContext;

    public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,int version) {
        super(context,name,factory,version);
        mContext = context;
    }

    /**
     * 数据库创建的时候,才执行
     * 如果数据库已经存在,将不会执行这个方法
     * @param db
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        // 执行sql语句
        db.execSQL(CREATE_BOOK);
        db.execSQL(CREATE_CATEGORY);
        Toast.makeText(mContext,"Create succeeded",Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("drop table if exists Book");
        db.execSQL("drop table if exists Category");
        onCreate(db);

    }
}

添加数据

<Button
        android:id="@+id/add_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Add data"
        />
        
     // 初始化添加数据按钮
        Button addData = (Button) findViewById(R.id.add_data);
        addData.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                SQLiteDatabase db = dbHelper.getWritableDatabase();
                ContentValues values = new ContentValues();
                // 开始组装第一条数据
                values.put("name","The Da Vinci Code");
                values.put("author","Dan Brown");
                values.put("pages",454);
                values.put("price",16.96);
                // 插入第一条数据
                db.insert("Book",null,values);

                // 开始组装第二条数据
                values.put("name","The Lost Symbol");
                values.put("author","Dan Brown");
                values.put("pages",510);
                values.put("price",19.95);
                // 插入第二条数据
                db.insert("Book",null,values);
            }
        });        
        

修改数据

<Button
        android:id="@+id/update_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Update data"
        />
// 更改数据
        Button updateData = (Button) findViewById(R.id.update_data);
        updateData.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                SQLiteDatabase db = dbHelper.getWritableDatabase();
                ContentValues values = new ContentValues();

                values.put("price",18.95);

                // 修改数据
                db.update("Book",values,"id = ?",new String[] {"1"});
            }
        });

删除数据

  <Button
        android:id="@+id/delete_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Delete data"
        />
 // 删除数据
        Button deleteData = (Button) findViewById(R.id.delete_data);
        deleteData.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                SQLiteDatabase db = dbHelper.getWritableDatabase();

                // 删除数据
                db.delete("Book","pages > ?",new String[] {"500"});
            }
        });

查询数据

<Button
        android:id="@+id/query_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Query data"
        />
 // 查询数据
        Button queryData = (Button) findViewById(R.id.query_data);
        queryData.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                SQLiteDatabase db = dbHelper.getWritableDatabase();

                // 查询Book表中所有的数据
                Cursor cursor = db.query("Book",null,null,null,null,null,null);
                if (cursor.moveToFirst()) {
                    do {
                        // 遍历Cursor对象,取出数据
                        String name = cursor.getString(cursor.getColumnIndex("name"));
                        String author = cursor.getString(cursor.getColumnIndex("author"));
                        int pages = cursor.getInt(cursor.getColumnIndex("pages"));
                        double price = cursor.getDouble(cursor.getColumnIndex("price"));
                        
                        Log.d(TAG,"book name is "+name);
                        Log.d(TAG,"book author is "+author);
                        Log.d(TAG,"book pages is "+pages);
                        Log.d(TAG,"book price is "+price);
                    } while (cursor.moveToNext());
                }
                cursor.close();
            }
        });

本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/7698573.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SQL:sqlite3数据库常用操作
SQL:sqlite3数据库常用操作
14 0
SQL:sqlite3数据库常用操作
SQL:sqlite3数据库常用操作
80 0
使用sqlite3 模块操作sqlite3数据库
Python内置了sqlite3模块,可以操作流行的嵌入式数据库sqlite3。如果看了我前面的使用 pymysql 操作MySQL数据库这篇文章就更简单了。
591 0
iOS SQLite3数据库操作
iOS中数据持久化分为四种:属性列表、对象归档、SQLite3和Core Data,SQLite3数据库操作是一个必不或缺的技术。 SQLite3简介 SQLite3数据库是移动端(iOS、Android、嵌入式)上认定的关系型数据库,与MySQL、Oracle等数据库相比,具有轻量级的优势,这就造成了体积小、迅速、简单功能依旧强大等优势。
1157 0
C语言SQLite3基本操作Demo
/************************************************************************** * C语言SQLite3基本操作Demo * 声明: * 1. 本文仅仅是为了写一个C语言SQLite3的Demo; * 2. 本文并没有说明如何在终端下进入SQLite3创建数据库,也没有解释 * sql语句的概念,仅仅给出了代码示例,这些内容需要你自己去 * 资料。
853 0
sqlite
当前sqlite 版本 3.8.7 嵌入式数据库; 关于SQLite SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C程式库中。它是 D.RichardHipp建立的公有领域项目。
923 0
sqlite3增删查改应用
创建一个数据库(包括int 类型的id,string 类型的name),并对其进行增删改查 实现步骤: 1.创建一个SingleViewApplication应用。
932 0
sqlite
创建有主键的表: create table test (pkey varchar(16) primary key, value varchar(10)); 创建有复合(即key由多个字段联合组成)主键的表: create...
570 0
4267
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载