搭建环境
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {repositories {maven{ url 'https://maven.aliyun.com/repository/google'}maven{ url 'https://maven.aliyun.com/repository/gradle-plugin'}maven{ url 'https://maven.aliyun.com/repository/public'}maven{ url 'https://maven.aliyun.com/repository/jcenter'}}dependencies {classpath 'com.android.tools.build:gradle:4.0.0'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}allprojects {repositories {maven{ url 'https://maven.aliyun.com/repository/google'}maven{ url 'https://maven.aliyun.com/repository/gradle-plugin'}maven{ url 'https://maven.aliyun.com/repository/public'}maven{ url 'https://maven.aliyun.com/repository/jcenter'}}
}task clean(type: Delete) {delete rootProject.buildDir
}
创建界面
<?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"><Buttonandroid:id="@+id/create_database"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Create database"/><Buttonandroid:id="@+id/add_data"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Add data"/><Buttonandroid:id="@+id/update_data"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Update data"/><Buttonandroid:id="@+id/delete_data"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Delete data"/><Buttonandroid:id="@+id/query_data"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Query data"/></LinearLayout>
MyDatabaseHelper
package com.example.databasetest;import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
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,SQLiteDatabase.CursorFactory factory, int version) {super(context, name, factory, version);mContext = context;}// 下面是重写的两个方法@Overridepublic void onCreate(SQLiteDatabase db) {
// 执行语句db.execSQL(CREATE_BOOK);db.execSQL(CREATE_CATEGORY);
// 弹框提示Toast.makeText(mContext, "Create succeeded", Toast.LENGTH_SHORT).show();}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 执行语句db.execSQL("drop table if exists Book");db.execSQL("drop table if exists Category");
// 重新建库onCreate(db);}}
MainActivity
package com.example.databasetest;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;public class MainActivity extends AppCompatActivity {private MyDatabaseHelper dbHelper;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
// 版本2dbHelper = new MyDatabaseHelper(this, "BookStore.db", null, 2);Button createDatabase = (Button) findViewById(R.id.create_database);createDatabase.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dbHelper.getWritableDatabase();}});
//
// 添加Button addData = (Button) findViewById(R.id.add_data);addData.setOnClickListener(new View.OnClickListener() {@Overridepublic 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.clear();// 开始组装第二条数据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 updateData = (Button) findViewById(R.id.update_data);updateData.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {SQLiteDatabase db = dbHelper.getWritableDatabase();ContentValues values = new ContentValues();values.put("price", 10.99);db.update("Book", values, "name = ?", new String[] { "The Da Vinci Code" });}});
// 删除Button deleteButton = (Button) findViewById(R.id.delete_data);deleteButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {SQLiteDatabase db = dbHelper.getWritableDatabase();db.delete("Book", "pages > ?", new String[] { "500" });}});
// 查询Button queryButton = (Button) findViewById(R.id.query_data);queryButton.setOnClickListener(new View.OnClickListener() {@Overridepublic 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("MainActivity", "book name is " + name);Log.d("MainActivity", "book author is " + author);Log.d("MainActivity", "book pages is " + pages);Log.d("MainActivity", "book price is " + price);} while (cursor.moveToNext());}cursor.close();}});}}
运行界面
这是存放的路径。
源码下载
1、关注公众号,汪程序员,回复:安卓sqlite
https://mp.weixin.qq.com/s?__biz=Mzg4NTc0ODQwNA==&mid=2247483725&idx=1&sn=b9dfaf2021139f27d8c1019ba454d24c&chksm=cfa56696f8d2ef80b71d2b12c7904324553c30b7009fb2d271c610fb9b95ba008264bc141c4c&token=22627107&lang=zh_CN#rd
2、https://download.csdn.net/download/m0_61504367/85490667