android数据存储(三)之使用SQLlite数据库存储

  1. package net.hehui.db;  
  2.   
  3. import net.hehui.db.R;  
  4. import android.app.Activity;  
  5. import android.database.Cursor;  
  6. import android.database.sqlite.SQLiteDatabase;  
  7. import android.database.sqlite.SQLiteException;  
  8. import android.os.Bundle;  
  9. import android.view.View;  
  10. import android.view.View.OnClickListener;  
  11. import android.widget.Button;  
  12. import android.widget.EditText;  
  13. import android.widget.ListView;  
  14. import android.widget.SimpleAdapter;  
  15. import android.widget.SimpleCursorAdapter;  
  16.   
  17. public class DataBase_DBTestActivity extends Activity {  
  18.     SQLiteDatabase db;  
  19.     Button bn = null;  
  20.     ListView listView;  
  21.     @Override  
  22.     public void onCreate(Bundle savedInstanceState) {  
  23.         super.onCreate(savedInstanceState);  
  24.         setContentView(R.layout.main);  
  25.         // 创建或打开数据库(此处需要使用绝对路径)  
  26.         db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()  
  27.                 + "/my.db3"null);  
  28.         listView = (ListView) findViewById(R.id.show);  
  29.         bn = (Button) findViewById(R.id.ok);  
  30.         bn.setOnClickListener(new OnClickListener() {  
  31.             @Override  
  32.             public void onClick(View source) {  
  33.                 // 获取用户输入  
  34.                 String title = ((EditText) findViewById(R.id.title)).getText()  
  35.                         .toString();  
  36.                 String content = ((EditText) findViewById(R.id.content))  
  37.                         .getText().toString();  
  38.                 try {  
  39.                     insertData(db, title, content);  
  40.                     Cursor cursor = db.rawQuery("select * from news_inf"null);  
  41.                       
  42.                     inflateList(cursor);  
  43.                 } catch (SQLiteException se) {  
  44.                     // 执行DDL创建数据表  
  45.                     /* 
  46.                      * 创建表的SQL语句: 
  47.                      * create table 表名(字段1 [类型],字段2,字段3,...) 
  48.                      * db.execSQL("create table 表名(字段1 [类型],字段2,字段3,...)"); 
  49.                      */  
  50.                     db.execSQL("create table news_inf(_id integer primary key autoincrement,"  
  51.                             + " news_title varchar(50),"  
  52.                             + " news_content varchar(255))");  
  53.                     // 执行insert语句插入数据  
  54.                     insertData(db, title, content);  
  55.                     // 执行查询语句:  
  56.                     //select * from news_inf 返回一个容器对象,cursor记下  
  57.                     Cursor cursor = db.rawQuery("select * from news_inf"null);  
  58.                     inflateList(cursor);  
  59.                 }  
  60.             }  
  61.         });  
  62.     }  
  63.   
  64.     private void insertData(SQLiteDatabase db, String title, String content) {  
  65.         // 执行插入语句  
  66.         //insert into 表名 values(null,...,...)  
  67.         db.execSQL("insert into news_inf values(null, ? , ?)"new String[] {  
  68.                 title, content });  
  69. //      db.execSQL("insert into news_inf values(null,"+title+","+content+")");  
  70.         //insert into news_inf values(null,time,1234)  
  71.     }  
  72.   
  73.     private void inflateList(Cursor cursor) {  
  74.         // 填充SimpleCursorAdapter  
  75.         SimpleCursorAdapter adapter = new SimpleCursorAdapter(  
  76.                 DataBase_DBTestActivity.this, R.layout.line, cursor,  
  77.                 new String[] { "news_title""news_content" }, new int[] {  
  78.                         R.id.my_title, R.id.my_content });  
  79.         // 显示数据  
  80.         listView.setAdapter(adapter);  
  81.     }  
  82.   
  83.     @Override  
  84.     public void onDestroy() {  
  85.         super.onDestroy();  
  86.         // 退出程序时关闭SQLiteDatabase  
  87.         if (db != null && db.isOpen()) {  
  88.             db.close();  
  89.         }  
  90.     }  
  91. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值