android Sqlite基本操作

  新建一个类(ex:UserDBHelper)继承SQLiteOpenHelper

  • 构造函数里面建数据库

      public UserDBHelper(Context context, int version) {
            super(context, DB_NAME,null,version);
        }
    
  • onCreate方法里面建表

       /**
         * 只在数据库生成的时候调用,一般我们会在
         * 这个方法里建表
         * @param sqLiteDatabase
         */
        @Override
        public void onCreate(SQLiteDatabase sqLiteDatabase) {
            Log.d(TAG, "onCreate: ");
            String drop_table = "DROP TABLE IF EXISTS " + TABLE_NAME + ";";
            Log.d(TAG, "onCreate: drop_table_sql "+ drop_table);
            sqLiteDatabase.execSQL(drop_table);
    
            String create_sql = "CREATE TABLE IF NOT EXISTS "+ TABLE_NAME + " (" +
                    "_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," +
                    "name VARCHAR NOT NULL," + "age INTEGER NOT NULL," +
                    "height LONG NOT NULL," + "weight FLOAT NOT NULL," +
                    "married INTEGER NOT NULL," + "update_time VARCHAR NOT NULL" +
                     ",phone VARCHAR ,password VARCHAR"+
                    ");";
            Log.d(TAG, "crate_table sql: "+create_sql);
            sqLiteDatabase.execSQL(create_sql);
        }
    
  • onUpgrade方法里面是升级数据库表

    @Override
        public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
            Log.d(TAG, "onUpgrade: oldVersion="+oldVersion+" newVersion:"+newVersion);
            if (newVersion > 1){
                String alertSql = "ALTER TABLE " + TABLE_NAME + " ADD COLUMN phone VARCHAR;";
                Log.d(TAG, "onUpgrade: alertSQL="+alertSql);
                sqLiteDatabase.execSQL(alertSql);
                alertSql = "ALTER TABLE " + TABLE_NAME + " ADD COLUMN password VARCHAR;";
                Log.d(TAG, "onUpgrade: alertSQL="+alertSql);
                sqLiteDatabase.execSQL(alertSql);
    
            }
    
        }
    
    package com.safeluck.floatwindow.db;
    
    import android.content.ContentValues;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;
    
    import java.util.List;
    
    /** * aaa * Created by lzw on 2018/8/23. 15:28:33 * 邮箱:[email protected] * All Rights Saved! Chongqing AnYun Tech co. LTD */public class UserDBHelper extends SQLiteOpenHelper {    private static final String DB_NAME = "userDB";    private static final int DB_VERSION = 1;    private static  UserDBHelper mHelper ;    private static final String TABLE_NAME = "user";    private static final String TAG = "UserDbHelper";    private SQLiteDatabase DB = null;    public UserDBHelper(Context context, int version) {        super(context, DB_NAME,null,version);    }
    
    public static UserDBHelper getInstance(Context context,int version){        if (version>0 && mHelper == null){            mHelper = new UserDBHelper(context,version);        }else if (mHelper == null){            mHelper = new UserDBHelper(context,DB_VERSION);        }        return mHelper;    }
    
    /**     * 获取只读的数据库     * @return     */    public SQLiteDatabase getReadLink() {        DB = mHelper.getReadableDatabase();        return DB;    }
    
    public SQLiteDatabase getWriteDB() {        DB = mHelper.getWritableDatabase();        return DB;    }
    
    /**     * 只在数据库生成的时候调用,一般我们会在     * 这个方法里建表     * @param sqLiteDatabase     */    @Override    public void onCreate(SQLiteDatabase sqLiteDatabase) {        Log.d(TAG, "onCreate: ");        String drop_table = "DROP TABLE IF EXISTS " + TABLE_NAME + ";";        Log.d(TAG, "onCreate: drop_table_sql "+ drop_table);        sqLiteDatabase.execSQL(drop_table);
    
    String create_sql = "CREATE TABLE IF NOT EXISTS "+ TABLE_NAME + " (" +                "_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," +                "name VARCHAR NOT NULL," + "age INTEGER NOT NULL," +                "height LONG NOT NULL," + "weight FLOAT NOT NULL," +                "married INTEGER NOT NULL," + "update_time VARCHAR NOT NULL" +                 ",phone VARCHAR ,password VARCHAR"+                ");";        Log.d(TAG, "crate_table sql: "+create_sql);        sqLiteDatabase.execSQL(create_sql);    }
    
    @Override    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {        Log.d(TAG, "onUpgrade: oldVersion="+oldVersion+" newVersion:"+newVersion);        if (newVersion > 1){            String alertSql = "ALTER TABLE " + TABLE_NAME + " ADD COLUMN phone VARCHAR;";            Log.d(TAG, "onUpgrade: alertSQL="+alertSql);            sqLiteDatabase.execSQL(alertSql);            alertSql = "ALTER TABLE " + TABLE_NAME + " ADD COLUMN password VARCHAR;";            Log.d(TAG, "onUpgrade: alertSQL="+alertSql);            sqLiteDatabase.execSQL(alertSql);
    
    }
    
    }
    
    /**     * 删除一行数据     * @param condition     */    public void deleteRow(String condition){        DB.delete(TABLE_NAME,condition,null);    }
    
    public long addUser(List<UserInfo> userInfos){        long reuslt = -1;        for (int i = 0; i < userInfos.size(); i++) {            UserInfo info = userInfos.get(i);            ContentValues cv = new ContentValues();            cv.put("name", info.name);            cv.put("age", info.age);            cv.put("height", info.height);            cv.put("weight", info.weight);            cv.put("married", info.married);            cv.put("update_time", info.update_time);            cv.put("phone", info.phone);            cv.put("password", info.password);            reuslt = DB.insert(TABLE_NAME,"",cv);        }        Log.d(TAG, "addUser: result="+reuslt);        return reuslt;    }
    
    }

原文地址:https://www.cnblogs.com/endian11/p/9540755.html

时间: 2024-10-01 13:48:10

android Sqlite基本操作的相关文章

【原创】android——SQLite的cmd命令的基本操作

步骤:enter为按键 1,开始—>运行—>输入cmd  (enter) 2,输入adb shell  (enter) 3, cd data/data/应用包名/databases  (enter) 4, ls (查看目录下的数据库)   (enter) 5,sqlite3  数据库名.db;   (enter) 6,SQL语句操作表,注意标点符号一定是在英文输入法下 7,示例: [原创]android--SQLite的cmd命令的基本操作,布布扣,bubuko.com

android SQLite数据库的基本操作

SQLite是Android使用的轻量级的数据库,开发Android应用是对数据库的操作自然是必不可少. Android提供了一个SQLiteOpenHelper类来可以很方便的操作数据库, 继承和扩展SQLiteOpenHelper类主要做的工作就是重写以下两个方法.        onCreate: 当数据库被首次创建时执行该方法,一般将创建表等初始化操作在该方法中执行.        onUpgrade:当打开数据库时传入的版本号与当前的版本号不同时会调用该方法. 下面是我写的一个SQLi

Android SQLite最简单demo实现(增删查改)

本来不太想写这篇博客的,但是看到网上的关于android数据库操作的博文都讲得很详细,对于像我这样的新手入门了解SQLite的基本操作有一定难度,所以我参考了网上的一些博客文章,并自己亲自摸索了一遍,希望写出这么一篇博文来记录SQLite的最基本操作,同时也希望能够对android的新手们有些帮助. 参考博客:http://www.20864.com/201247/274.html 这里只是一个示范性的demo,并没实现什么具体功能,只实现了对数据库的增删查改操作. 以下是实现demo的步骤:

[Android] SQLite数据库之增删改查基础操作

    在编程中常常会遇到数据库的操作,而Android系统内置了SQLite,它是一款轻型数据库,遵守事务ACID的关系型数据库管理系统,它占用的资源非常低,可以支持Windows/Linux/Unix等主流操作系统,同一时候可以跟非常多程序语言如C#.PHP.Java等相结合.以下先回想SQL的基本语句,再讲述Android的基本操作. 一. adb shell回想SQL语句     首先,我感觉自己整个大学印象最深的几门课就包含<数据库>,所以想先回想SQL增删改查的基本语句.而在And

Android sqlite cursor的遍历

查询并获得了cursor对象后,用while(corsor.moveToNext()){}遍历,当corsor.moveToNext()方法调用,如果发现没有对象,会返回false public List<MMImage> getAll() { List<MMImage> list = new ArrayList<MMImage>(); Cursor c = null; try { c = database.query(TABLE, null, null, null,

【原创】android——SQLite实现简单的注册登陆(已经美化)

1,Main_activity的xmL配置 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_pa

Android Sqlite的操作

1.写一个类继承SQLiteOpenHelper public class MyHelper extends SQLiteOpenHelper { public MyHelper(Context context) { super(context, Const.DB_DBNAME , null, Const.DB_VERSION); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteData

Android Sqlite基本命令

要查看数据库,首先必须要找到db文件,如果拷贝到电脑上,查看的方法比较多,在手机上,用命令查看比较直接和方便. 首先要找到数据库的位置,一般数据库时存放在程序的私有目录,所以要获取root权限. 确保开发工具已经连接上手机,打开命令行,输入adb shell 这时还没有获取root权限,输入su,手机会弹出提示,允许获取root权限 后缀变为"#",成功获取root权限,这时可以进入应用程序的私有目录, 输入cd data/data/程序包名/databases/,进入数据库的目录 下

[Android]蓝牙基本操作

蓝牙是一种支持设备短距离传输数据的无线技术.android在2.0以后提供了这方面的支持.从查找蓝牙设备到能够相互通信要经过几个基本步骤(本机做为服务器):1.设置权限在manifest中配置 Xml代码    <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_AD