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;
  }
}
目录
相关文章
|
JavaScript 关系型数据库 MySQL
❤Nodejs 第六章(操作本地数据库前置知识优化)
【4月更文挑战第6天】本文介绍了Node.js操作本地数据库的前置配置和优化,包括处理接口跨域的CORS中间件,以及解析请求数据的body-parser、cookie-parser和multer。还讲解了与MySQL数据库交互的两种方式:`createPool`(适用于高并发,通过连接池管理连接)和`createConnection`(适用于低负载)。
21 0
|
2月前
|
API 数据库 C语言
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
171 0
|
2月前
|
SQL 数据库连接 数据库
你不知道ADo.Net中操作数据库的步骤【超详细整理】
你不知道ADo.Net中操作数据库的步骤【超详细整理】
16 0
|
2月前
|
SQL 安全 数据管理
在阿里云数据管理DMS(Data Management Service)中,您可以按照以下步骤来创建和管理数据库
【2月更文挑战第33天】在阿里云数据管理DMS(Data Management Service)中,您可以按照以下步骤来创建和管理数据库
45 7
|
1天前
|
关系型数据库 MySQL Go
数据库的事务操作
数据库的事务操作
|
1天前
|
关系型数据库 MySQL Go
数据库的事务操作 | 青训营
数据库的事务操作 | 青训营
|
17天前
|
SQL 关系型数据库 数据库
Python中SQLite数据库操作详解:利用sqlite3模块
【4月更文挑战第13天】在Python编程中,SQLite数据库是一个轻量级的关系型数据库管理系统,它包含在一个单一的文件内,不需要一个单独的服务器进程或操作系统级别的配置。由于其简单易用和高效性,SQLite经常作为应用程序的本地数据库解决方案。Python的内置sqlite3模块提供了与SQLite数据库交互的接口,使得在Python中操作SQLite数据库变得非常容易。
|
22天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
22天前
|
关系型数据库 MySQL 数据库连接
Python+SQLite数据库实现服务端高并发写入
Python中使用SQLite内存模式实现高并发写入:创建内存数据库连接,建立表格,通过多线程并发写入数据。虽然能避免数据竞争,但由于SQLite内存模式采用锁机制,可能在高并发时引发性能瓶颈。若需更高性能,可选择MySQL或PostgreSQL。
32 0
|
2月前
|
数据库连接 API 数据库
SQLite3 数据库 C语言API 打开函数sqlite3_open 详解
SQLite3 数据库 C语言API 打开函数sqlite3_open 详解
44 0