一个简单的入门 Android app 示例, 学生管理系统, 单表查询, 实习增、删、改、查, 基于:SQLiteOpenHelper
部分代码:SQLiteOpenHelper.java
package com.lw.db; import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import android.text.TextUtils; import com.lw.main.Student; public class DBHelper extends SQLiteOpenHelper { private static DBHelper myDBHelper = null; public DBHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } public static DBHelper getDBHelper(Context context) { if(myDBHelper == null) { myDBHelper = new DBHelper(context, DBConfig.DB_NAME, null, DBConfig.DB_VERSION); } return myDBHelper; } @Override public void onCreate(SQLiteDatabase db) { String sql = "create table " + DBConfig.TABLE_STUDENT + "(_id integer primary key autoincrement, serialNo VARCHAR2(20) not null, name VARCHAR2(50) not null, sex VARCHAR2(4), age VARCHAR2(4), className VARCHAR2(50) not null)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = "DROP TABLE IF EXISTS " + DBConfig.TABLE_STUDENT; db.execSQL(sql); onCreate(db); } /*** * insert 学生信息 * @param serialNo * @param name * @param sex * @param age * @param className * @return */ public long insertStudent(String serialNo, String name, String sex, String age, String className) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues cv = new ContentValues(); cv.put("serialNo", serialNo); cv.put("name", name); cv.put("sex", sex); cv.put("age", age); cv.put("className", className); long rowId=db.insert(DBConfig.TABLE_STUDENT, null, cv); System.out.println("-----rowId-------"+rowId); return rowId; } /*** * 删除表的(所有)数据 * @param tableName */ public void clearData(String tableName) { SQLiteDatabase db = this.getReadableDatabase(); String sql = "DELETE FROM " + tableName; db.execSQL(sql); } /*** * 删除单条记录 * @param _id */ public void deleteStudent(int _id) { SQLiteDatabase db = this.getReadableDatabase(); String sql = "DELETE FROM " + DBConfig.TABLE_STUDENT + " WHERE _id=" + _id; db.execSQL(sql); } /*** * 编辑 * @param _id */ public void updateStudent(Student stu) { SQLiteDatabase db = this.getReadableDatabase(); ContentValues cv = new ContentValues(); //cv.put("serialNo", stu.getSerialNo()); cv.put("name", stu.getName()); cv.put("sex", stu.getSex()); cv.put("age", stu.getAge()); cv.put("className", stu.getClassName()); int rowId=db.update(DBConfig.TABLE_STUDENT, cv, "_id =?", new String[]{ stu.get_id() + "" }); System.out.println("-----update RowId------"+rowId); } /*** * 查询全部学生信息 * @param stu * @return */ public List<Student> queryStudents(Student stu) { List<Student> list = new ArrayList<Student>(); SQLiteDatabase db = this.getReadableDatabase(); String sql = "select * from " + DBConfig.TABLE_STUDENT; if(stu != null) { sql += " where 1=1 "; if(TextUtils.isEmpty(stu.getSerialNo()) == false) { // TODO } if(TextUtils.isEmpty(stu.getName()) == false) { sql += " and name like '%" + stu.getName() + "%'"; } } sql += " order by serialNo "; Cursor cursor = db.rawQuery(sql, null); Student info = null; while(cursor.moveToNext()) { info = new Student(); info.set_id(cursor.getInt(cursor.getColumnIndexOrThrow("_id"))); info.setSerialNo(cursor.getString(cursor.getColumnIndexOrThrow("serialNo"))); info.setName(cursor.getString(cursor.getColumnIndexOrThrow("name"))); info.setSex(cursor.getString(cursor.getColumnIndexOrThrow("sex"))); info.setAge(cursor.getString(cursor.getColumnIndexOrThrow("age"))); info.setClassName(cursor.getString(cursor.getColumnIndexOrThrow("className"))); list.add(info); } return list; } }
登录界面:
信息列表:
新增信息:
相关推荐
开发者可以通过SQLiteOpenHelper类来创建、升级数据库,并通过SQL语句来操作数据。例如,创建一个表的SQL语句可能是这样的: ```java CREATE TABLE IF NOT EXISTS TableName ( id INTEGER PRIMARY KEY ...
Android 数据库 SQLite 的简单示例 Android 中提供了三种数据存储方式,分别是文件存储、SharedPreferences 存储和数据库 SQLiteDatabase 存储。文件存储和 SharedPreferences 存储已经在之前的文章中进行了详细的...
"Android 中 SQLiteOpenHelper 的封装使用详解" SQLiteOpenHelper 是 Android 中一个...SQLiteOpenHelper 的封装使用详解非常重要,它提供了对 SQLite 数据库的访问和管理功能,方便了 Android 应用程序的数据库操作。
在项目`EmployeeSQLiteAndroidApp-master`中,你可以找到一个完整的示例,展示了如何在Android应用中实现SQLite数据库的创建、增删改查操作。通过研究这个例子,你可以更深入地理解如何在实际项目中运用SQLite,提高...
综上所述,Android Lifecost App源码提供了一个全面的Android应用开发示例,涵盖了从UI设计到后台数据处理的多个关键环节,对于Android开发者来说具有很高的学习价值。通过深入分析和实践,我们可以掌握Android应用...
- 在`ContentProvider` 中,我们通常会创建一个`SQLiteOpenHelper` 的子类,用于处理数据库的生命周期和数据操作。 - `ContentProvider` 的数据访问方法(如`query()`)会调用`SQLiteOpenHelper` 的相应方法,完成...
通过以上分析,我们可以看出这个智能交通app是如何利用SQLite数据库来实现用户登录功能的,同时也涉及到了Android应用的基本结构和数据库操作。对于Android开发者来说,理解这些知识点对于提升自己的开发技能非常有...
目录SQLite数据库简介SQLiteOpenHelper主要方法构造方法onCreate方法onUpgradegetWritableDatabase() 和getReadableDatabase()方法SQLiteOpenHelper类的完整示例代码SQLiteDatabase主要方法增 AddDelete 删查 query...
总之,这个Android应用源码示例提供了对SQLite数据库操作的全面实践,对于理解和掌握Android应用中的数据管理至关重要,尤其对于正在进行毕业设计或者准备论文的学生,这是一个非常有价值的参考资源。通过学习和理解...
本项目名为"Android-笔记一款以sqlitedatabase为数据库采用MVP架构的轻便易用的笔记app",它是一个典型的Android应用示例,旨在展示如何结合SQLite数据库和Model-View-Presenter(MVP)架构模式来创建一个功能完善的...
总之,Android应用中的SQLite数据库是数据存储的关键工具,通过创建SQLiteOpenHelper子类、操作SQL语句以及复制预置.db文件,我们可以实现数据的本地化存储,满足应用对数据持久化的需要。对于初学者来说,理解和...
【Android应用源码酒店在线预定app项目全套】这个压缩包文件提供了一个完整的Android应用程序源代码,主要用于实现酒店在线预订的功能。这个项目可以帮助开发者深入理解Android应用开发中的诸多技术和最佳实践,包括...
- **实现原理**:创建一个服务类,在服务中进行数据获取与通知发送的操作。 - **实现步骤**: - 创建服务类,继承自`Service`。 - 在服务中访问网络获取最新天气数据并更新数据库。 - 使用`NotificationManager`...
这份“Android应用源码之Android学习之数据存储”压缩包提供了有关Android数据存储的实践示例,是进行Android毕业设计或移动开发App学习的宝贵资源。以下将详细解释Android中常用的数据存储方式及其在实际应用中的...
开发者可能使用SQLiteOpenHelper的子类来管理数据库的版本和结构,通过ContentProvider进行数据的CRUD操作,这样还可以方便其他应用通过标准的Android数据共享机制访问这些数据。 两级密码管理是指在应用中设置了两...
SQLite提供了SQL语言来操作数据,包括创建表(CREATE TABLE)、插入数据(INSERT)、查询数据(SELECT)、更新数据(UPDATE)和删除数据(DELETE)。例如,你可以创建一个名为`Users`的表,包含`id`和`name`两个字段...
9. **数据备份与恢复**: Android提供API允许开发者实现数据的备份和恢复,包括SQLite数据库,这可以帮助用户在设备之间同步或恢复数据。 10. **数据库优化**: 对于大型数据库,可以使用索引来加快查询速度,合理...
`ContentProvider`是Android框架中用于数据共享的关键组件,它提供了一种标准接口,使得其他应用程序可以通过URI来访问和操作数据。创建`ContentProvider`需要继承`ContentProvider`类,并重写其中的`query()`, `...