设为首页收藏本站

SKY外语、计算机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3815|回复: 0

[代码分享] 安卓数据库SQLlite操作

[复制链接]

65

主题

3

好友

739

积分

超级版主

Rank: 8Rank: 8

自我介绍
新年第一天据说有雨,全民齐赏日出的计划恐要泡汤。”宋仁宗拍着包拯的肩,“朕决定把你悬挂在城门上。”“但微臣额上的不是太阳是月亮啊!”“没事,挂久一点就会升级成太阳
生肖
星座
狮子座
性别

最佳新人 活跃会员 热心会员 推广达人 宣传达人 灌水之王 突出贡献 优秀版主 论坛元老

发表于 2013-5-18 12:11:42 |显示全部楼层
  1. package com.yarin.android.Examples_06_05;

  2. import android.app.Activity;
  3. import android.database.Cursor;
  4. import android.database.sqlite.SQLiteDatabase;
  5. import android.graphics.Color;
  6. import android.os.Bundle;
  7. import android.view.KeyEvent;
  8. import android.view.View;
  9. import android.view.View.OnClickListener;
  10. import android.widget.Button;
  11. import android.widget.LinearLayout;
  12. import android.widget.ListAdapter;
  13. import android.widget.ListView;
  14. import android.widget.SimpleCursorAdapter;

  15. public class Activity01 extends Activity
  16. {
  17.         private static int                        miCount                        = 0;
  18.         /* 数据库对象 */
  19.         private SQLiteDatabase                mSQLiteDatabase        = null;

  20.         /* 创建表的sql语句 */
  21.         private final static String        CREATE_TABLE        = "CREATE TABLE  table1  ( _id  INTEGER PRIMARY KEY,  num INTERGER,  data TEXT)";

  22.         /* 线性布局 */
  23.         LinearLayout                                m_LinearLayout        = null;
  24.         /* 列表视图-显示数据库中的数据 */
  25.         ListView                                        m_ListView                = null;


  26.         /** Called when the activity is first created. */
  27.         @Override
  28.         public void onCreate(Bundle savedInstanceState)
  29.         {
  30.                 super.onCreate(savedInstanceState);

  31.                 /* 创建LinearLayout布局对象 */
  32.                 m_LinearLayout = new LinearLayout(this);
  33.                 /* 设置布局LinearLayout的属性 */
  34.                 m_LinearLayout.setOrientation(LinearLayout.VERTICAL);
  35.                 m_LinearLayout.setBackgroundColor(android.graphics.Color.BLACK);

  36.                 /* 创建ListView对象 */
  37.                 m_ListView = new ListView(this);
  38.                 LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
  39.                 m_ListView.setBackgroundColor(Color.BLACK);

  40.                 Button m_addButton = new Button(this);
  41.                 m_addButton.setText("add");
  42.                 m_addButton.setOnClickListener(new OnClickListener() {
  43.                         public void onClick(View v)
  44.                         {
  45.                                 AddData();
  46.                         }
  47.                 });
  48.                 Button m_updataButton = new Button(this);
  49.                 m_updataButton.setText("edit");
  50.                 m_updataButton.setOnClickListener(new OnClickListener() {
  51.                         public void onClick(View v)
  52.                         {
  53.                           UpData();
  54.                         }
  55.                 });
  56.                 Button m_deleteButton = new Button(this);
  57.                 m_deleteButton.setText("delete");
  58.                 m_deleteButton.setOnClickListener(new OnClickListener() {
  59.                         public void onClick(View v)
  60.                         {
  61.                                 DeleteData();
  62.                         }
  63.                 });
  64.                 /* 添加m_ListView到m_LinearLayout布局 */
  65.                 m_LinearLayout.addView(m_addButton);
  66.                 m_LinearLayout.addView(m_updataButton);
  67.                 m_LinearLayout.addView(m_deleteButton);
  68.                 m_LinearLayout.addView(m_ListView, param);

  69.                 /* 设置显示m_LinearLayout布局 */
  70.                 setContentView(m_LinearLayout);

  71.                 // 打开已经存在的数据库
  72.                 mSQLiteDatabase = this.openOrCreateDatabase("Examples_06_05.db", MODE_PRIVATE, null);

  73.                 // 获取数据库Phones的Cursor
  74.                 try
  75.                 {
  76.                         /* 在数据库mSQLiteDatabase中创建一个表 */
  77.                         mSQLiteDatabase.execSQL(CREATE_TABLE);
  78.                 }
  79.                 catch (Exception e)
  80.                 {
  81.                         UpdataAdapter();
  82.                 }
  83.         }

  84.         public void DeleteDataBase()
  85.         {
  86.                 this.deleteDatabase("Examples_06_05.db");
  87.                 this.finish();
  88.         }

  89.         public void DeleteTable()
  90.         {
  91.                 mSQLiteDatabase.execSQL("DROP TABLE  table1");
  92.                 this.finish();
  93.         }

  94.         public void UpData()
  95.         {
  96.                 String sqlstr = "update table1 set"
  97.                                 + " num=888, data='修改的数据888' where num="+Integer.toString(miCount-1);
  98.                 mSQLiteDatabase.execSQL(sqlstr);
  99.                 UpdataAdapter();
  100.         }

  101.         public void AddData()
  102.         {
  103.                 String sqlstr = "INSERT into table1"
  104.                                 + " (num, data) values ('"+miCount+"','yy4350数据"+miCount+"')";
  105.                 mSQLiteDatabase.execSQL(sqlstr);
  106.                 miCount++;
  107.                 UpdataAdapter();
  108.         }

  109.         public void DeleteData()
  110.         {
  111.                 String sqlstr = "DELETE FROM  table1  " +
  112.                                 " WHERE _id=" + Integer.toString(miCount);
  113.                 mSQLiteDatabase.execSQL(sqlstr);
  114.                 miCount--;
  115.                 if (miCount < 0)
  116.                 {
  117.                         miCount = 0;
  118.                 }
  119.                 UpdataAdapter();
  120.         }


  121.         /* 更行试图显示 */
  122.         public void UpdataAdapter()
  123.         {
  124.                 // 获取数据库Phones的Cursor
  125.                 Cursor cur = mSQLiteDatabase.query("table1", new String[] { "_id", "num", "data" }, null, null, null, null, null);

  126.                 miCount = cur.getCount();
  127.                 if (cur != null && cur.getCount() >= 0)
  128.                 {
  129.                         // ListAdapter是ListView和后台数据的桥梁
  130.                         ListAdapter adapter = new SimpleCursorAdapter(this,
  131.                         // 定义List中每一行的显示模板
  132.                                 // 表示每一行包含两个数据项
  133.                                 android.R.layout.simple_list_item_2,
  134.                                 // 数据库的Cursor对象
  135.                                 cur,
  136.                                 // 从数据库的TABLE_NUM和TABLE_DATA两列中取数据
  137.                                 new String[] { "num", "data" },
  138.                                 // 与NAME和NUMBER对应的Views
  139.                                 new int[] { android.R.id.text1, android.R.id.text2 });

  140.                         /* 将adapter添加到m_ListView中 */
  141.                         m_ListView.setAdapter(adapter);
  142.                 }
  143.         }


  144.         /* 按键事件处理 */
  145.         public boolean onKeyDown(int keyCode, KeyEvent event)
  146.         {
  147.                 if (keyCode == KeyEvent.KEYCODE_BACK)
  148.                 {
  149.                         /* 退出时,不要忘记关闭 */
  150.                         mSQLiteDatabase.close();
  151.                         this.finish();
  152.                         return true;
  153.                 }
  154.                 return super.onKeyDown(keyCode, event);
  155.         }
  156. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册


手机版|SKY外语计算机学习 ( 粤ICP备12031577 )    

GMT+8, 2024-3-28 17:12 , Processed in 0.154472 second(s), 33 queries .

回顶部