zoukankan      html  css  js  c++  java
  • 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语句。

    实例下载>>>>>>>>

    相关文章:

    Android:储存方式之SharePreferences

    SQLiteOpenHelper

  • 相关阅读:
    faster with MyISAM tables than with InnoDB or NDB tables
    w-BIG TABLE 1-toSMALLtable @-toMEMORY
    Indexing and Hashing
    MEMORY Storage Engine MEMORY Tables TEMPORARY TABLE max_heap_table_size
    controlling the variance of request response times and not just worrying about maximizing queries per second
    Variance
    Population Mean
    12.162s 1805.867s
    situations where MyISAM will be faster than InnoDB
    1920.154s 0.309s 30817
  • 原文地址:https://www.cnblogs.com/tinyphp/p/4002425.html
Copyright © 2011-2022 走看看