android 数据库详解,Android-SQLite数据库操作详解

主要就是创建数据库,添加、查询、更新、删除这几项。

package com.wr.sqlite;

import android.content.Context;

import android.database.sqlite.sqliteDatabase;

import android.database.sqlite.sqliteDatabase.CursorFactory;

import android.database.sqlite.sqliteOpenHelper;

import android.widget.Toast;

public class MyDatebaseHelper extends sqliteOpenHelper {

public static final String CREATE_BOOK = "create table Book ("

+ "id integer primary key autoincrement," + "author text,"

+ "price real," + "pages integer," + "name text) ";

public static final String CREATE_CATEGORY = "create table Category ("

+ "id integer primary key autoincrement," + "category_name text,"

+ "category_code integer) ";

private Context mContext;

public MyDatebaseHelper(Context context,String name,CursorFactory factory,int version) {

super(context,name,factory,version);

mContext = context;

// TODO Auto-generated constructor stub

}

@Override

public void onCreate(sqliteDatabase db) {

// TODO Auto-generated method stub

db.execsql(CREATE_BOOK);

db.execsql(CREATE_CATEGORY);

Toast.makeText(mContext,"Create succeeded",Toast.LENGTH_SHORT).show();

}

@Override

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

// TODO Auto-generated method stub

switch (oldVersion) {

case 1:

db.execsql(CREATE_CATEGORY);

case 2:

db.execsql("alter table Book add column category_id integer");

}

}

}

这里将见表语句定义成了字符串,在哦你Create()方法中建表。

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/create_database"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Create database" />

android:id="@+id/add_data"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Add date" />

android:id="@+id/update_data"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Update date" />

android:id="@+id/delete_data"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Delete date" />

android:id="@+id/query_data"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Query date" />

android:id="@+id/replace_data"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Replace date" />

最后在MainActiity中,实现一系列的操作。MainActivity.java

package com.wr.sqlite;

import android.app.Activity;

import android.content.ContentValues;

import android.database.Cursor;

import android.database.sqlite.sqliteDatabase;

import android.os.Bundle;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class MainActivity extends Activity {

private MyDatebaseHelper dbHelper;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

dbHelper = new MyDatebaseHelper(this,"BookStore.db",null,2);

Button createDatabase = (Button) findViewById(R.id.create_database);

createDatabase.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

dbHelper.getWritableDatabase();

}

});

Button addData = (Button) findViewById(R.id.add_data);

addData.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

sqliteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put("name","The Da Vinci Code");

values.put("author","Dan Brown");

values.put("pages",454);

values.put("price",16.96);

db.insert("Book",values);

values.clear();

values.put("name","The Lost Sysbol");

values.put("author",510);

values.put("price",19.95);

db.insert("Book",values);

}

});

Button updateData = (Button) findViewById(R.id.update_data);

updateData.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

sqliteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put("price",10.99);

db.update("Book",values,"name = ?",new String[] { "The Da Vinci Code" });

}

});

Button deleteData = (Button) findViewById(R.id.delete_data);

deleteData.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

sqliteDatabase db = dbHelper.getWritableDatabase();

db.delete("Book","pages > ?",new String[] { "500" });

}

});

Button queryData = (Button) findViewById(R.id.query_data);

queryData.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

sqliteDatabase db = dbHelper.getWritableDatabase();

Cursor cursor = db.query("Book",null);

if (cursor.moveToFirst()) {

do {

String name = cursor.getString(cursor

.getColumnIndex("name"));

String author = cursor.getString(cursor

.getColumnIndex("author"));

int pages = cursor.getInt(cursor

.getColumnIndex("pages"));

double price = cursor.getDouble(cursor

.getColumnIndex("price"));

Log.d("MainActivity","book name is " + name);

Log.d("MainActivity","book author is " + author);

Log.d("MainActivity","book pages is " + pages);

Log.d("MainActivity","book price is " + price);

} while (cursor.moveToNext());

}

cursor.close();

}

});

Button replaceData = (Button) findViewById(R.id.replace_data);

replaceData.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

sqliteDatabase db = dbHelper.getWritableDatabase();

db.beginTransaction();

try {

db.delete("Book",null);

ContentValues values = new ContentValues();

values.put("name","Game of Thrones");

values.put("author","George Martin");

values.put("pages","720");

values.put("price",20.85);

db.insert("Book",values);

db.setTransactionSuccessful();

} catch (Exception e) {

e.printStackTrace();

} finally {

db.endTransaction();

}

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main,menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button,so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

}

这其中也包含了事物的使用。比较具体。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android中的SQLite数据库是一种轻量级的数据库,它可以在Android应用程序中存储和检索数据。SQLite数据库使用SQL语言来管理数据,可以在Android应用程序中创建、读取、更新和删除数据。使用SQLite数据库可以使应用程序更加高效和可靠,因为它可以在本地存储数据,而不需要访问网络。在Android中使用SQLite数据库需要使用SQLiteOpenHelper类来创建和管理数据库SQLiteOpenHelper类提供了一些方法来创建和升级数据库,以及插入、查询、更新和删除数据。在使用SQLite数据库时,需要注意数据类型、表结构、SQL语句等方面的问题,以确保数据的正确性和完整性。 ### 回答2: Android平台经常使用SQLite数据库来存储和管理本地数据。在本文中,我们将讨论如何在Android中使用SQLite数据库。 首先,在Android中使用SQLite数据库,我们需要创建一个SQLiteOpenHelper类。这个类用于创建和升级数据库。它包含了两个重要的方法:onCreate()和onUpgrade()。onCreate()方法将在首次创建数据库时被调用。onUpgrade()方法将在升级数据库时被调用。我们可以在这个类中定义表名,列名,数据库版本号和其他数据库相关信息。 接下来,在我们使用数据库前,需要实例化一个SQLiteOpenHelper类对象。这个对象用于打开或创建数据库。我们可以使用getReadableDatabase()和getWritableDatabase()方法来获取一个可读/写的数据库对象。 在获取数据库对象后,我们可以执行SQL命令来操作数据库。我们可以使用execSQL()方法来执行SQL命令。我们可以使用insert()、update()和delete()方法来执行增、删、改操作。我们可以使用rawQuery()方法来执行查询操作SQLiteOpenHelper类和SQLiteDatabase类并不是线程安全的。因此我们需要确保在使用时进行同步操作。我们可以使用synchronized关键字来达到同步效果。 在Android中,许多第三方的开源框架,如OrmLite、GreenDao和Realm等,提供了ORM(对象关系映射)的功能,使得数据库操作更加简单和便捷。 总的来说,在Android中使用SQLite数据库可以轻松地存储和管理本地数据。SQLiteOpenHelper和SQLiteDatabase提供了丰富的API来操作数据库。ORM框架为我们提供了更加简便的数据库操作方式。因此,掌握AndroidSQLite数据库的使用非常重要。 ### 回答3: Android SQLite数据库Android开发中最常用的数据库之一,它是一个基于文件的嵌入式关系数据库管理系统。SQLite在设计时考虑到了资源占用和运行效率,所以非常适合在移动设备上使用。下面将详细介绍如何使用Android SQLite数据库。 1. 创建数据库 首先需要创建一个SQLite数据库,通过SQLiteOpenHelper类来创建,传入的参数主要是数据库版本号和数据库名称。在SQLiteOpenHelper的子类中重写onCreate方法来创建表格和一些初始化操作。 2. 执行SQL语句 在SQLiteOpenHelper的子类中重写onUpgrade方法来执行升级操作,可以通过执行ALTER TABLE语句来修改表格结构,并通过DROP TABLE语句删除表格。除此之外,在应用中也可以通过SQLiteDataBase对象的execSQL方法来执行SQL语句,如插入、删除或修改数据等。 3. 增删改查操作 增加(insert):通过SQLiteDataBase对象的insert方法来实现,在方法中传入表名和map对象,map对象中存储数据的键值对。 删除(delete):同样通过SQLiteDataBase对象的delete方法来实现,传入表名和删除条件。 修改(update):也是通过SQLiteDataBase对象的update方法来实现,同时传入修改的数据及条件。 查询(query):同样通过SQLiteDataBase对象的query方法来实现,传入要查询的表名、查询的列、查询条件等参数即可。 4. 事务操作 SQlite数据库支持事务操作,可以在一组操作中,只要有一个操作出现问题,就可以将之前的操作全部回滚,以保证数据的完整性和一致性。 以上就是android-sqlite数据库的使用方法,当然还有很多细节需要注意,例如:表格的设计、SQL语句的优化等。熟练掌握SQLite的使用,可以帮助开发者更好地管理应用数据,提高应用性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值