zoukankan      html  css  js  c++  java
  • Android-数据库操作

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.ArrayList;
    import java.util.List;
    
    import cn.crane.application.shoppingguider.model.BrandInfo;
    import cn.crane.application.shoppingguider.model.FoodInfo;
    import cn.crane.application.shoppingguider.model.JoyInfo;
    import cn.crane.application.shoppingguider.model.MallInfo;
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;
    
    public class MyDatabaseHelper {
        public DBOpenHelper myDbHelper;
        public static Context context;
        public static final String DATABASE_CHAT_NAME = "shopguider.db";
    
        public static final String TABLE_BRAND = "brands";
        public static final String TABLE_JOY = "joy";
        public static final String TABLE_FOODS = "foods";
        public static final String TABLE_SHOPINFO = "shopInfo";
    
        // private SQLiteDatabase db;
    
        public MyDatabaseHelper(Context context) {
            MyDatabaseHelper.context = context;
            copyDataBase(context, DATABASE_CHAT_NAME);
            myDbHelper = new DBOpenHelper(context, DATABASE_CHAT_NAME, null, 2);
    
        }
    
        /**
         * 获取商铺信息
         * 
         * @return
         */
        public List<MallInfo> getMalls() {
            SQLiteDatabase db = myDbHelper.getReadableDatabase();
            Cursor cursor = null;
            cursor = db.query(TABLE_SHOPINFO, null, null, null, null, null, null);
            List<MallInfo> arrMallInfos = new ArrayList<MallInfo>();
            while (cursor.moveToNext()) {
                MallInfo mallInfo = new MallInfo();
                mallInfo.setId(cursor.getString(cursor.getColumnIndex(MallInfo.ID)));
                mallInfo.setName(cursor.getString(cursor
                        .getColumnIndex(MallInfo.NAME)));
                mallInfo.setMsg(cursor.getString(cursor
                        .getColumnIndex(MallInfo.MSG)));
                mallInfo.setImages(cursor.getString(cursor
                        .getColumnIndex(MallInfo.IMAGES)));
                mallInfo.setIsCollect(cursor.getString(cursor
                        .getColumnIndex(MallInfo.ISCOLLECT)));
                mallInfo.setCategory(cursor.getString(cursor
                        .getColumnIndex(MallInfo.CATEGORY)));
                arrMallInfos.add(mallInfo);
            }
            if (!(cursor.isClosed() || cursor == null)) {
                cursor.close();
            }
            db.close();
            return arrMallInfos;
        }
    
        /**
         * 获取品牌信息
         * 
         * @return
         */
        public List<BrandInfo> getBrands(boolean isAll) {
            SQLiteDatabase db = myDbHelper.getReadableDatabase();
            Cursor cursor = null;
            if (isAll) {
                cursor = db.query(TABLE_BRAND, null, null, null, null, null, null);
            } else {
                cursor = db.query(TABLE_BRAND, null, "isCollect=?",
                        new String[] { BrandInfo.COLLECT_YES }, null, null, null);
            }
    
            List<BrandInfo> arrBrandInfos = new ArrayList<BrandInfo>();
            while (cursor.moveToNext()) {
                BrandInfo brandInfo = new BrandInfo();
                brandInfo.setId(cursor.getString(cursor
                        .getColumnIndex(BrandInfo.ID)));
                brandInfo.setBrand_name(cursor.getString(cursor
                        .getColumnIndex(BrandInfo.NAME)));
                brandInfo.setMsg(cursor.getString(cursor
                        .getColumnIndex(BrandInfo.MSG)));
                brandInfo.setImages(cursor.getString(cursor
                        .getColumnIndex(BrandInfo.IMAGES)));
                brandInfo.setIsCollect(cursor.getString(cursor
                        .getColumnIndex(BrandInfo.ISCOLLECT)));
                brandInfo.setAction(cursor.getString(cursor
                        .getColumnIndex(BrandInfo.ACTION)));
                arrBrandInfos.add(brandInfo);
            }
            if (!(cursor.isClosed() || cursor == null)) {
                cursor.close();
            }
            db.close();
            return arrBrandInfos;
        }
    
        /**
         * 获取餐饮信息
         * 
         * @return
         */
        public List<FoodInfo> getFoods() {
            SQLiteDatabase db = myDbHelper.getReadableDatabase();
            Cursor cursor = null;
            cursor = db.query(TABLE_FOODS, null, null, null, null, null, null);
    
            List<FoodInfo> arrFoodInfos = new ArrayList<FoodInfo>();
            while (cursor.moveToNext()) {
                FoodInfo foodInfo = new FoodInfo();
                foodInfo.setId(cursor.getString(cursor.getColumnIndex(FoodInfo.ID)));
                foodInfo.setName(cursor.getString(cursor
                        .getColumnIndex(FoodInfo.NAME)));
                foodInfo.setImages(cursor.getString(cursor
                        .getColumnIndex(FoodInfo.IMAGES)));
                foodInfo.setDetail(cursor.getString(cursor
                        .getColumnIndex(FoodInfo.DETAIL)));
                arrFoodInfos.add(foodInfo);
            }
            if (!(cursor.isClosed() || cursor == null)) {
                cursor.close();
            }
            db.close();
            return arrFoodInfos;
        }
    
        /**
         * 获取娱乐信息
         * 
         * @return
         */
        public List<JoyInfo> getJoys() {
            SQLiteDatabase db = myDbHelper.getReadableDatabase();
            Cursor cursor = null;
            cursor = db.query(TABLE_JOY, null, null, null, null, null, null);
    
            List<JoyInfo> arrJoyInfos = new ArrayList<JoyInfo>();
            while (cursor.moveToNext()) {
                JoyInfo joyInfo = new JoyInfo();
                joyInfo.setId(cursor.getString(cursor.getColumnIndex(JoyInfo.ID)));
                joyInfo.setName(cursor.getString(cursor
                        .getColumnIndex(JoyInfo.NAME)));
                joyInfo.setImages(cursor.getString(cursor
                        .getColumnIndex(JoyInfo.IMAGES)));
                joyInfo.setDetail(cursor.getString(cursor
                        .getColumnIndex(JoyInfo.DETAIL)));
                arrJoyInfos.add(joyInfo);
            }
            if (!(cursor.isClosed() || cursor == null)) {
                cursor.close();
            }
            db.close();
            return arrJoyInfos;
        }
    
        public long updateBrandInfo(BrandInfo brandInfo) {
            SQLiteDatabase db = myDbHelper.getWritableDatabase();
            ContentValues cv = new ContentValues();
            cv.put(BrandInfo.ISCOLLECT, brandInfo.getIsCollect());
            // 插入ContentValues中的数据
            long l = db.update(TABLE_BRAND, cv, "id=?",
                    new String[] { brandInfo.getId() + "" });
            return l;
        }
    
        /**
         * copy DB
         */
        public static void copyDataBase(Context context, String dbName) {
            OutputStream os = null;
            File dbFile = context.getDatabasePath(dbName);
            if (dbFile.exists()) {
                return;
            }
            File dirDatabase = new File(dbFile.getParent());
            dirDatabase.mkdirs();
            try {
                dbFile.createNewFile();
                os = new FileOutputStream(dbFile.getAbsolutePath());
                InputStream open = context.getAssets().open(dbName);
                byte[] b = new byte[1024 * 512];
                int len;
                while ((len = open.read(b)) > 0) {
                    os.write(b, 0, len);
                }
                os.flush();
                open.close();
    
            } catch (FileNotFoundException e) {
    
                e.printStackTrace();
            } catch (IOException e) {
    
                e.printStackTrace();
            } finally {
                if (null != os) {
                    try {
                        os.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
        /**
         * SQLiteOpenHelper
         * 
         * @author yurf
         * 
         */
        private static class DBOpenHelper extends SQLiteOpenHelper {
    
            public DBOpenHelper(Context context, String name,
                    CursorFactory factory, int version) {
                super(context, name, factory, version);
    
            }
    
            @Override
            public void onCreate(SQLiteDatabase db) {
    
            }
    
            @Override
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                File file = context.getDatabasePath(DATABASE_CHAT_NAME);
                file.delete();
                copyDataBase(context, DATABASE_CHAT_NAME);
                onCreate(db);
            }
    
        }
    
    }
  • 相关阅读:
    getline函数
    Java获取某年某月的第一天
    计划任务中使用NT AUTHORITYSYSTEM用户和普通管理员用户有什么差别
    Windows 7系统安装MySQL5.5.21图解
    C#高性能大容量SOCKET并发(十一):编写上传client
    Linux 终端訪问 FTP 及 上传下载 文件
    完毕port(CompletionPort)具体解释
    ping不通的几种可能原因
    Apple Swfit UI控件实现
    js中取session的值
  • 原文地址:https://www.cnblogs.com/crane13/p/3688379.html
Copyright © 2011-2022 走看看