android开发之SQLite数据库 增、删、改、查

http://blog.csdn.net/zzy916853616/article/details/6599898

学习android开发不可避免的会涉及数据库的使用,android使用的是SQLite数据库。对于SQLite数据库的基本信息这里就不过多的介绍,我们主要看哈是怎么用的就是了。

与以往数据库不一样的地方

以前我们做javaWeb开发时用jdbc连接,现在变了,个人觉得变得简单了。在应用程序中直接就可以去创建数据库,然后对其进行操作。不用像以前写连接代码。

操作数据库

一,SQLiteOpenHelper 类

其中

getReadableDatabase()得到可读的数据库,返回SQLiteDatabase对象,然后通过对象进行数据库操作。

getWritableDatabase()得到可写的数据库,返回SQLiteDatabase对象,然后通过对象进行数据库操作。

onCreate(SQLiteDatabase db)在第一次创建数据库时调用。

onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)在更改数据库时都会调用。

onOpen(SQLiteDatabase db)当数据库打开时调用。

close()关闭数据库。

二,SQLiteDatabase类

这个类提供了对数据库的一些基本操作:

insert()

delete()

update()

query()

。。。。。等等。

代码:

SQLiteOpenHelper 的子类:

  1. import android.content.Context;  
  2. import android.database.sqlite.SQLiteDatabase;  
  3. import android.database.sqlite.SQLiteDatabase.CursorFactory;  
  4. import android.database.sqlite.SQLiteOpenHelper;  
  5.   
  6. /** 
  7.  * 通过getReadableDatabase()和getWritableDatabase()可以获得数据库对象。 
  8.  * 提供onCreate()-创建数据库时,onUpgrade()-升级数据库时,两个回调函数。 
  9.  */  
  10. public class DatabaseHelper extends SQLiteOpenHelper {  
  11.   
  12.     // 按要求必须要有构造函数  
  13.     public DatabaseHelper(Context context, String name, CursorFactory factory,  
  14.             int version) {  
  15.         super(context, name, factory, version);  
  16.     }  
  17.   
  18.     // 当第一次得到SQLiteDatabase对象时,调用该方法  
  19.     @Override  
  20.     public void onCreate(SQLiteDatabase db) {  
  21.         String sql = "create table MSG(id int,body varchar(100))";  
  22.         db.execSQL(sql);  
  23.         System.out.println("创建了一个数据库!");  
  24.     }  
  25.   
  26.     // 当更新数据库时执行该方法  
  27.     @Override  
  28.     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  29.         System.out.println("更新了数据库!");  
  30.         // 还可以写其他的操作  
  31.     }  
  32. }  

有了这个类后,我们就可以对数据库进行增、删、改、查操作了。
 插入数据:

  1. //生成ContentValues对象,key:列名,value:想插入的值  
  2.                 ContentValues values = new ContentValues();  
  3.                 values.put("id"1);  
  4.                 values.put("body""hello");  
  5.                 DatabaseHelper dbhelper = new DatabaseHelper(SqliteActivity.this"text_msg"null2);  
  6.                 //得到可写的SQLiteDatabase对象  
  7.                 SQLiteDatabase db = dbhelper.getWritableDatabase();  
  8.                 //调用insert方法,将数据插入数据库  
  9.                 //参数1:表名  
  10.                 //参数2:如果你想插入空值,那么你必须指定它的所在的列  
  11.                 db.insert("MSG"null, values);  
  12.                 System.out.println("插入了:1, hello");  

删除数据:

  1. DatabaseHelper dbhelper = new DatabaseHelper(SqliteActivity.this"text_msg"null2);  
  2.                 //得到可写的SQLiteDatabase对象  
  3.                 SQLiteDatabase db = dbhelper.getWritableDatabase();  
  4.                 //调用delete方法,删除数据  
  5.                 db.delete("MSG""id=?"new String[]{"1"});  
  6.                 System.out.println("删除了:id=1");  

修改数据:

  1. ContentValues values = new ContentValues();  
  2.                 values.put("body""my dear!");  
  3.                 DatabaseHelper dbhelper = new DatabaseHelper(SqliteActivity.this"text_msg"null2);  
  4.                 //得到可写的SQLiteDatabase对象  
  5.                 SQLiteDatabase db = dbhelper.getWritableDatabase();  
  6.                 //调用insert方法,将数据插入数据库  
  7.                 //参数3:where 子句 "?"是占位符号,对应后面的"1",这和web开发时的语法是一样的  
  8.                 db.update("MSG", values, "id=?"new String[]{"1"});  
  9.                 System.out.println("更新了:hello-->my dear!");  

查询数据:

  1. DatabaseHelper dbhelper = new DatabaseHelper(SqliteActivity.this"text_msg"null2);  
  2.                 //得到可读的SQLiteDatabase对象  
  3.                 SQLiteDatabase db = dbhelper.getReadableDatabase();  
  4.                 //参数1:表名  
  5.                 //参数2:要想显示的列  
  6.                 //参数3:where子句  
  7.                 //参数4:where子句对应的条件值  
  8.                 //参数5:分组方式  
  9.                 //参数6:having条件  
  10.                 //参数7:排序方式  
  11.                 Cursor cursor = db.query("MSG"new String[]{"id","body"}, "id=?"new String[]{"1"}, nullnullnull);  
  12.                 System.out.println("查到的数据为:");  
  13.                 while(cursor.moveToNext()){  
  14.                         int id = cursor.getInt(cursor.getColumnIndex("id"));  
  15.                         String name = cursor.getString(cursor.getColumnIndex("body"));  
  16.                         System.out.println("-->"+id+"::::::::::"+name);  
  17.                     }  

怎样使用adb查看数据库?

SQLite没有客户端,不能直接的查看数据库,所以用它提供的adb吧。

1,进入命令行后输入adb回车,会显示很多的信息。

2,输入adb shell回车,就进入了Linux命令行,现在就可以使用Linux的命令了。

3,ls回车,显示所有的东西,其中有个data。(ls:显示所有,cd:进入)

4,cd data回车,再ls回车,cd data回车,ls回车后就会看到很多的com.。。。的东西,那就是机器上的应用程序,找到你应用程序的包名,然后进入。

5,进去后在查看所有,会发现个databases,进入databases,显示所有就会发现你的数据库名字,我这里使用的是"text_msg"。

6,sqlite3 text_msg回车就进入了你的数据库了,然后“.schema”就会看到该应用程序的所有表及建表语句。

7,现在你就可以使用标准的SQL语句查看刚才生成的数据库及数据了。

          对数据库的操作方法很多,这只是其中一种。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio是一款用于开发Android应用程序的集成开发环境(IDE)。要实现数据库功能,你可以使用Android Studio提供的SQLite数据库。 首先,你需要创建一个数据库帮助类,该类继承自SQLiteOpenHelper。在该类中,你可以定义数据库的结构和版本,并实现创建和升级数据库的方法。 接下来,你可以创建一个数据模型类,用于表示数据库中的表和字段。在该类中,你可以定义表的名称和字段的名称、类型等信息。 然后,你可以创建一个数据访问类,用于执行数据库操作。在该类中,你可以使用SQLiteDatabase类提供的方法来执行SQL语句,实现数据的插入、删除、更新和操作。 以下是一个简单的示例代码,演示了如何使用Android Studio实现数据库功能: 1. 创建数据库帮助类: ```java public class DBHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "mydatabase.db"; private static final int DATABASE_VERSION = 1; public DBHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建表的SQL语句 String createTableQuery = "CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)"; db.execSQL(createTableQuery); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 升级数据库操作 } } ``` 2. 创建数据模型类: ```java public class MyModel { private int id; private String name; public MyModel(int id, String name) { this.id = id; this.name = name; } // getter和setter方法省略... } ``` 3. 创建数据访问类: ```java public class DataAccess { private DBHelper dbHelper; public DataAccess(Context context) { dbHelper = new DBHelper(context); } public void insertData(String name) { SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", name); db.insert("mytable", null, values); db.close(); } public void deleteData(int id) { SQLiteDatabase db = dbHelper.getWritableDatabase(); db.delete("mytable", "id=?", new String[]{String.valueOf(id)}); db.close(); } public void updateData(int id, String newName) { SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", newName); db.update("mytable", values, "id=?", new String[]{String.valueOf(id)}); db.close(); } public List<MyModel> queryData() { List<MyModel> dataList = new ArrayList<>(); SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.query("mytable", null, null, null, null, null, null); if (cursor.moveToFirst()) { do { int id = cursor.getInt(cursor.getColumnIndex("id")); String name = cursor.getString(cursor.getColumnIndex("name")); MyModel model = new MyModel(id, name); dataList.add(model); } while (cursor.moveToNext()); } cursor.close(); db.close(); return dataList; } } ``` 以上代码演示了如何使用Android Studio实现数据库功能。你可以根据自己的需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值