SQLite数据库存储实验

1.实验内容简介

SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。android提供了创建和是用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。在Android的SDK目录下有sqlite3工具,我们可以利用它创建数据库、创建表和执行一些SQL语句。

Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。

查看数据库的步骤:(前提是虚拟机要运行起来)

1.window菜单:开始->运行,输入cmd

2.输入adb shell,进入Linux命令行,出现#:

3.输入如下命令:

root@generic:/ # cd/data/data/com.example.sqlitedemo/databases

4.在输入sqlite3mydata.db,进入sql命令行状态:

5.输入select *from myclass;

2. UI界面布局

对应大纲:

3.代码编写和调试

////MyDBOpen.java

public class MyDBOpen extends SQLiteOpenHelper {

public MyDBOpen(Context context, String name, CursorFactory factory,

int version) {

super(context,name, factory, version);

// TODOAuto-generated constructor stub

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL("createtable if not exists myclass("+

"id integer primary key,"+

"myname varchar,"+

"myno integer)");

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// TODOAuto-generated method stub

}

}

//// MainActivity.java

public class MainActivity extends Activity {

EditText editTextName;

EditText editTextNo;

Button buttonSave;

Button buttonRead;

MyDBOpen mydb;

SQLiteDatabase db;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

editTextName =(EditText) findViewById(R.id.editTextName);

editTextNo =(EditText) findViewById(R.id.editTextNo);

buttonSave = (Button)findViewById(R.id.buttonSave);

buttonRead =(Button) findViewById(R.id.buttonRead);

mydb = newMyDBOpen(MainActivity.this, "mydata.db", null, 1);

buttonSave.setOnClickListener(newView.OnClickListener() {

@Override

public void onClick(View v) {

db =mydb.getWritableDatabase();

String name = editTextName.getText().toString();

int no =Integer.parseInt(editTextNo.getText().toString());

db.execSQL("insertinto myclass(myname,myno) values('" + name

+"'," + no + ")");

db.close();

Toast.makeText(MainActivity.this,"保存成功!", Toast.LENGTH_SHORT)

.show();

}

});

buttonRead.setOnClickListener(newView.OnClickListener() {

@Override

public void onClick(View v) {

db =mydb.getWritableDatabase();

String sql = "select * frommyclass where myname=? ";

Cursor cursor = db.rawQuery(sql, new String[] { editTextName

.getText().toString()});

String result = "未找到!";

if(cursor.getCount() > 0) {

cursor.moveToFirst();

result= cursor.getString(cursor.getColumnIndex("myname"))

+":"

+cursor.getString(cursor.getColumnIndex("myno"));

}

db.close();

Toast.makeText(MainActivity.this,result, Toast.LENGTH_SHORT)

.show();

}

});

}

}

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180518G00KTW00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券