1. 程式人生 > >android sqlite 資料庫建立及增刪改查的操作實現

android sqlite 資料庫建立及增刪改查的操作實現

在android 開發工程中,我們經常會把資料儲存到本地資料庫,然後進行增刪該查的操作,為了提高工作效率,近期我有空的時候稍微整理了一下,下面分享下

第一步首先定義下表中的列名,我們要建一個類 implements BaseColumns ,下面給出原始碼

/**
 * Created by duanhongbo on 2016/11/28.
 */
public  class LocationData implements BaseColumns{
        public static final String LOCATION_TABLE_NAME = "location"; // 表名
public static final 
String LOCATION_ID = "location_id"; public final static String LONGITUDE = "longitude"; // varchar 20 not public final static String LATITUDE = "latitude"; // varchar 20 not null public final static String ELEVATION = "elevation";// varchar 20 not public final static String GsmSignalStrength = "gsmSignalStrength"
;// 訊號強度 public final static String BatteryCount = "batteryCount";// 電量 public final static String GpsState = "gpsState";// gps開關 public final static String Time = "time";// 時間 public final static String UserId = "userid";// 使用者idisNetwork public final static String isNetwork = "isNetwork";// 是否聯網 }

2  建一個數據庫管理類  繼承SQLiteOpenHelper,下面給出程式碼

/**
 * Created by duanhongbo on 2016/11/28.
 */
public class DatabaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "transition.db";
    private static final int DATABASE_VERSION = 1;
    private Context context;
    private static SQLiteDatabase mDb;
    public synchronized SQLiteDatabase getInstence() {

        if (null == mDb || (mDb != null && !mDb.isOpen())) {
            mDb = getReadableDatabase();
//       mDb = getWritableDatabase();
}
        return mDb;
}

    public static synchronized void closeDB() {
        if (null != mDb && mDb.isOpen()) {
            mDb.close();
}
    }

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
this.context = context;
}
    @Override
public void onCreate(SQLiteDatabase arg0) {
        // TODO Auto-generated method stub
mDb = arg0;
/*
       * 定位表
       */
mDb.execSQL("CREATE TABLE IF NOT EXISTS "
+ LocationData.LOCATION_TABLE_NAME + "( " + LocationData.LOCATION_ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL  , "
+ LocationData.LONGITUDE + " DOUBLE , " + LocationData.LATITUDE
+ " DOUBLE , " + LocationData.ELEVATION + " DOUBLE , "
+ LocationData.Time + " TEXT ," + LocationData.UserId + " TEXT ," + LocationData.GsmSignalStrength + " INTEGER , " + LocationData.BatteryCount + " INTEGER , " + LocationData.GpsState + " INTEGER ," + LocationData.isNetwork +" INTEGER );");
Log.i("dhb","success" + " -->  SUCCESS  ");
}
    @Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
        // TODO Auto-generated method stub
}

}

3第三部 我們要對資料庫 進行增刪該查的操作新建一個類LocationDao
/**
 * Created by duanhongbo on 2016/11/28.
 */
public class LocationDao {
    private DatabaseHelper dbHelper;
/**
     *
     */
public LocationDao(Context context) {
        // TODO Auto-generated constructor stub
this.dbHelper = new DatabaseHelper(context);
}

    /*
     * 插入某個使用者的資料
     */
public int insertInfo(Loaction l) {

        int success = 0;
        boolean flag = false;
/*String sql = "SELECT  MAX(" + LocationData.Location.LOCATION_ID + ") from "
                + LocationData.Location.LOCATION_TABLE_NAME;*/
Cursor cursor = null;
SQLiteDatabase db = dbHelper.getInstence();
db.beginTransaction();//
try {
            ContentValues contentValues = new ContentValues();
contentValues.put("elevation", l.getAltitude());//海拔
contentValues.put("latitude", l.getLatitude());//緯度
contentValues.put("longitude", l.getLongitude());//經度
contentValues.put("gsmSignalStrength", l.getGsmSignalStrength());//訊號強度
contentValues.put("batteryCount", l.getBatteryCount());//電量
contentValues.put("gpsState", l.getGpsState() + "");//gps狀態
contentValues.put("userid", l.getUserId());//使用者id
contentValues.put("time", l.getTime());//定位時間
contentValues.put("isNetwork", l.getIsNetwork());//是否聯網
long ok = db.insert(LocationData.LOCATION_TABLE_NAME, null,
contentValues);
            if (0 < ok) {
                flag = true;
} else {
                flag = false;
}
            db.setTransactionSuccessful();
} catch (Exception e) {
            // TODO: handle exception
} finally {
            db.endTransaction();
// db.close();
}
        return success;
}

    /**
     * 刪表某個使用者的所有資料
     */
public boolean delTable(String userId) {
        boolean isOk = false;
SQLiteDatabase db = dbHelper.getInstence();
db.beginTransaction();//
try {
            int res = db.delete(LocationData.LOCATION_TABLE_NAME,
LocationData.UserId + "=?", new String[]{userId});
            if (res > 0) {
                isOk = true;
}
            db.setTransactionSuccessful();
} catch (Exception e) {
            e.printStackTrace();
} finally {
            db.endTransaction();
}
        return isOk;
}

    /**
     * 查詢某個使用者的所有資料
     *
     * @param userId
* @return
*/
public List<Loaction> getAllLocation(int userId) {
        List<Loaction> allLoaction = new ArrayList<>();
Loaction l = null;
SQLiteDatabase db = dbHelper.getInstence();
db.beginTransaction();//
Cursor cursor = null;
String sql = "select * from " + LocationData.LOCATION_TABLE_NAME
+ " where " + LocationData.UserId + " = " + userId;
        try {
            cursor = db.rawQuery(sql, null);
            while (cursor.moveToNext()) {
                l = new Loaction();
String longtitude = cursor.getString(1);//經度
String latitude = cursor.getString(2);//緯度
String elevation = cursor.getString(3);//海拔
String time = cursor.getString(4);//時間
int userid = cursor.getInt(5);//使用者id
int gsmSignalStrength = cursor.getInt(6);//訊號強度
int batteryCount = cursor.getInt(7);//電量
int gpsState = cursor.getInt(8);//gps狀態
int isNetwork= cursor.getInt(9);//是否聯網
//............................................................................
l.setAltitude(Double.parseDouble(elevation));//海拔
l.setLongitude(Double.parseDouble(longtitude));//經度
l.setLatitude(Double.parseDouble(latitude));//緯度
l.setTime(time);//時間
l.setBatteryCount(batteryCount);//電量
l.setGsmSignalStrength(gsmSignalStrength);//強度
l.setUserId(userid);//使用者id
l.setGpsState(gpsState);
l.setIsNetwork(isNetwork);
allLoaction.add(l);
}
        } catch (Exception e) {
            // TODO Auto-generated catch block
e.printStackTrace();
} finally {
            db.endTransaction();
}
        return allLoaction;
}

}
如果其他專案用到的話,適當修改就好了,謝謝,週五到了,要下班了。。。。。。。美好的週末即將到來

相關推薦

android sqlite 資料庫建立刪改操作實現

在android 開發工程中,我們經常會把資料儲存到本地資料庫,然後進行增刪該查的操作,為了提高工作效率,近期我有空的時候稍微整理了一下,下面分享下 第一步首先定義下表中的列名,我們要建一個類 implements BaseColumns ,下面給出原始碼 /** *

Android中使用OrmLite(一):表建立刪改

OrmLite是一個輕量級的ORM框架,面向JAVA語言。也是時下流行的Android的ORM框架之一。在Android中使用Sqlite資料,如果又不想寫SQL,OrmLite或許是個不錯的選擇。 使用OrmLite,首先要在gradle

關於數據庫的建立刪改

是否為空 family gen 分組查詢 等於 set score 關於 upd 我們打開這個軟件首先要看看是否存在這個數據庫可以使用show databases:查看數據庫是否存在如果不存在我們可以新建數據庫用create database+數據庫的名字;(新建數據庫)u

python連線MongoDB資料庫方法刪改操作小結。

Y9   建議安裝MongoDB視覺化工具“Robo 3T”,可以很直觀的看到對MongoDB操作後的資料。 1、‘Robo 3T’的安裝,網上很多途徑可下載,在此分享我使用的版本: 連結:https://pan.baidu.com/s/1EcjmUVkXz1GQeTXy2fMk

爬蟲使用mysql建立資料庫並進行刪改操作

 前言: 該文章描述了爬蟲爬取資料後存入資料庫自動建庫建表,有不足之處還望大家提出 import re import time from functools import reduce from io import BytesIO import pymysql

Python3使用mysql建立資料庫並進行刪改操作

import pymysql #在資料庫中插入資料 def insertData(db, cursor): # 插入資料 sql = """INSERT INTO student (id, name, age)VALUES

新使用者的建立、表的建立刪改(Oracle)

--------------------------------- --建立一個新使用者 --------------------------------- createuserhahaya identifiedbyhahaya defaulttablespaceusers

java通過JDBC連線資料庫刪改操作

1.實戰資料庫資料的準備    建立資料庫(newsmanager),然後建立表news(id,title,content,type)和newstype(id,name),其中news的type和newstype的id為主外來鍵關係,如下圖圖   2.JDBC的介紹  

java建立順序表刪改功能實現

順序表類的增刪改查功能實現java語言描述package ch01; public class Sqlist { private Object listelem[]; //線性表儲存空間 private int curlen;

【Mac系統 + Python + Django】之開發一個釋出會系統【Django模型(二)】 【Mac系統 + Mysql】之安裝Mysql資料庫 【Python + Mysql】之用pymysql庫連線Mysql資料庫並進行刪改操作

上一部分給大家介紹Django的檢視。 接下來繼續來了解Django框架,來看第二部分,此部分是對資料庫的操作。   目錄: 一、設計系統表 二、admin後臺管理 三、基本資料訪問(SQLite資料庫) 四、Django配置MySQL   &

golang mongoDB 的集合建立以及刪改操作

mongo官方沒有golang 的官方驅動,但是有一個社群驅動: http://labix.org/mgo api文件:https://godoc.org/gopkg.in/mgo.v2#Collection.Update 資料的連線操作請看的我的上一篇部

php使用面對物件思想實現資料庫簡單的刪改操作

php學習筆記 使用Mysqli實現增刪改查 1.連線資料庫 //連線資料庫 //$database: 資料庫名 public function connect($database) { $servername = "localhost"; $username =

二叉樹時間複雜度分析刪改操作java實現

順序表和連結串列的時間複雜度由給定條件不同從而會得出不同的時間複雜度結果,對於程式設計時並不總是最好用的儲存方式。二叉樹是一種更加穩定的資料儲存方式,其複雜度總是能表示為一個固定的形式。以下來分析二叉樹增刪改查操作做的時間複雜度。 設有如下資料需要進行二叉樹形式儲存:

Oracle資料庫常見的刪改操作語句大全

回收站: show recyclebin (命令列語句) 清空回收站: purge recyclebin 回收站還原已刪除表: flashback table table_name to before dorp 獲取系統時間: sysdate 平均值:avg條件為真:whe

使用sql標籤來實現資料庫當中記錄刪改操作

1:實現向資料庫當中進行資料的插入操作 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncod

Larave5.*框架 資料庫的CURD刪改操作教程

Laravel提供了3種操作資料庫方式:DB facade(原始方式)、查詢構造器和Eloquent ORM。下面我將逐一講解。 資料庫的配置檔案在config目錄下的database.php裡。開啟這個檔案,找到MySQL的配置項。 這裡有個env,它其實

MyBatis框架搭建刪改操作

一.搭建好myBatis的環境   1.引入jar包     (1).mybatis-3.2.7jar核心jar     (2).mysql核心jar     (3).junit-4.9.jar   2.建立mybatis全域性配置檔案SqlMapConfig.xm(名字自

利用反射實現對sqlite3資料庫的crud(刪改)操作的一個baseAndroidDao封裝,安卓開發中

1.說明 博主主要是做java web後臺這一塊,但是偶爾做點安卓,發現安卓上沒有像Hibernate這種orm框架(....其實也沒有去找), 又覺得每次增刪改查都自己寫程式碼的話肯定是非常麻煩的,所以就寫了一個簡單的baseAndroidDao來封裝一些簡單的增刪改查操

MongoDB建立資料庫刪改語法

1、進入MongoDB後,鍵入命令show dbs;即可顯示現有資料庫及大小; 2、想要建立一個數據庫 命令:use databaseName; 這裡要注意的是鍵入該命令建立完成之後,再鍵入show dbs時還是沒有顯示剛才建立的資料庫。 要顯示它,我們就要給這個

如何建立資料庫以及MySQL刪改命令的簡單運用

在已經安裝好MySQL的前提下 1.在Windows開啟命令提示符視窗,輸入命令啟動MySQL命令列工具並登入root使用者:mysql -h localhost -u root -p 2.輸入密碼後,可以看到mysql命令表示登入MySQL成功。 3.使用show databases;檢視有哪