Android 应用程序与其他应用程序一样都是要和数据库打交道的。Android使用的数据库一般是SQLite 或者 MySql。SQLite的应用非常广泛,从Android到IOS系统使用的都是SQLite数据库,Android 提供了操作SQLite的类库,而MySql则需要通过导入MySql connection 的jar包才能操作数据库。SQLite最大存储容量可以达到2T对于绝大多数的移动应用来说绝对足够了。

今天使用SQLite数据库写了一个CRUD的Demo,这里贴出来供大家参考。

<span style="font-family:Microsoft YaHei;">package com.example.androidexample;import android.annotation.SuppressLint;import android.app.Activity;import android.content.ContentValues;import android.database.Cursor;import android.database.SQLException;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class DatabaseActivity extends Activity {private Button btnCreateDatabase;private Button btnCreateDatatable;private Button btnInsertData;private Button btnQueryData;private SQLiteDatabase db;private static String queryResult;private static final String dbName = "AndroidDBExample.db";@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);super.setContentView(R.layout.activity_database);btnCreateDatabase = (Button)super.findViewById(R.id.btnCreateDatabase);btnCreateDatabase.setOnClickListener(crateDatabaseListener);btnCreateDatatable = (Button)super.findViewById(R.id.btnCreateDataTable);btnCreateDatatable.setOnClickListener(crateDatatableListener);btnInsertData = (Button)super.findViewById(R.id.btnInsertData);btnInsertData.setOnClickListener(insertDataListener);btnQueryData = (Button)super.findViewById(R.id.btnQueryData);btnQueryData.setOnClickListener(queryDataListener);}OnClickListener crateDatabaseListener = new OnClickListener(){@Overridepublic void onClick(View view) {// TODO Auto-generated method stubdb = openOrCreateDatabase(dbName,MODE_PRIVATE,null);Toast.makeText(DatabaseActivity.this,"Database has been created successfully.",Toast.LENGTH_LONG).show();}};OnClickListener crateDatatableListener = new OnClickListener(){@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif(db != null){String sql = "create table T_UserInfo (UserID int primary key,Username text,Password text)";try{db.execSQL("drop table if exists T_UserInfo"); db.execSQL(sql);Toast.makeText(DatabaseActivity.this,"Datatable has been created successfully.",Toast.LENGTH_LONG).show();}catch(SQLException ex){ex.printStackTrace();}finally{//db.close();}}}};OnClickListener insertDataListener = new OnClickListener(){@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif(db != null){try{ContentValues cv = new ContentValues();cv.put("UserID", 1);cv.put("Username","Tom");cv.put("Password","1234abcd");db.insert("T_UserInfo", null, cv);//you can insert data by execute sql//to doToast.makeText(DatabaseActivity.this,"Data has been inserted successfully.",Toast.LENGTH_LONG).show();}catch(SQLException ex){}finally{//db.close();}}}};OnClickListener queryDataListener = new OnClickListener(){@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif(db!=null){try{Cursor cursor = db.rawQuery("select * from T_UserInfo where Username = ?", new String[]{ "Tom" }); while (cursor.moveToNext()) {  int id = cursor.getInt(cursor.getColumnIndex("UserID")); String name = cursor.getString(cursor.getColumnIndex("Username")); queryResult = "id=>" + id + ", name=>" + name; Log.i("queryResult",queryResult );   } cursor.close(); Toast.makeText(DatabaseActivity.this,queryResult,Toast.LENGTH_LONG).show();}catch(SQLException ex){ex.printStackTrace();}finally{db.close();}}}};}</span>
这个例子中包含了创建数据库的方法,创建表的方法,插入数据的方法及查询数据的方法。当然对数据库的操作还有删除表、删除数据库等等,这些操作跟常规的sqlserver,oracle数据库操作类似,不再赘述,这里只是抛砖引玉,供大家参考。SQLite其实也可以做触发器,索引等。今后有机会再详细介绍。 下面是layotu文件:

<span style="font-family:Microsoft YaHei;"><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >        <Button             android:id="@+id/btnCreateDatabase"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:text="@string/CreateDatabase"/>    <Button             android:id="@+id/btnCreateDataTable"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:text="@string/CreateDataTable"/>    <Button             android:id="@+id/btnInsertData"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:text="@string/InsertData"/>        <Button             android:id="@+id/btnQueryData"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:text="@string/QueryData"/></LinearLayout></span>
效果如下:

Toast显示的数据就是查询到的结果。

更多相关文章

  1. 关于Android锁屏的问题
  2. 腾讯面试官:了解Java Binder中的系统服务吗?
  3. Android使用AudioRecord遇到的问题与解决方法
  4. android中的数据库操作
  5. Android(安卓)NDK学习记录(一)
  6. android之webView加载javascropt
  7. 源码分析Android的消息机制
  8. Android进程 与 消息模型
  9. Java事件模型与Android事件模型的比较

随机推荐

  1. AsyncTask对比Thread加Handler
  2. Windows下载Android源码
  3. Android(安卓)WiFi之SoftAP
  4. Android:初窥手势识别
  5. Android的权限声明
  6. 使用Android(安卓)RatingBar时踩过的坑
  7. Android(安卓)ListView中有Button,ItemCli
  8. Android(安卓)Studio Gradle tools:repla
  9. 《android常用的API接口调用》
  10. Android实现滑动屏幕切换图片