2022-11-5学习内容
1.案例-购物车-数据库准备
1.1ShoppingDBHelper.java
package com.example.chapter06.database; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class ShoppingDBHelper extends SQLiteOpenHelper { private static final String DB_NAME = "shopping.db"; // 商品信息表 private static final String TABLE_GOODS_INFO = "GOODS_INFO"; // 购物车信息表 private static final String TABLE_CART_INFO = "CART_INFO"; private static final int DB_VERSION = 1; private static ShoppingDBHelper mHelper = null; private SQLiteDatabase mRDB = null; private SQLiteDatabase mWDB = null; private ShoppingDBHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } // 打开数据库的读连接 public SQLiteDatabase openReadLink() { if (mRDB == null || !mRDB.isOpen()) { mRDB = mHelper.getReadableDatabase(); } return mRDB; } // 打开数据库的写连接 public SQLiteDatabase openWriteLink() { if (mWDB == null || !mWDB.isOpen()) { mWDB = mHelper.getWritableDatabase(); } return mWDB; } // 关闭数据库连接 public void closeLink() { if (mRDB != null && mRDB.isOpen()) { mRDB.close(); mRDB = null; } if (mWDB != null && mWDB.isOpen()) { mWDB.close(); mWDB = null; } } // 利用单例模式获取数据库帮助器的唯一实例 public static ShoppingDBHelper getInstance(Context context) { if (mHelper == null) { mHelper = new ShoppingDBHelper(context); } return mHelper; } // 创建数据库,执行建表语句 @Override public void onCreate(SQLiteDatabase db) { // 创建商品信息表 String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_GOODS_INFO + "(_ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," + " NAME VARCHAR NOT NULL," + " DESCRIPTION VARCHAR NOT NULL," + " PRICE FLOAT NOT NULL," + " PIC_PATH VARCHAR NOT NULL);"; db.execSQL(sql); // 创建购物车信息表 sql = "CREATE TABLE IF NOT EXISTS " + TABLE_CART_INFO + "(_ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," + " GOODS_ID INTEGER NOT NULL," + " COUNT INTEGER NOT NULL);"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
1.2GoodsInfo.java
package com.example.chapter06.entity; import com.example.chapter06.R; import java.util.ArrayList; public class GoodsInfo { public int id; // 名称 public String name; // 描述 public String description; // 价格 public float price; // 大图的保存路径 public String picPath; // 大图的资源编号 public int pic; // 声明一个手机商品的名称数组 private static String[] mNameArray = { "ipone11", "Mate30", "小米10", "OPPO Reno3", "vivo X30", "荣耀30S" }; // 声明一个手机商品的描述数组 private static String[] mDescArray = { "Apple iPhone11 256GB 绿色 4G全网通手机", "华为 HUAWEI Mate30 8GB+256GB 丹霞橙 5G全网通 全面屏手机", "小米 MI10 8GB+128GB 钛银黑 5G手机 游戏拍照手机", "OPPO Reno3 8GB+128GB 蓝色星夜 双模5G 拍照游戏智能手机", "vivo X30 8GB+128GB 绯云 5G全网通 美颜拍照手机", "荣耀30S 8GB+128GB 蝶羽红 5G芯片 自拍全面屏手机" }; // 声明一个手机商品的价格数组 private static float[] mPriceArray = {6299, 4999, 3999, 2999, 2998, 2399}; // 声明一个手机商品的大图数组 private static int[] mPicArray = { R.drawable.iphone, R.drawable.huawei, R.drawable.xiaoxi, R.drawable.oppo, R.drawable.vivo, R.drawable.rongyao }; // 获取默认的手机信息列表 public static ArrayList<GoodsInfo> getDefaultList() { ArrayList<GoodsInfo> goodsList = new ArrayList<>(); for (int i = 0; i < mNameArray.length; i++) { GoodsInfo info = new GoodsInfo(); info.id = i; info.name = mNameArray[i]; info.description = mDescArray[i]; info.price = mPriceArray[i]; info.pic = mPicArray[i]; goodsList.add(info); } return goodsList; } }