SQLite操作数据库的步骤

简介: SQLite操作数据库的步骤

package com.example.dbdemo;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;
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,
      CursorFactory factory, int version) {
    super(context, name, factory, version);
    mContext=context;  //给当前上下文对象赋值
  }
  //1.创建数据库的方法
  @Override
  public void onCreate(SQLiteDatabase db) {
    //使用db的execSQL方法,来执行创建数据表的方法
    db.execSQL(CREATE_BOOK);
    db.execSQL(CREATE_CATEGORY);
    Toast.makeText(mContext,"创建数据成功!",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);
  }
}
package com.example.dbdemo;
import android.app.Activity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
  //1.创建主活动类的成员变量是数据库操作类
  private MyDatabaseHelper dbHelper;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //---------------------------在主活动的方法里面来调用写数据的方法;
    //如何让调用onUpgrade()方法,使用版本号,即第四个参数
    dbHelper=new MyDatabaseHelper(MainActivity.this,"BookStore.db",null,2);
    Button btnDb=(Button)findViewById(R.id.btnDb);
    btnDb.setOnClickListener(new OnClickListener(){
      @Override
      public void onClick(View arg0) {        
        dbHelper.getWritableDatabase();
      }
    });   
    //------------------为插入数据,编写相应的代码-----------------
    //SQLiteDatabase对象,借助这个对象,就可以对数据进行CRUD操作!
    //SQLiteDatabase类提供了一个insert()方法,这个方法专门用于对数据进行添加数据。它接受三个参数,第一个参数是表名,我们希望向哪个表添加数据,这里就传入该表的名字
    //第二个参数用于在未指定给某些可为空的列自动赋值NULL,一般我们用不到这个功能;
    //第三个参数是一个ContentValues对象,它提供了一系列的put()方法重载,用于向ContentValues中添加数据,只需要将表中的每个列名以及相应的待添加数据传入即可
    Button btnAddData=(Button)findViewById(R.id.btnAddData);
    btnAddData.setOnClickListener(new OnClickListener(){
      @Override
      public void onClick(View v) {
        SQLiteDatabase db=dbHelper.getWritableDatabase(); //返回一个SQLiteDatabase对象,可以对sqlite数据库进行操作;
        ContentValues values=new ContentValues();
        //开始组装第一条数据
        values.put("name", "魔兽");
        values.put("author", "张");
        values.put("pages", 454);
        values.put("price", 16.96);
        long i1=db.insert("Book", null,values); //插入第一条数据;
        values.clear();   //清楚内容值对象里面的数据;
        values.put("name", "JQuery");
        values.put("author", "li.sir");
        values.put("pages", 510);
        values.put("price", 19.95);
        long i2=db.insert("Book",null,values);   //插入第二条数据;
        if(i1!=-1){
          Toast.makeText(MainActivity.this, "第一条数据插入成功", Toast.LENGTH_LONG).show();
        }
        if(i2!=-1){
          Toast.makeText(MainActivity.this, "第一条数据插入成功", Toast.LENGTH_LONG).show();
        }
      }
    });
    //针对数据进行更新;
    Button btnUpdateData=(Button)findViewById(R.id.btnUpData);
    btnUpdateData.setOnClickListener(new OnClickListener(){
      @Override
      public void onClick(View v) {
        SQLiteDatabase db=dbHelper.getWritableDatabase();  //获得SQLiteDatabase对象;
        ContentValues values=new ContentValues(); //获得内容值对象;
        values.put("price", 188);
        int i3=db.update("Book", values,"name=?",new String[]{"魔兽"});
        //update(表名 ,值对象,列名,确定原来的哪一行数据
        if(i3!=0){
          Toast.makeText(MainActivity.this, "数据修改成功", Toast.LENGTH_LONG).show();
        }
      }
    });
    //-------------------使用删除按钮,对数据删除------------
    Button btnDeleteData=(Button)findViewById(R.id.btnDeleteData);
    btnDeleteData.setOnClickListener(new OnClickListener(){
      @Override
      public void onClick(View v) {
        SQLiteDatabase db=dbHelper.getWritableDatabase(); //获得SQLiteDatabase对象db
        int i4=db.delete("Book", "pages>?", new String[]{"500"});
        //delete(表名,哪个参数,具体值)
        Toast.makeText(MainActivity.this, "数据删除成功"+i4, Toast.LENGTH_LONG).show();
      }
    });
  }
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
  }
}
目录
相关文章
|
7天前
|
存储 API 数据库
QML使用Sqlite数据库存储ListModel数据
本文介绍了在QML中使用Sqlite数据库存储ListModel数据的方法,包括如何创建数据库、读取数据、动态添加和删除数据,以及如何在程序启动和退出时与数据库同步数据。
|
7天前
|
数据库 数据库管理
qt对sqlite数据库多线程的操作
本文总结了在Qt中进行SQLite数据库多线程操作时应注意的四个关键问题,包括数据库驱动加载、加锁、数据库的打开与关闭,以及QsqlQuery变量的使用。
|
2月前
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
206 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
|
9天前
|
SQL 数据库 数据库管理
SQLite 创建数据库
SQLite 的 sqlite3 命令被用来创建新的 SQLite 数据库。您不需要任何特殊的权限即可创建一个数据。
13 0
|
10天前
|
JSON NoSQL 数据库
和SQLite数据库对应的NoSQL数据库:TinyDB的详细使用(python3经典编程案例)
该文章详细介绍了TinyDB这一轻量级NoSQL数据库的使用方法,包括如何在Python3环境中安装、创建数据库、插入数据、查询、更新以及删除记录等操作,并提供了多个编程案例。
24 0
|
2月前
|
SQL 存储 小程序
【教程】navicat配合HTTP通道远程连接SQLite数据库
本文介绍了如何通过 Navicat Premium 工具配合 n_tunnel_sqlite.php 和 HTTP 通道远程连接服务器上的 SQLite 数据库。SQLite 是一种自给自足的、无服务器的 SQL 数据库引擎,由于其端口未对外开放,直接使用 Navicat 进行远程连接不可行。文章详细记录了使用 HTTP 通道实现远程连接的过程,包括定位本地 `ntunnel_sqlite.php` 文件,将其上传至服务器,并通过 Navicat 配置 HTTP 通道连接 SQLite 数据库的具体步骤。
53 0
【教程】navicat配合HTTP通道远程连接SQLite数据库
|
2月前
|
Java 数据库连接 数据库
java系列之~如何给sqlite数据库添加表
这篇文章介绍了如何在Java中使用SQLite JDBC驱动来连接SQLite数据库,并提供了示例代码来演示如何创建一个新的数据库表。
|
2月前
|
SQL 存储 数据库
SQLite数据库
【8月更文挑战第21天】SQLite数据库
36 3
|
2月前
|
SQL 关系型数据库 数据库
C语言与数据库:使用C语言操作SQLite等数据库。
C语言与数据库:使用C语言操作SQLite等数据库。
21 0
|
2月前
|
存储 关系型数据库 MySQL
数据库建立的步骤
【8月更文挑战第22天】数据库建立的步骤
34 0
下一篇
无影云桌面