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();
}
});
}
}
领取专属 10元无门槛券
私享最新 技术干货