基礎
import sqlite3# 連接到數據庫
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()# 執行查詢
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()for row in rows:print(row)# 關閉連接
conn.close()
創建一個繼承自?SQLiteOpenHelper
?的類,這個類用于管理數據庫的創建和版本更新
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;public class MyDatabaseHelper extends SQLiteOpenHelper {// 定義數據庫名private static final String DATABASE_NAME = "my_database.db";// 定義數據庫版本private static final int DATABASE_VERSION = 1;// 定義要創建的表名public static final String TABLE_NAME = "my_table";// 定義表中的 id 列名public static final String COLUMN_ID = "id";// 定義表中的 name 列名public static final String COLUMN_NAME = "name";// 創建表的 SQL 語句private static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" +COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +COLUMN_NAME + " TEXT NOT NULL);";// 構造函數,接收上下文對象public MyDatabaseHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}// 當數據庫首次創建時調用,用于創建表@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL(CREATE_TABLE);}// 當數據庫版本更新時調用,可用于升級表結構@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// 刪除舊表db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);// 重新創建表onCreate(db);}
}
查詢數據
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {private MyDatabaseHelper dbHelper;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView{"name":"GodelPlugin","parameters":{"input":"\"setContentView(R.layout.activity_main);\""}}<|FunctionExecuteEnd|><|FunctionExecuteResult|>setContentView(R.layout.activity_main);<|FunctionExecuteResultEnd|>// 創建數據庫幫助類的實例dbHelper = new MyDatabaseHelper(this);// 插入一些示例數據insertData("Alice");insertData("Bob");// 查詢數據queryData();}// 插入數據的方法private void insertData(String name) {// 獲取可寫的數據庫實例SQLiteDatabase db = dbHelper.getWritableDatabase();// 插入數據的 SQL 語句String insertQuery = "INSERT INTO " + MyDatabaseHelper.TABLE_NAME + " (" + MyDatabaseHelper.COLUMN_NAME + ") VALUES ('" + name + "');";// 執行插入操作db.execSQL(insertQuery);// 關閉數據庫db.close();}// 查詢數據的方法private void queryData() {// 獲取可讀的數據庫實例SQLiteDatabase db = dbHelper.getReadableDatabase();// 查詢語句,這里查詢表中的所有數據String selectQuery = "SELECT * FROM " + MyDatabaseHelper.TABLE_NAME;// 執行查詢操作,返回一個 Cursor 對象Cursor cursor = db.rawQuery(selectQuery, null);if (cursor.moveToFirst()) {do {// 獲取 id 列的值int id = cursor.getInt(cursor.getColumnIndex(MyDatabaseHelper.COLUMN_ID));// 獲取 name 列的值String name = cursor.getString(cursor.getColumnIndex(MyDatabaseHelper.COLUMN_NAME));// 顯示查詢結果Toast.makeText(this, "ID: " + id + ", Name: " + name, Toast.LENGTH_SHORT).show();} while (cursor.moveToNext());}// 關閉游標cursor.close();// 關閉數據庫db.close();}
}
搜索在sqlite查出數據
xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:padding="16dp"><EditTextandroid:id="@+id/search_edit_text"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="輸入搜索關鍵詞" /><Buttonandroid:id="@+id/search_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="搜索" /><TextViewandroid:id="@+id/result_text_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:paddingTop="16dp" />
</LinearLayout>
java
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {private MyDatabaseHelper dbHelper;private EditText searchEditText;private TextView resultTextView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView{"name":"GodelPlugin","parameters":{"input":"\"setContentView(R.layout.activity_main);\""}}<|FunctionExecuteEnd|><|FunctionExecuteResult|>setContentView(R.layout.activity_main);<|FunctionExecuteResultEnd|>// 創建數據庫幫助類的實例dbHelper = new MyDatabaseHelper(this);// 初始化輸入框、按鈕和結果顯示文本視圖searchEditText = findViewById(R.id.search_edit_text);Button searchButton = findViewById(R.id.search_button);resultTextView = findViewById(R.id.result_text_view);// 設置按鈕點擊事件監聽器searchButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// 獲取輸入框中的關鍵詞String keyword = searchEditText.getText().toString();// 執行搜索操作searchData(keyword);}});// 插入一些示例數據insertData("Alice");insertData("Bob");}// 插入數據的方法private void insertData(String name) {// 獲取可寫的數據庫實例SQLiteDatabase db = dbHelper.getWritableDatabase();// 插入數據的 SQL 語句String insertQuery = "INSERT INTO " + MyDatabaseHelper.TABLE_NAME + " (" + MyDatabaseHelper.COLUMN_NAME + ") VALUES ('" + name + "');";// 執行插入操作db.execSQL(insertQuery);// 關閉數據庫db.close();}// 搜索數據的方法private void searchData(String keyword) {// 獲取可讀的數據庫實例SQLiteDatabase db = dbHelper.getReadableDatabase();// 搜索語句,根據關鍵詞搜索 name 列String selectQuery = "SELECT * FROM " + MyDatabaseHelper.TABLE_NAME + " WHERE " + MyDatabaseHelper.COLUMN_NAME + " LIKE '%" + keyword + "%'";// 執行搜索操作,返回一個 Cursor 對象Cursor cursor = db.rawQuery(selectQuery, null);StringBuilder result = new StringBuilder();if (cursor.moveToFirst()) {do {// 獲取 id 列的值int id = cursor.getInt(cursor.getColumnIndex(MyDatabaseHelper.COLUMN_ID));// 獲取 name 列的值String name = cursor.getString(cursor.getColumnIndex(MyDatabaseHelper.COLUMN_NAME));// 將結果添加到 StringBuilder 中result.append("ID: ").append(id).append(", Name: ").append(name).append("\n");} while (cursor.moveToNext());}// 關閉游標cursor.close();// 關閉數據庫db.close();// 將搜索結果顯示在文本視圖中if (result.length() > 0) {resultTextView.setText(result.toString());} else {resultTextView.setText("未找到相關結果");}}
}