zoukankan      html  css  js  c++  java
  • 认识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);    //将数据加到数据表
        }
    
    }
  • 相关阅读:
    Python3之random模块常用方法
    Go语言学习笔记(九)之数组
    Go语言学习笔记之简单的几个排序
    Go语言学习笔记(八)
    Python3之logging模块
    Go语言学习笔记(六)
    123. Best Time to Buy and Sell Stock III(js)
    122. Best Time to Buy and Sell Stock II(js)
    121. Best Time to Buy and Sell Stock(js)
    120. Triangle(js)
  • 原文地址:https://www.cnblogs.com/lan-xin/p/8469428.html
Copyright © 2011-2022 走看看