package com.baoshi.piece.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class DBHelper extends SQLiteOpenHelper { private static final String DB_NAME = "delivery_db.db"; private static final int DB_VERSION = 1; // 送货记录表结构 private static final String CREATE_TABLE_DELIVERY = "CREATE TABLE delivery (" + "id INTEGER PRIMARY KEY AUTOINCREMENT," + "deliveryNo TEXT NOT NULL UNIQUE," + // 送货单号(唯一) "machine TEXT NOT NULL," + // 机器编号 "operator TEXT NOT NULL," + // 操作员 "operatorName TEXT NOT NULL," + // 操作员名称 "operationTime TEXT NOT NULL," + // 操作时间(ISO8601格式) "isPush INTEGER DEFAULT 1)"; // 0=待上传, 1=已上传 public DBHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); // 开启WAL模式 日志监控 SQLiteDatabase db = getWritableDatabase(); db.enableWriteAheadLogging(); // 开启WAL模式 Log.d("DB_PATH", db.getPath()); // 输出数据库路径 } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE_DELIVERY); // 为唯一键添加索引 db.execSQL("CREATE UNIQUE INDEX idx_delivery_no ON delivery(deliveryNo)"); db.execSQL("CREATE INDEX idx_operation_time ON delivery(operationTime DESC)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS delivery"); onCreate(db); } }