一般的数据库SQLite操作

原创 2016年08月30日 19:43:55


一般的数据库SQLite操作

package com.map.database;


import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;


public class DatabaseHelper extends SQLiteOpenHelper {


    private static final String TAG = "DatabaseHelper";


    public static final String DB_NAME = "DB_MAP";
    public static final int DB_VERSION = 1;


    /**
     * 数据库表的名字
     */
    public static final String DB_TABLE = "RECORD";


    public final static String DB_START_LAT = "start_lat";
    public final static String DB_START_LNG = "start_lng";
    public final static String DB_START_PLACE = "location_place_start";
    public final static String DB_END_LAT = "end_lat";
    public final static String DB_END_LNG = "end_lng";
    public final static String DB_END_PLACE = "location_place_end";


    public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
                          int version) {
        super(context, name, factory, version);
        // TODO Auto-generated constructor stub
    }


    /**
     * 调用此方法,首次会创建数据库和数据库版本
     * @param context
     */
    public DatabaseHelper(Context context){
        super(context, DB_NAME, null, DB_VERSION);
        // TODO Auto-generated constructor stub
        Log.d("LOG_TAG----->", "DatabaseHelper");
    }


    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub


        //创建数据表
        StringBuffer sBuffer = new StringBuffer();
        sBuffer.append("CREATE TABLE IF NOT EXISTS " + DB_TABLE + " (");
        sBuffer.append("ID INTEGER PRIMARY KEY AUTOINCREMENT, ");//ID是必须要有的,作为数据库表中的唯一标识。
        //sBuffer.append("record_id VARCHAR(255) NULL,");
        sBuffer.append("start_lat DOUBLE NULL,");
        sBuffer.append("start_lng DOUBLE NULL,");
        sBuffer.append("location_place_start VARCHAR(255) NULL,");
        sBuffer.append("end_lat DOUBLE NULL,");
        sBuffer.append("end_lng DOUBLE NULL,");
        sBuffer.append("location_place_end VARCHAR(255) NULL)");
        db.execSQL(sBuffer.toString());


    }


    public void onOpen(SQLiteDatabase db){
        super.onOpen(db);
        Log.d(TAG, "DatabaseHelper onOpen");
    }


    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE);
        onCreate(db);
    }


    @Override
    public synchronized void close() {
        super.close();
    }


    public void close(SQLiteDatabase db){
        db.close();
    }




}
_____________________________________________________________________________


package com.map.database;


import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;


import java.util.LinkedList;
import java.util.List;


public class DatabaseOperator {


    private static final String TAG = "DatabaseOperator";


    private static DatabaseOperator instance;
    private Context context;
    private DatabaseHelper databaseHelper;




    private DatabaseOperator(Context context){
       this.context = context;
        setInitDatabase(context);
    }


   public static DatabaseOperator getInstance(Context context){
       if (instance == null){
           synchronized(DatabaseOperator.class){
               if(instance == null){
                   instance = new DatabaseOperator(context);
               }
           }
       }
       return instance;
   }


    private synchronized void setInitDatabase(Context context){
        databaseHelper = new DatabaseHelper(context);
    }


    private synchronized SQLiteDatabase getSQLiteDatabaseWriteInstance(){
        if (databaseHelper == null){
            setInitDatabase(context);
        }
        SQLiteDatabase database = databaseHelper.getWritableDatabase();//增删改
        return database;
    }


    private SQLiteDatabase getSQLiteDatabaseReadInstance(){
        if (databaseHelper == null){
            setInitDatabase(context);
        }
        SQLiteDatabase database = databaseHelper.getReadableDatabase();//查
        return database;
    }


    public synchronized void insertDbRecordBeanListToDB(List<DbRecoedBean> beans){


        List<DbRecoedBean> beanList = beans;
        SQLiteDatabase database = getSQLiteDatabaseWriteInstance();


        for (int i = 0; i < beanList.size(); i++){
            String SQL = "insert into "+ DatabaseHelper.DB_TABLE
                    + "(" + DatabaseHelper.DB_START_LAT + "," + DatabaseHelper.DB_START_LNG + ","
                    + DatabaseHelper.DB_START_PLACE + "," + DatabaseHelper.DB_END_LAT + ","
                    + DatabaseHelper.DB_END_LNG + "," + DatabaseHelper.DB_END_PLACE + ")"
                    + "values(?, ?, ?, ?, ?, ?)";
            database.execSQL(SQL, new Object[]{
                    beanList.get(i).getStart_lat(),
                    beanList.get(i).getStart_lng(),
                    beanList.get(i).getLocation_start_place(),
                    beanList.get(i).getEnd_lat(),
                    beanList.get(i).getEnd_lng(),
                    beanList.get(i).getLocation_end_place()});
        }


    }


    public synchronized void insertDbResordBeanToDB(DbRecoedBean bean){
        SQLiteDatabase database = getSQLiteDatabaseWriteInstance();


        String SQL = "insert into "+ DatabaseHelper.DB_TABLE
                    + "(" + DatabaseHelper.DB_START_LAT + "," + DatabaseHelper.DB_START_LNG + ","
                    + DatabaseHelper.DB_START_PLACE + "," + DatabaseHelper.DB_END_LAT + ","
                    + DatabaseHelper.DB_END_LNG + "," + DatabaseHelper.DB_END_PLACE + ")"
                    + "values(?, ?, ?, ?, ?, ?)";
        database.execSQL(SQL, new Object[]{
                    bean.getStart_lat(),
                    bean.getStart_lng(),
                    bean.getLocation_start_place(),
                    bean.getEnd_lat(),
                    bean.getEnd_lng(),
                    bean.getLocation_end_place()});
    }


    public List<DbRecoedBean> selectDbRecordData(){


        SQLiteDatabase database = getSQLiteDatabaseReadInstance();
        String SQL = "select * from " + DatabaseHelper.DB_TABLE;
        List<DbRecoedBean> beanList = new LinkedList<>();


        Cursor mCursor = database.rawQuery(SQL, new String[]{});
        int count = mCursor.getCount();
        Log.d(TAG, "数据集条数 = " + count);
        while(mCursor.moveToNext()){
            DbRecoedBean bean = new DbRecoedBean();


            int indexStLat = mCursor.getColumnIndex(DatabaseHelper.DB_START_LAT);
            Double stLat = mCursor.getDouble(indexStLat);
            bean.setStart_lat(stLat);


            int indexStLng = mCursor.getColumnIndex(DatabaseHelper.DB_START_LNG);
            Double stLng = mCursor.getDouble(indexStLng);
            bean.setStart_lng(stLng);


            int indexEndLat = mCursor.getColumnIndex(DatabaseHelper.DB_END_LAT);
            Double endLat = mCursor.getDouble(indexEndLat);
            bean.setEnd_lat(endLat);


            int indexEndLng = mCursor.getColumnIndex(DatabaseHelper.DB_END_LNG);
            Double endLng = mCursor.getDouble(indexEndLng);
            bean.setEnd_lng(endLng);


            int indexStPlace = mCursor.getColumnIndex(DatabaseHelper.DB_START_PLACE);
            String stPlace = mCursor.getString(indexStPlace);
            bean.setLocation_start_place(stPlace);


            int indexEndPlace = mCursor.getColumnIndex(DatabaseHelper.DB_END_PLACE);
            String endPlace = mCursor.getString(indexEndPlace);
            bean.setLocation_end_place(endPlace);


            beanList.add(bean);
        }
        mCursor.close();
        return beanList;
    }




    public synchronized void deleteAllData(){
        String SQL = "delete from "+ DatabaseHelper.DB_TABLE;
        SQLiteDatabase database = getSQLiteDatabaseWriteInstance();
        database.execSQL(SQL);
    }




}
______

______________________________________________________________________
版权声明:本文为博主原创文章,未经博主允许不得转载。

Qt之操作数据库(SQLite)实例

QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持。...
  • rl529014
  • rl529014
  • 2016年08月05日 11:17
  • 13901

android:在个推BroadcastReceiver中操作sqlite数据库存入clientID的坑

android:在个推BroadcastReceiver中操作sqlite数据库存入clientID的坑问题背景实验室的项目用到了个推,使用个推需要得到clientId。由于种种原因,需要把clien...
  • fhf942656334
  • fhf942656334
  • 2016年05月29日 19:32
  • 363

SQlite数据库简介和简单操作

SQlite数据库: —–是一种小型的嵌入式数据库,依赖于文件系统,可以直接获取该数据库对象。 —–没有用户账户的概念。 ——表中的字段可以不定义字段类型。但是为了程序员交互,便于数据库的移植,...
  • BATManer
  • BATManer
  • 2016年05月26日 15:05
  • 452

C#操作SQLite数据库知识总结

C#操作SQLite Database C#下SQLite操作驱动dll下载:System.Data.SQLite C#使用SQLite步骤: (1)新建一个project (2)添加SQLite操作...
  • qq_29098553
  • qq_29098553
  • 2017年09月05日 10:57
  • 541

Python进行SQLite数据库操作

SQLite简介SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已...
  • yybmec
  • yybmec
  • 2015年03月21日 14:41
  • 1196

sqlite数据库的介绍及java操作sqlite

sqlite是啥?1、一种轻型数据库 2、关系型数据库 3、占用资源很低,几百K内存,适合嵌入式设备 4、支持windows、linux、unix 5、可与java、php、c#、python...
  • lk7688535
  • lk7688535
  • 2016年09月02日 11:17
  • 1404

一个简单的PHP操作SQLite数据库例…

简单的用PHP连接SQLite建立表,并使用INSERT和SELECT语句操作SQLITE数据库。 在使用SQLite前,我们要确保 php.ini中已经启用sqlite和pdo配置 打开PHP.IN...
  • andybegin
  • andybegin
  • 2013年03月28日 21:52
  • 1250

C#操作Sqlite快速入门

http://www.cnblogs.com/greatverve/archive/2011/04/28/sqlite-start.html Sqlite不需要安装即可使用。 Sqli...
  • lanshengsheng2012
  • lanshengsheng2012
  • 2013年11月20日 12:46
  • 1868

QT5 下操作sqlite数据库

QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持。   QSqlDatabase对象象征了数据库的关联。...
  • leo___liu
  • leo___liu
  • 2017年06月07日 19:03
  • 763

SQLite数据库中多线程使用问题

由于项目是接手之前的烂尾项目,经常被吐槽说界面卡半天,后来发现项目里的网络请求,数据库操作都是在主线程。将一些长时间的操作换到多线程或者异步之后后,用户交互是变的顺畅多了,可是经常出现莫名其妙的闪退,...
  • u011619283
  • u011619283
  • 2015年06月19日 14:26
  • 2116
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一般的数据库SQLite操作
举报原因:
原因补充:

(最多只允许输入30个字)