• 认识SQLite数据库


    要利用SQLite数据库存储数据,必须先创建数据库方法来实现。要存储数据,则需要先在数据库中创建数据表(Table)。我们可以把数据表视为一个二维的表格,例如简单的通讯数据表可能有如下内容:

    name phone email
    张三 6666666 zs@example.com
    李四 7777777 ls@example.com
    王五 8888888 ww@example.com

    纵向的一列称为字段,代表着一项特定意义的数据,例如“name”栏用来存储客户的名称。

    横向的一行则称为记录,每一个记录都存储着一组完整的数据。

    使用CREATE TABLE 语句创建数据表

    创建数据表的SQL语句为“CREATE TABLE”,语法如下

    CREATE TABLE 数据表名称  (字段名  数据类型  PRIMARY KEY,  字段名 数据类型 ,   主键 ……)

    使用openOrCreateDatabase()创建数据库

      在项目的MainActivity类,有一个openOrCreateDatabase()方法可创建及打开数据库,如名称所示,此方法会打开参数所指的数据库,若数据库不存在,则会先创建再打开它,其参数如下:

    openOrCreateDatabase("customer",//数据库名称
                          Context.MODE_PRIVATE,  //创建数据库文件的模式
                          null);             //返回查询结果的类   

    openOrCreateDatabase()执行成功会返回代表数据库的SQLiteDatebase 对象。

    用execSQL()方法执行CREATE TABLE 语句

      使用SQLiteDatabase 对象创建数据表,必须用前面介绍的CREATE TABLE 语句作为参数,调用execSQL()方法,例如:

    SQLiteDatabase db = openOrCreateDatabase(……);//获取数据库对象
    String sql = "CREATE TABLE test " +  //创建”test"数据表的SQL语法字符串
                 "(name VARCHAR(32), "+" phone VARCHAR(32),"+"email VARCHAR(32))";
    db.execSQL(sql);//执行上面的CREATE TABLE 语句

    用insert()方法和ContentValues 对象新增数据

    ContentValues cv = new ContentValues(3); //创建含3个字段的ContentValues对象
    
    cv.put("name","张三");  //name字段为”张三“
    cv.put("phone","6666666"); //phone字段为"6666666"
    cv.put("email","zs@example.com"); //email 字段为”zs@example.com"
    db.insert("customers",null,cv) //将上列内容写入customers数据表,新增1个记录
    package com.example.hellosqlite;
    
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    import android.support.v7.app.ActionBarActivity;
    import android.widget.TextView;
    
    public class MainActivity extends ActionBarActivity {
        static final String db_name = "testDB";  //数据库名称
        static final String tb_name = "test";   // 数据表名称
        SQLiteDatabase db; //数据库对象
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //打开或创建数据库
            db = openOrCreateDatabase(db_name, Context.MODE_PRIVATE,null);
            String createTable = "CREATE TABLE IF NOT EXISTS " +
                    tb_name +
                    "(name VARCHAR(32)," +
                    "phone VARCHAR(16)," +
                    "email VARCHAR(64))";
            db.execSQL(createTable);   //创建数据表
    
            //调用自定义的addData()方法 写入2组数据
            addData("Flag Publishing Co.","6666666","service@flag.com.tw");
            addData("PCDIY Magazine","7777777","service@flag.com.tw");
    
            TextView txv = (TextView) findViewById(R.id.txv);
            txv.setText("数据库文件路径:" + db.getPath() +"
    "+
            "数据库分页大小:" +db.getPageSize()+"Byte
    "+
            "数据量上限:"+db.getMaximumSize()+" Byte
    ");
    
            db.close();  //关闭数据库
        }
    
        private void addData(String name,String phone,String email) {
            ContentValues cv = new ContentValues(3);  //创建含3个数据项的对象
    
            cv.put("name",name);
            cv.put("phone",phone);
            cv.put("email",email);
    
            db.insert(tb_name,null,cv);    //将数据加到数据表
        }
    
    }
  • 相关阅读:
    myeclipse6.5设置智能提示
    web项目无法编译
    Duplicate property mapping of .....
    SSH常见面试题
    简易计算器JS方式实现
    js中两个感叹号的作用
    Pro Javascript Design Patterns勘误Errata汇总(持续更新中)
    Javascript简写条件语句
    js中值得推荐的Memoization
    使用au3脚本编写自动登录126邮箱
  • 原文地址:https://www.cnblogs.com/lan-xin/p/8469428.html
Copyright © 2020-2023  润新知