SQLite数据库创建,增删查改

转载请注明出处SQLite数据库创建,增删查改_Mr_Leixiansheng的博客-CSDN博客

 

相关文章:更快捷操作数据库 LitePal

步骤:

1、新建自己的数据库类继承SQLiteOpenHelper并重写(设置数据库要包含的类别)

2、主程序中实现数据库的创建,和增删查改

1、创建类

package com.example.administrator.sqlitetest;

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

/**
 * Created by Administrator on 2016/12/7.
 */

public class MySQLiteHelper extends SQLiteOpenHelper {

    public final static String DB_NAME = "book.db";
    public final static String BOOK_TABLE = "book";
    public final static String PERSON_TABLE = "person";


    private static final String CREATE_BOOK = "create table " + BOOK_TABLE + " ("       //相当于 : "create table book (_id integer primary key autoincrement,name text,age integer)"
            + "id integer primary key autoincrement, "
            + "name text, "
            + "age integer)";

    private static final String CREATE_PERSON = "create table " + PERSON_TABLE + " ("
            + "id integer primary key autoincrement, "
            + "name text, "
            + "age integer)";

    private Context mContext;

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

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL(CREATE_BOOK);
        sqLiteDatabase.execSQL(CREATE_PERSON);
        Toast.makeText(mContext, "CREATE OK", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

2、实现对数据库的操作

package com.example.administrator.sqlite;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import static com.example.administrator.sqlitetest.MySQLiteHelper.BOOK_TABLE;
import static com.example.administrator.sqlitetest.MySQLiteHelper.DB_NAME;

import java.util.zip.CRC32;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private MyDatabaseHelper dbHelper;
    //新建,增删改查
    private Button create,insert,delete,change,query;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //创建book.db数据库对象,版本号1
        dbHelper = new MyDatabaseHelper(this, DB_NAME, null, 1);
        //获取元素ID
        create = (Button) findViewById(R.id.create);
        insert = (Button) findViewById(R.id.insert);
        delete = (Button) findViewById(R.id.delete);
        change = (Button) findViewById(R.id.change);
        query = (Button) findViewById(R.id.query);

        //设置按键点击监听
        create.setOnClickListener(this);
        insert.setOnClickListener(this);
        delete.setOnClickListener(this);
        change.setOnClickListener(this);
        query.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.create:
                dbHelper.getWritableDatabase();
                break;
            case R.id.insert:
                insertData();
                Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();
                break;
            case R.id.delete:
                deletData();
                Toast.makeText(this, "删除成功", Toast.LENGTH_SHORT).show();
                break;
            case R.id.change:
                changeDate();
                Toast.makeText(this, "更改成功", Toast.LENGTH_SHORT).show();
                break;
            case R.id.query:
                queryData();
                Toast.makeText(this, "浏览", Toast.LENGTH_SHORT).show();
                break;
            default:
                break;
        }
    }

    private void queryData() {
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        //遍历整个表格 Cursor :光标
        Cursor cursor = db.query(BOOK_TABLE, null, null, null, null, null, null);

        //遍历符合条件的行
//        Cursor cursor = db.rawQuery("select * from book where name='小明'",null);

       //遍历
        while (cursor.moveToNext()) {
            String name = cursor.getString(cursor.getColumnIndex("name"));
            int age = cursor.getInt(cursor.getColumnIndex("age"));
            int id = cursor.getInt(cursor.getColumnIndex("id"));

            //防止空指针异常
            if (name==null) {
                Log.i("MainActivity", "id:"+id+",name:" + "null" + ",age:" + String.valueOf(age));
            } else {
                Log.i("MainActivity", "id:"+id+",name:" + name + ",age:" + String.valueOf(age));
            }
        }
        cursor.close();
    }

    private void deleteData() {
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        db.delete("book","name = ?",new String[] {"小明"});
    }

    private void changeDate() {
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        ContentValues values = new ContentValues();

        values.put("name", "小黄");

        db.update("book",values, "name = ?",new String[] {"小红"});
    }

    private void insertData() {
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        ContentValues values = new ContentValues();

        values.put("name", "小明");
        values.put("age", 5);
        db.insert("book", null, values);

        values.clear();

        values.put("name", "小红");
        values.put("age", 10);
        db.insert("book", null, values);

        values.clear();

        values.put("name","老王");
        db.insert("book", null, values);
        values.clear();

        values.put("age",100);
        db.insert("book", null, values);
    }
}

Cursor介绍:

cursor.isClosed();//如果为TRUE表示该游标已关闭  
cursor.close();//关闭游标,且释放资源  
cursor.getColumnCount();//返回所有列的总数  
cursor.getColumnNames();//返回一个字符串数组的列名,即将列名全部返回到一个字符串数组中  
cursor.getCount();//返回Cursor中的行数  
cursor.moveToFirst();//移动光标到第一行  
cursor.moveToLast();//移动光标到最后一行  
cursor.moveToNext();//移动光标到下一行  
cursor.moveToPrevious();//移动光标到上一行  
int columnIndex = 0;  
int position = 0;  
cursor.getColumnName(columnIndex);//从给定的索引返回列名  
cursor.moveToPosition(position);//移动光标到给定位置  

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 安卓的SQLite数据库增删查改操作通常需要使用SQL语句来实现。下面是一个简单的实现过程: 1. 创建数据库:使用SQLiteOpenHelper类创建数据库,实现onCreate()方法创建表。 2. 增加数据:使用SQLiteDatabase类的insert()方法插入数据。 3. 删除数据:使用SQLiteDatabase类的delete()方法删除数据。 4. 修改数据:使用SQLiteDatabase类的update()方法修改数据。 5. 查询数据:使用SQLiteDatabase类的query()方法查询数据,并使用Cursor对象读取查询结果。 这是一个简单的实现过程,具体的实现过程可能因项目不同而有所差别,但大致思路是一致的。 ### 回答2: 安卓本地SQLite数据库增删查改操作是用于管理和操作本地SQLite数据库的一系列方法。以下是实现该过程的步骤: 1. 创建数据库:首先需要在安卓应用中创建一个SQLite数据库。可以通过继承SQLiteOpenHelper类来创建和管理数据库。在SQLiteOpenHelper的子类中可以定义数据库的名称、版本号和表结构。 2. 增加数据(Insert):使用SQLiteDatabase的insert方法可以向数据库中添加新的数据。该方法接受要插入的表名称、要插入的数据和要插入的列名称作为参数。可以通过ContentValues对象来存储要插入的数据,然后将ContentValues对象作为参数传递给insert方法。 3. 查询数据(Query):使用SQLiteDatabase的query方法可以从数据库中查询数据。该方法接受表名称、要查询的列名称、查询条件、查询参数等作为参数。可以通过Cursor对象来接收查询结果,并通过Cursor的moveToFirst等方法来遍历查询结果。 4. 更新数据(Update):使用SQLiteDatabase的update方法可以更新数据库中的数据。该方法接受表名称、更新的数据、更新条件、更新参数等作为参数。使用ContentValues对象来存储要更新的数据,并将ContentValues对象作为参数传递给update方法。 5. 删除数据(Delete):使用SQLiteDatabase的delete方法可以从数据库中删除数据。该方法接受表名称、删除条件、删除参数等作为参数。可以根据条件删除数据,也可以删除整个表中的所有数据。 以上是安卓本地SQLite数据库增删查改操作的实现过程。通过使用SQLiteOpenHelper类和SQLiteDatabase类提供的方法,可以方便地对本地SQLite数据库进行各种操作。 ### 回答3: 安卓的本地SQLite数据库操作分为增加(Insert)、删除(Delete)、查询(Select)和更新(Update)四个基本操作。 首先是增加操作,首先需要创建一个SQLiteOpenHelper类,继承自SQLiteOpenHelper,重写onCreate和onUpgrade方法,以便创建数据库和表。然后,在需要进行插入操作的地方,实例化该SQLiteOpenHelper类,并通过getWritableDataBase()方法获取一个可写的数据库对象,接着调用insert方法进行数据插入。 接下来是删除操作,通过getWritableDataBase()方法获取可写的数据库对象,然后调用delete方法进行数据删除。delete方法需要传入表名和删除条件。 然后是查询操作,同样需要获取可读的数据库对象,调用query方法进行查询。query方法需要传入表名、字段名、查询条件和排序等参数,返回一个Cursor对象。通过Cursor对象可以遍历查询结果,取得所需的数据。 最后是更新操作,同样需要获取可写的数据库对象,然后调用update方法进行数据更新。update方法需要传入表名、新数据和更新条件。 需要注意的是,数据库操作通常需要在一个事务中进行,以确保数据的完整性和一致性。在事务中的数据库操作失败时,可以进行回滚操作或者采取其他处理方式。 总结,安卓本地SQLite数据库增删查改操作实现过程包括创建SQLiteOpenHelper类、获取可读/写的数据库对象,并分别调用对应的insert、delete、query和update方法来进行增加、删除、查询和更新操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值