Android:数据存储之SQLite
Android在运行时集成了SQLite , 所以每个Android应用程序都可以使用SQLite数据库。
我们通过SQLiteDatabase这个类的对象操作SQLite数据库,而且不需要身份验证。
数据库存放的位置:data/data/<项目文件夹>/databases/,查看数据库>>
实例:
public class MainActivity extends Activity { private Button createDatabase, createTable, selectData, insertData, updateData, deleteDaata; private MySQLiteOpenHelper helper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.demo); // 初始化按钮 createDatabase = (Button) findViewById(R.id.createDatabase); createTable = (Button) findViewById(R.id.createTable); selectData = (Button) findViewById(R.id.selectData); insertData = (Button) findViewById(R.id.insertData); updateData = (Button) findViewById(R.id.updateData); deleteDaata = (Button) findViewById(R.id.deleteDaata); helper = new MySQLiteOpenHelper(MainActivity.this, "mydb.db", null, 1); /* * 创建数据库 */ createDatabase.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub SQLiteDatabase sqlitedatabase = helper.getWritableDatabase(); Toast.makeText(MainActivity.this, "数据库创建成功", 1000).show(); } }); /* * 创建表 */ createTable.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { // TODO Auto-generated method stub SQLiteDatabase sqlitedatabase = helper.getWritableDatabase(); // 创建表 sqlitedatabase .execSQL("create table student(id INTEGER PRIMARY KEY autoincrement,name text)"); Toast.makeText(MainActivity.this, "表创建成功", 1000).show(); } }); /* * 插入数据 */ insertData.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub SQLiteDatabase sqlitedatabase = helper.getWritableDatabase(); sqlitedatabase .execSQL("insert into student(name) values ('tinyphp')"); Toast.makeText(MainActivity.this, "插入数据成功", 1000).show(); } }); /* * 更新数据 */ updateData.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub SQLiteDatabase sqlitedatabase = helper.getWritableDatabase(); sqlitedatabase .execSQL("update student set name='monkey' where id='1'"); Toast.makeText(MainActivity.this, "数据更新成功", 1000).show(); } }); /* * 查询数据 */ selectData.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub SQLiteDatabase sqlitedatabase = helper.getReadableDatabase(); //参数:表名、查询的列、查询条件、查询参数、查询结果分组、分组结果限制、排序 Cursor cursor = sqlitedatabase.query("student", new String[] { "id", "name" }, "id=?", new String[] { "1" }, null, null, null); String name=null; while(cursor.moveToNext()){ name =cursor.getString(cursor.getColumnIndex("name")); } Toast.makeText(MainActivity.this, "查询结果name为:"+name, 1000).show(); } }); /* * 删除数据 * */ deleteDaata.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub SQLiteDatabase sqlitedatabase =helper.getWritableDatabase(); sqlitedatabase.delete("student", "id=?", new String[]{"1"}); Toast.makeText(MainActivity.this, "数据删除成功", 1000).show(); } }); } }
使用getWritableDatabase或getReadableDatabase的时候,数据库才会链接,通过execSQL执行SQL语句。
相关文章:
2024还活着,挺好的,向着星辰与深渊,加油,博客园不要倒下啊!