Android 中SQlite数据中简单示例的表的创建、插入和查询

1 篇文章 0 订阅
1 篇文章 0 订阅

           最近刚开始学习android,学习到SQLite的存储时,看着官方关于SQLite的使用的文档,硬是没看懂前面的FeedEntry和FeedReaderContract部分(如果那位看懂了,给小弟说一下,最好有源代码),自己结合官方剩下的部分实现了简单的表的创建、添加和查询。      

1.       FeedReaerDbHelper继承SQliteOpenHelper类(系统提供帮助管理SQLite数据库的系统类),重写了构造函数和OnCreat函数。

publicclass FeedReaderDbHelper extends SQLiteOpenHelper {

     publicstaticfinalintDATABASE_VERSION=1;

     publicstaticfinal String DATABASE_NAME="person.db";

   

public FeedReaderDbHelper(Context context) {

        super(context, DATABASE_NAME, null, DATABASE_VERSION); //重写了FeedReaderDbhelper构造函数

     // TODO Auto-generated constructor stub

}

 

    @Override

//第一次访问或者创建数据库的调用该方法

publicvoid onCreate(SQLiteDatabase db) {

     // TODO Auto-generated method stub

    db.execSQL("CREATE TABLE person (_ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,AGE INTEGER )"); //创建了person

//  Log.w("onCreate", "Create database sucessed!!");

}

 

@Override

publicvoid onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

     // TODO Auto-generated method stub      //

}

}

2.       MainActivity中实现对SQLite数据库插入和查询;

1.  publicclass MainActivity extends Activity {

2.      private EditText nameEdit;

3.      private EditText ageEdit;

4.      private Button insertBtn;

5.      private Button queryBtn;

6.      private TextView queryList;

7.  @Override

8.  protectedvoid onCreate(Bundle savedInstanceState) {

9.       super.onCreate(savedInstanceState);

10.      setContentView(R.layout.activity_main);

11.      setView(); //类和控件的绑定

12.     setListener();//设置button控件的监控函数

13. }

14. privatevoid setView()

15. {

16.      nameEdit=(EditText)findViewById(R.id.name);

17.      ageEdit=(EditText)findViewById(R.id.age);

18.      queryList=(TextView)findViewById(R.id.queryList);

19.      insertBtn=(Button)findViewById(R.id.insert);

20.      queryBtn=(Button)findViewById(R.id.query);

21. }

22.

23. privatevoid setListener()

24. {

25.      insertBtn.setOnClickListener(new OnClickListener() {

26.         

27.          @Override

28.          publicvoid onClick(View v) {

29.          queryList.setText("");

30.              // TODO Auto-generated method stub

31.          FeedReaderDbHelper mBbHelper=new FeedReaderDbHelper(MainActivity.this);

32. //创建一个FeedReaderDbhelper对象,向其传入当前上下文信息;

33.          SQLiteDatabase db=mBbHelper.getWritableDatabase();

34. //以写方式获得SQLiteDatabase数据库对象

35.          ContentValues cv=new ContentValues();

36.           //ContentValues类似一种储存机制

37.          cv.put("name", nameEdit.getText().toString());

38.          cv.put("age", Integer.parseInt(ageEdit.getText().toString()));

39.          db.insert("person", null, cv); //向数据库中插入数据

40.      //  Log.w("insert", "name"+nameEdit.getText().toString()+" age"+ageEdit.getText().toString());

41.          db.close();

42.           nameEdit.setText("");

43.           ageEdit.setText("");

44.          }

45.      });

46.      queryBtn.setOnClickListener(new OnClickListener() {

47.         

48.          @Override

49.          publicvoid onClick(View v) {

50.              // TODO Auto-generated method stub

51.              queryList.setText("");

52.              FeedReaderDbHelper mbDbHelper=new FeedReaderDbHelper(MainActivity.this);

53.              SQLiteDatabase db=mbDbHelper.getReadableDatabase();

54.              //Log.w("db", "Create!!");

55.              Cursor cursor=db.rawQuery("SELECT * FROM person WHERE name=? and age=?", new String[]{nameEdit.getText().toString(),ageEdit.getText().toString()});

//SQLiteSQL查询语句,查询数据库中数据与当前的nameEditAgeEdit值相等的数据项

56.              //Log.w("Select", "select has finished!!");

57.              if(cursor.moveToNext())

58.              {

59.               queryList.setText("Query exits!!"); //如果在数据库中select成功,游标执行moveToNext函数,cursor指向符合条件的第一条数据项,返回值为true,否则false

60.              }

61.              else {

62.                   queryList.setText("Query doesn't exited!!");

63.              }

64.          }

65.      });

66.     

67. }

68.     

69. @Override

70. publicboolean onCreateOptionsMenu(Menu menu) {

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

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

73.      returntrue;

74. }

}

 

3.       存在的问题:

      在进行Relativelayout排版时出现,在XML中把对应的insertButtonqueryButton的位时,其他不变,点击insertButton按钮确实现queryButton的功能,自己觉得和R.java中有关,具体原因不知道,希望各位各种拍砖,自己是初学者,有什么错误,望各位指出和交流。

4.代码:http://download.csdn.net/detail/fishintheair/5244395

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值