SQlite使用
SQlite是android默认的数据库,属于轻量型的关系型数据库。用法如下:
DBHelper类:
public class MyDBHelper extends SQLiteOpenHelper{ public static final String DB_NAME = "dbtest1.db"; public static final String TABLE_NAME = "table1"; public MyDBHelper(Context context) { super(context, DB_NAME, null, 1); } @Override public void onCreate(SQLiteDatabase db) { String sql0= "drop table if exists " + TABLE_NAME; db.execSQL(sql0); String sql = "create table if not exists " + TABLE_NAME + " (id integer primary key, name text, age integer, address text)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = "drop table if exists " + TABLE_NAME; db.execSQL(sql); onCreate(db); } }
具体使用方式:
public class DbTest { private static MyDBHelper dbHelper = null; private static void createTable(Context context){ if(dbHelper == null){ dbHelper = new MyDBHelper(context); } } private static void insertTest(){ SQLiteDatabase db = dbHelper.getWritableDatabase(); db.beginTransaction(); db.execSQL("insert into " + MyDBHelper.TABLE_NAME + " (id, name, age, address) values(1, 'Jack', 25, 'beijing' )"); db.execSQL("insert into " + MyDBHelper.TABLE_NAME + " (id, name, age, address) values(2, 'Green', 26, 'shanghai' )"); db.execSQL("insert into " + MyDBHelper.TABLE_NAME + " (id, name, age, address) values(3, 'Herry', 27, 'nanjing' )"); // db.setTransactionSuccessful(); // db.beginTransaction(); ContentValues values = new ContentValues(); values.put("id", 4); values.put("name", "Mary"); values.put("age", 28); values.put("address", "shenzhen"); db.insertOrThrow(MyDBHelper.TABLE_NAME, null, values); db.setTransactionSuccessful(); db.endTransaction(); } private static void queryTest(){ SQLiteDatabase db = dbHelper.getWritableDatabase(); String[] colums = new String[]{"id", "name", "age", "address"}; Cursor cursor = db.query(MyDBHelper.TABLE_NAME, colums, null, null, null, null, null); if(cursor!=null && cursor.getCount()>0){ while(cursor.moveToNext()){ int id = cursor.getInt(cursor.getColumnIndex("id")); String name = cursor.getString(cursor.getColumnIndex("name")); int age = cursor.getInt(cursor.getColumnIndex("age")); String address = cursor.getString(cursor.getColumnIndex("address")); Log.i(MainActivity.TAG, "(" + id + ", " + name + ", " + age + ", " + address + ")"); } } cursor.close(); } private static void deleteTest(){ SQLiteDatabase db = dbHelper.getWritableDatabase(); // String sql = "delete from " + MyDBHelper.TABLE_NAME + " where name = 'Green'"; // db.execSQL(sql); db.beginTransaction(); db.delete(MyDBHelper.TABLE_NAME, "name=?", new String[]{"Green"}); db.setTransactionSuccessful(); // db.endTransaction(); } private static void updateTest(){ SQLiteDatabase db = dbHelper.getWritableDatabase(); // String sql = "update " + MyDBHelper.TABLE_NAME + " set name='change' where age=27"; // db.execSQL(sql); db.beginTransaction(); ContentValues values = new ContentValues(); values.put("name", "change1"); db.update(MyDBHelper.TABLE_NAME, values, "age=?", new String[]{"27"}); db.setTransactionSuccessful(); db.endTransaction(); } public static void dbTest(Context context){ createTable(context); insertTest(); queryTest(); // deleteTest(); // queryTest(); updateTest(); queryTest(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!