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;
  }
}
目录
相关文章
|
1月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
187 3
|
23天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
67 3
|
29天前
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
31 8
|
24天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
43 2
|
26天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
79 2
|
1月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置服务等,并与使用 RPM 包安装进行了对比,帮助读者根据需求选择合适的方法。编译源码安装虽然复杂,但提供了更高的定制性和灵活性。
239 2
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
【10月更文挑战第7天】本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据自身需求选择合适的方法。
60 3
|
1月前
|
SQL 数据管理 数据库
文章初学者指南:SQL新建数据库详细步骤与最佳实践
引言:在当今数字化的世界,数据库管理已经成为信息技术领域中不可或缺的一部分。作为广泛使用的数据库管理系统,SQL已经成为数据管理和信息检索的标准语言。本文将详细介绍如何使用SQL新建数据库,包括准备工作、具体步骤和最佳实践,帮助初学者快速上手。一、准备工作在开始新建数据库之前,你需要做好以下准备工作
129 3
|
1月前
|
SQL 关系型数据库 MySQL
创建SQL数据库的基本步骤与代码指南
在信息时代,数据管理显得尤为重要,其中数据库系统已成为信息技术架构的关键部分。而当我们谈论数据库系统时,SQL(结构化查询语言)无疑是其中最核心的工具之一。本文将详细介绍如何使用SQL创建数据库,包括编写相应的代码和必要的步骤。由于篇幅限制,本文可能无法达到您要求的2000字长度,但会尽量涵盖创建数
55 3
下一篇
无影云桌面