Android轻松打开数据库:简单诀窍 (android 打开一个数据库文件)

随着智能手机的普及,移动应用也越来越受到人们的关注和欢迎。而随着数据量的增加,如何有效地管理和存储这些数据也成为了一个很重要的问题。对于开发人员来说,数据库就是一个非常重要的工具。Android平台为开发人员提供了SQLite数据库,但是如何打开并且使用它呢?在本文中,我们将分享一些简单的诀窍,帮助你轻松打开数据库。

一、创建SQLiteOpenHelper类

在Android平台下,数据存储往往是通过SQLite数据库完成的。SQLiteOpenHelper是一个用于管理SQLite数据库的类,在你的应用程序中使用它可以轻松处理一些数据库操作。在创建SQLiteOpenHelper时,需要传入一个Context参数和一个数据库名称。以下是一个示例代码:

“`

public class DatabaseHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = “students.db”;

private static final int DATABASE_VERSION = 1;

public DatabaseHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL(“CREATE TABLE students (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, gender TEXT)”);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

db.execSQL(“DROP TABLE IF EXISTS students”);

onCreate(db);

}

}

“`

在这个示例代码中,我们定义了一个DatabaseHelper类,并重写了onCreate()和onUpgrade()方法。在onCreate()方法中创建了一个名为“students”的表格,包含id、name、age和gender几个字段。如果表格已经存在,此函数会被跳过。在onUpgrade()方法中,如果数据库版本变化,会先清空之前的数据表然后重新创建。

二、打开数据库

打开数据库的过程非常简单,只需要使用到getWritableDatabase()和getReadableDatabase()方法。

“`

DatabaseHelper dbHelper = new DatabaseHelper(this);

SQLiteDatabase db = dbHelper.getWritableDatabase();

“`

使用getWritableDatabase()会返回一个可写的数据库对象,若数据库不存在则创建一个新的数据库;而使用getReadableDatabase()则返回一个只读的数据库对象,若能找到数据库则返回该对象,否则创建一个新的只读对象。

三、关闭数据库

关闭数据库也是一个过程非常简单的步骤,调用close()方法即可:

“`

db.close();

“`

不要忘记在你的应用程序中关闭数据库,否则这会造成资源浪费。

四、将数据添加到数据库

有了打开数据库的过程之后,就可以往数据中添加数据了。需要考虑的就是在打开它之前添加数据。假设我们要往“students”表中添加一些数据:

“`

db.execSQL(“INSERT INTO students (name, age, gender) VALUES (‘张三’, 20, ‘男’)”);

“`

这行代码非常简单,只需要在SQL语句中给出要添加的值即可。

五、查询数据库

查询时可以使用rawQuery()或query()方法,以下是一个示例代码:

“`

Cursor cursor = db.rawQuery(“SELECT * FROM students”, null);

if (cursor.moveToFirst()) {

do {

String name = cursor.getString(cursor.getColumnIndex(“name”));

int age = cursor.getInt(cursor.getColumnIndex(“age”));

String gender = cursor.getString(cursor.getColumnIndex(“gender”));

} while (cursor.moveToNext());

}

cursor.close();

“`

在这个示例代码中,我们使用了rawQuery()方法来查询“students”表中的所有数据,并将查询结果保存到Cursor对象cursor中。使用moveToFirst()方法将游标移动到查询的之一行,然后再通过getColumnIndex()方法获取所需的字段值。

六、

Android平台提供了SQLiteOpenHelper等一些工具,帮助开发人员管理SQLite数据库。本文中,我们介绍了一些简单的诀窍,帮助你轻松地打开、添加和查询数据库。如果你想学习更多关于Android开发的知识,请关注我们的博客。

相关问题拓展阅读:

android 怎么读取数据库中的数据?

android读取数据库可以使用sqlite一些api进行读取,实例如下:

 陵碧基 /** 

     * 查找一条数据 

     * @param uid 

     */  

    public User find(Integer uid){  

SQLiteDatabase db=dbOpenHelper.getReadableDatabase();  //创建数据库辅助类

Cursor cursor =db.rawQuery(“select * from user where uid=?”, new String{uid.toString()});  //创建一个游标

if(cursor.moveToFirst()){  //循环遍历查找数组

int uid2=cursor.getInt(cursor.getColumnIndex(“uid”));  

String uname=cursor.getString(cursor.getColumnIndex(“uname”));  

String uaddress=cursor.getString(cursor.getColumnIndex(“uaddress”));  

User user=new User();  

user.setUid(uid2);  

user.setUname(uname);  

user.setUaddress(uaddress);  

尺谨return user;  

}  

cursor.close();  

慧则return null;  

    }

Android里面Sqlite的使用

使用步骤

1,创建一个SqliteOpenHelper的子类

public class MySqliteOpenHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1;//数据库版本
 public static final String DATABASE_NAME=”user.db”;//数据库文件 名
 public static final String TABLE_NAME=”user”;//表名

 //字段名
 public static final String ID=”id”; public static final String NAME=”name”; public static final String AGE=”age”; /** * 构造方法
 * @param context :闷孝上下文
 * @param name :数据文件名
 * @param factory :数据库工厂 使用过程中传null * @param version :数据库版本*/ public MySqliteOpenHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION); } /** * 当数据库打开时调用
 * @param db 数据库操作对象
 */ @Override public void onOpen(SQLiteDatabase db) {super.onOpen(db);System.out.println(“onOpen”); } /** * 创建数据库的方法
 * @param db 数据库操作对象升罩迅 CRUDCREATE READ UPDATE DELETE */ @Override public void onCreate(SQLiteDatabase db) {System.out.println(“onCreate”); } /** *当数据库的版本有提升时调用
 * @param db 数据库操作对象
 * @param oldVersion 老吵此版本号
 * @param newVersion 新版本号
 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//更新表//更新数据System.out.println(“onUpgrade”); } /** * 当数据库版本降低时调用 —没什么用
 * @param db * @param oldVersion * @param newVersion */ @Override public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {super.onDowngrade(db, oldVersion, newVersion);System.out.println(“onUpgrade”); }}

onCreate方法:在之一次调用getReadableDatabase(),getWriteableDatabase()方法里调用【如果磁盘上没有数据库文件就会调用】

onOpen方法:在调用getReadableDatabase(),getWriteableDatabase()调用

onUpgrade()方法,当数据库版本提升时调用

getWritableDatabase()得到可读可写的数据库操作对象。如果内存不足,该方法会锁定数据库,并抛异常

getReadableDatabase()得到可读写的数据库操作对象,,如果内存不足,数据库就只能写了

2,重写onCreate方法

public MySqliteOpenHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION); }

@Override public void onCreate(SQLiteDatabase db) { // 创建表 String sql = “CREATE TABLE ” + TABLE_NAME + “( ” + _ID + ” Integer primary key autoincrement,” + NAME + ” TEXT, ” + PASSWORD + ” TEXT)”; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }

3,初始化数据库

//创建数据库

public void mysqlite(View view)

{

//创建 实现工具类

DBHelper dh = new DBHelper(“test.db”,1);

//连接数据库 获取数据库实例

//getWritableDatabase() 数据写满会报错

//getReadableDatabase() 数据写满不会报错

SQLiteDatabase sd = dh.getWritableDatabase();

sd.close();

4,对数据库进行CRUD

参考demo:

public class DBHelper { private final static String DATABASE_NAME = “TestDB2.db”;// 数据库文件名 private final static int VERSION = 1;// 数据库版本 private final static String TABLE_NAME = “users”;// 表名 private final static String _ID = “_id”;// 编号 private final static String NAME = “name”;// 用户名字段 private final static String PASSWORD = “password”;// 用户密码 // 操作数据库的类 private SQLiteDatabase database; MySQLiteOpenHepler hepler; // 写一个内部类去处理数据库的创建和版本的更新 class MySQLiteOpenHepler extends SQLiteOpenHelper { public MySQLiteOpenHepler(Context context) { super(context, DATABASE_NAME, null, VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建表 String sql = “CREATE TABLE ” + TABLE_NAME + “( ” + _ID + ” Integer primary key autoincrement,” + NAME + ” TEXT, ” + PASSWORD + ” TEXT)”; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } public DBHelper(Context context) { hepler = new MySQLiteOpenHepler(context); database = hepler.getWritableDatabase(); } // 添加 public void insert(User user) { ContentValues values = new ContentValues(); values.put(NAME, user.getName()); values.put(PASSWORD, user.getPassword()); database.insert(TABLE_NAME, null, values); } // 修改 public void update(User user) { ContentValues values = new ContentValues(); values.put(NAME, user.getName()); values.put(PASSWORD, user.getPassword()); database.update(TABLE_NAME, values, _ID + “=?”, new String { String.valueOf(user.getId()) }); } // 删除 public void delete(int id) { database.delete(TABLE_NAME, _ID + “=?”, new String { String.valueOf(id) }); }// 查询一个 public User queryById(int id) { User u = null; Cursor cursor = database.query(TABLE_NAME, null, _ID + “=?”, new String { String.valueOf(id) }, null, null, null); if (cursor.getCount() > 0) { cursor.moveToNext(); u = new User(cursor.getInt(0), cursor.getString(1), cursor.getString(2)); } return u; } }

做一个WEBServerse取出数据转换成XML输出,再用android。bundle接受编译

android 打开一个数据库文件的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于android 打开一个数据库文件,Android轻松打开数据库:简单诀窍,android 怎么读取数据库中的数据?的信息别忘了在本站进行查找喔。


数据运维技术 » Android轻松打开数据库:简单诀窍 (android 打开一个数据库文件)