Android平台学习基础(2)-SQLite基本操作

操作场景

通过按钮创建数据库表、删除数据库表、向表中插入数据、从数据表查询数据
image

编写步骤

step-1:新建android项目:SQ01
step-2:编写类Ac01

package com.bitnanke;
 
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
10  import android.util.Log;
11  import android.view.View;
12  import android.view.View.OnClickListener;
13  import android.widget.Button;
14  import android.widget.LinearLayout;
15   
16  public class Ac01 extends Activity implements OnClickListener{
17      private final int WC=LinearLayout.LayoutParams.WRAP_CONTENT;
18      private static final String DB_NAME="StudDB.db";
19      private static final int DB_VERSION=2;
20      private Cursor cur;
21      private Button btn,btn2,btn3,btn4,btn5;
22      private static class DatabaseHelper extends SQLiteOpenHelper{
23   
24          /**
25           * Description: 
26           *
27           * @param:
28           * @param context
29           * @param name
30           * @param factory
31           * @param version
32           **/
33          public DatabaseHelper(Context context) {
34              super(context, DB_NAME, null, DB_VERSION);
35              // TODO Auto-generated constructor stub
36          }
37   
38          /**Description: 
39           *
40           * @param db
41           * @see android.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite.SQLiteDatabase)
42           */
43          @Override
44          public void onCreate(SQLiteDatabase db) {
45              // TODO Auto-generated method stub
46             
47          }
48   
49          /**Description: 
50           *
51           * @param db
52           * @param oldVersion
53           * @param newVersion
54           * @see android.database.sqlite.SQLiteOpenHelper#onUpgrade(android.database.sqlite.SQLiteDatabase, int, int)
55           */
56          @Override
57          public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
58              // TODO Auto-generated method stub
59             
60          }
61         
62      }
63      /** Called when the activity is first created. */
64      @Override
65      public void onCreate(Bundle savedInstanceState) {
66          super.onCreate(savedInstanceState);
67          LinearLayout layout=new LinearLayout(this);
68          layout.setOrientation(LinearLayout.VERTICAL);
69          
70          btn=new Button(this);
71          btn.setText("Create student table");
72          btn.setOnClickListener(this);
73          layout.addView(btn, new LinearLayout.LayoutParams(WC,WC));
74          
75          btn2=new Button(this);
76          btn2.setText("Drop student table");
77          btn2.setOnClickListener(this);
78          layout.addView(btn2, new LinearLayout.LayoutParams(WC,WC));
79          
80          btn3=new Button(this);
81          btn3.setText("Insert a record");
82          btn3.setOnClickListener(this);
83          layout.addView(btn3, new LinearLayout.LayoutParams(WC,WC));
84          
85          btn4=new Button(this);
86          btn4.setText("Select all");
87          btn4.setOnClickListener(this);
88          layout.addView(btn4, new LinearLayout.LayoutParams(WC,WC));
89          
90          btn5=new Button(this);
91          btn5.setText("Exit");
92          btn5.setOnClickListener(this);
93          layout.addView(btn5, new LinearLayout.LayoutParams(WC,WC));
94          
95          setContentView(layout);
96      }
97      
98      private DatabaseHelper mOpenHelper;
99      
100      /**Description: 
101       *
102       * @param v
103       * @see android.view.View.OnClickListener#onClick(android.view.View)
104       */
105      public void onClick(View v) {
106          // TODO Auto-generated method stub
107          mOpenHelper=new DatabaseHelper(v.getContext());
108          if(v==btn){
109              SQLiteDatabase db=mOpenHelper.getWritableDatabase();
110              String sql="create table student(stud_no text not null,stud_name text);";
111              try {
112                  db.execSQL(sql);
113                  setTitle("Create table ok");
114              } catch (SQLException e) {
115                  // TODO: handle exception
116                  Log.e("ERROR", e.toString());
117                  setTitle("Create table error");
118              }
119          }
120          if(v==btn2){
121              SQLiteDatabase db=mOpenHelper.getWritableDatabase();
122              String sql="drop table student";
123              try {
124                  db.execSQL(sql);
125                  setTitle("Drop table ok");
126              } catch (SQLException e) {
127                  // TODO: handle exception
128                  Log.e("ERROR", e.toString());
129                  setTitle("Drop table error");
130              }
131          }
132          if(v==btn3){
133              SQLiteDatabase db=mOpenHelper.getWritableDatabase();
134              String sql_1="insert into student values('S108','Lily Chen');";
135              String sql_2="insert into student values('S201','Tom Kao');";
136              String sql_3="insert into student values('S333','Peter Rabbit');";
137              try {
138                  db.execSQL(sql_1);
139                  db.execSQL(sql_2);
140                  db.execSQL(sql_3);
141                  setTitle("insert records ok");
142              } catch (SQLException e) {
143                  // TODO: handle exception
144                  Log.e("ERROR", e.toString());
145                  setTitle("Drop table error");
146              }
147          }
148          if(v==btn4){
149              SQLiteDatabase db=mOpenHelper.getReadableDatabase();
150              String col[]={"stud_no","stud_name"};
151              cur=db.query("student", col, null, null, null, null, null);
152              Integer n=cur.getCount();
153              String ss=Integer.toString(n);
154              setTitle(ss+" records");
155              cur.moveToFirst();
156          }
157          if(v==btn5){
158              finish();
159          }
160      }
161  }

总结

1、实现抽象类SQLiteOpenHelper
     需提供数据库名以及版本号,在调用构造器函数时会使用到这两个参数
     a、构造器:SQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) 
     该构造器创建一个帮助类对象用于管理数据库
     b、调用实现类的getReadableDatabase()或者getWritableDatabase()获得数据库对象(SQLiteDateBase) 
     注意:在调用这两个函数时,数据库才真正的创建或被打开
     c、public abstract void onCreate (SQLiteDatabase db)
     当数据库第一次创建时调用该方法,可以包含创建表、初始化表此类操作
3、使用数据库对象创建表、删除表、执行SQL语句
4、数据库查询返回游标对象(Cursor),它提供对结果的随机读写访问

另:
1、向数据库插入数据,可以使用ContentValues对象
ContentValues cv=new ContentValues;
cv.put("stud_no","S108");
cv.put("stud_name","Lily Chen");
db.insert("student",null,cv);
2、在文件AndroidManifest.xml中可以存在多个Activity被定义为启动类,但在Android平台上会根据启动类的多少生成多个同名应用

    
    

例如:本例工程SQ01,如果编写两个Activity并且都配置为启动类,那么在Android上会生成两个名为SQ01的APP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值