Android(安卓)订餐APP(Sqlite数据库,完整的增删改查)
16lz
2021-01-24
Android(安卓)订餐APP(Sqlite数据库,完整的增删改查)
一.背景
首先说说项目的背景,基于地铁口鸡蛋饼的一个小项目,APP中固定设置的鸡蛋饼搭配,顾客也可以自己搭配
二.开发环境
- AndroidStudio3.0.1
- JDK1.8
- 语言:JAVA
- 数据存储:Sqlite
三.功能
- 注册、登录、管理员、普通用户
- 首页:鸡蛋饼食材搭配
- 订单:购买订单展示
- 个人/管理:个人信息、用户信息、机器信息、订单管理、食材管理、退出登录等
- 技术知识:Sqlite增删改查、glide图片加载、Spinner、EventBus、butterknife等等
四.功能图
五.Sqlite数据库存储(增删改查)
字段值 | 数据类型 | 说明 |
id | text | 主键值 |
nickName | text | 用户名 |
password | text | 密码 |
path | text | 头像 |
qianming | text | 签名 |
phone | text | 手机号 |
birthday | text | 生日 |
sex | text | 性别 |
type | text | 用户类型 |
用户表
代码如下:
public class DbSqliteHelper extends SQLiteOpenHelper { public DbSqliteHelper(Context ctx) { super(ctx, "JianBin", null, 1); } @Override public void onCreate(SQLiteDatabase db) { //用户数据表 db.execSQL("CREATE TABLE if not exists user(id integer PRIMARY KEY autoincrement," + " nickName text, password text, path text, qianming text, phone text, birthday text, sex text, beizhu text,type text)"); //鸡蛋饼订单信息数据表 db.execSQL("CREATE TABLE if not exists jiqidingdan(id integer PRIMARY KEY autoincrement," + "dingdanbianhao text,userNmae text, binName text, lajiao text, salajiang text, fanqie text, zuoliao text, xiangcong text, bianhao text, price text, shuliang text, time text,zhuangtai text,huitui text,wanzi text,jidan text)"); db.execSQL("CREATE TABLE if not exists jiqibin(id integer PRIMARY KEY autoincrement," + "jiqiname text, jiqiweizhi text)"); //机器存储数据表 db.execSQL("CREATE TABLE if not exists jiqi(id integer PRIMARY KEY autoincrement," + " title text,jiqitupian text, jiqiname text, jiqiweizhi text,lajiao text,salajiang text,fanqie text,xiangcong text)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } private static DbSqliteHelper dbManager; public static DbSqliteHelper getInstance(Context ctx) { if (dbManager == null) { synchronized (DbSqliteHelper.class) { if (dbManager == null) { dbManager = new DbSqliteHelper(ctx); } } } return dbManager; } public boolean saveUser(UserBean bean) { SQLiteDatabase db = getWritableDatabase(); if (db != null) { //注册之前先查询是否重复注册 Cursor cursor = db.rawQuery("SELECT * FROM user WHERE nickName = ?", new String[]{bean.getNickName()}); boolean hasUser = false; if (cursor.moveToNext()) { hasUser = true; } cursor.close(); if (hasUser) { return true; } //如果不重复则注册 db.execSQL("INSERT INTO user(nickName , password , path , qianming , phone , birthday , sex , beizhu,type) " + "VALUES ('" + bean.getNickName() + "', '" + bean.getPassword() + "', '" + bean.getPath() + "', '" + bean.getQianming() + "', '" + bean.getPhone() + "', '" + bean.getBirthday() + "', '" + bean.getSex() + "', '" + bean.getBeizhu() + "', '" + bean.getType() + "')"); } return false; } /** * 查找用户(登录操作) * * @return 用户 */ public UserBean findUser(String[] args) { UserBean bean = new UserBean(); SQLiteDatabase db = getWritableDatabase(); if (db != null) { Cursor cursor = db.query("user", null, "nickName = ?", args, null, null, null); if (cursor.moveToNext()) { bean.setId(cursor.getInt(cursor.getColumnIndex("id"))); bean.setNickName(cursor.getString(cursor.getColumnIndex("nickName"))); bean.setPassword(cursor.getString(cursor.getColumnIndex("password"))); bean.setPath(cursor.getString(cursor.getColumnIndex("path"))); bean.setQianming(cursor.getString(cursor.getColumnIndex("qianming"))); bean.setPhone(cursor.getString(cursor.getColumnIndex("phone"))); bean.setBirthday(cursor.getString(cursor.getColumnIndex("birthday"))); bean.setSex(cursor.getString(cursor.getColumnIndex("sex"))); bean.setBeizhu(cursor.getString(cursor.getColumnIndex("beizhu"))); bean.setType(cursor.getString(cursor.getColumnIndex("type"))); } cursor.close(); } return bean; } /** * 更新用户信息 * * @param record */ public void updateUser(UserBean record) { SQLiteDatabase db = getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put("id", record.getId()); contentValues.put("nickName", record.getNickName()); contentValues.put("password", record.getPassword()); contentValues.put("path", record.getPath()); contentValues.put("qianming", record.getQianming()); contentValues.put("phone", record.getPhone()); contentValues.put("birthday", record.getBirthday()); contentValues.put("sex", record.getSex()); contentValues.put("beizhu", record.getBeizhu()); contentValues.put("type", record.getType()); if (db != null) { db.update("user", contentValues, "id = ?", new String[]{record.getId()+""}); } } /** * 查询用户数据 * * @return */ public List getuser(String name) { List userBeanList = new ArrayList(); SQLiteDatabase db = getWritableDatabase(); if (db != null) { //查询记录 String[] selectioinArgs = {"%"+name+"%"};//注意:这里没有单引号 String sql = "SELECT * FROM user" + " where nickName like ? "; Cursor cursor = db.rawQuery(sql, selectioinArgs); while (cursor.moveToNext()) { UserBean bean = new UserBean(); bean.setId(cursor.getInt(cursor.getColumnIndex("id"))); bean.setNickName(cursor.getString(cursor.getColumnIndex("nickName"))); bean.setPassword(cursor.getString(cursor.getColumnIndex("password"))); bean.setPath(cursor.getString(cursor.getColumnIndex("path"))); bean.setQianming(cursor.getString(cursor.getColumnIndex("qianming"))); bean.setPhone(cursor.getString(cursor.getColumnIndex("phone"))); bean.setBirthday(cursor.getString(cursor.getColumnIndex("birthday"))); bean.setSex(cursor.getString(cursor.getColumnIndex("sex"))); bean.setBeizhu(cursor.getString(cursor.getColumnIndex("beizhu"))); bean.setType(cursor.getString(cursor.getColumnIndex("type"))); userBeanList.add(bean); } cursor.close(); } return userBeanList; } /** * 获取所有用户 * @return */ public List getAllUser() { List userBeanList = new ArrayList(); SQLiteDatabase db = getWritableDatabase(); if (db != null) { Cursor cursor = db.rawQuery("SELECT * FROM user ", null); while (cursor.moveToNext()) { UserBean bean = new UserBean(); bean.setId(cursor.getInt(cursor.getColumnIndex("id"))); bean.setNickName(cursor.getString(cursor.getColumnIndex("nickName"))); bean.setPassword(cursor.getString(cursor.getColumnIndex("password"))); bean.setPath(cursor.getString(cursor.getColumnIndex("path"))); bean.setQianming(cursor.getString(cursor.getColumnIndex("qianming"))); bean.setPhone(cursor.getString(cursor.getColumnIndex("phone"))); bean.setBirthday(cursor.getString(cursor.getColumnIndex("birthday"))); bean.setSex(cursor.getString(cursor.getColumnIndex("sex"))); bean.setBeizhu(cursor.getString(cursor.getColumnIndex("beizhu"))); bean.setType(cursor.getString(cursor.getColumnIndex("type"))); userBeanList.add(bean); } cursor.close(); } return userBeanList; } /** * 删除用户 * * @param id */ public void deleteUser(int id) { SQLiteDatabase db = getWritableDatabase(); if (db != null) { db.execSQL("DELETE FROM user WHERE id = " + id); } } //存储机器数据 public void saveJiQi(JiQiBean bean) { SQLiteDatabase db = getWritableDatabase(); db.execSQL("INSERT INTO jiqi(title,jiqitupian , jiqiname , jiqiweizhi,lajiao ,salajiang ,fanqie ,xiangcong ) " + "VALUES ('" + bean.getTitle() + "', '" + bean.getJiqitupian() + "', '" + bean.getJiqiname() + "', '" + bean.getJiqiweizhi() + "', '" + bean.getLajiao() + "', '" + bean.getSalajiang() + "', '" + bean.getFanqie() + "', '" + bean.getXiangcong() + "')"); } /** * 获取所有jiq数据 * * @return */ public List getAllJiQi() { List records = new ArrayList(); SQLiteDatabase db = getWritableDatabase(); if (db != null) { Cursor cursor = db.rawQuery("SELECT * FROM jiqi ", null); while (cursor.moveToNext()) { JiQiBean bean = new JiQiBean(); bean.setId(cursor.getInt(cursor.getColumnIndex("id"))); bean.setTitle(cursor.getString(cursor.getColumnIndex("title"))); bean.setJiqitupian(cursor.getInt(cursor.getColumnIndex("jiqitupian"))); bean.setJiqiname(cursor.getString(cursor.getColumnIndex("jiqiname"))); bean.setJiqiweizhi(cursor.getString(cursor.getColumnIndex("jiqiweizhi"))); bean.setLajiao(cursor.getString(cursor.getColumnIndex("lajiao"))); bean.setSalajiang(cursor.getString(cursor.getColumnIndex("salajiang"))); bean.setFanqie(cursor.getString(cursor.getColumnIndex("fanqie"))); bean.setXiangcong(cursor.getString(cursor.getColumnIndex("xiangcong"))); records.add(bean); } cursor.close(); } return records; } /** * 查询鸡蛋饼数据 * * @return */ public List getJiQi(String name) { List jiQiBeanList = new ArrayList(); SQLiteDatabase db = getWritableDatabase(); if (db != null) { //查询记录 String[] selectioinArgs = {"%"+name+"%"};//注意:这里没有单引号 String sql = "SELECT * FROM jiqi" + " where jiqiname like ? "; Cursor cursor = db.rawQuery(sql, selectioinArgs); while (cursor.moveToNext()) { JiQiBean bean = new JiQiBean(); bean.setId(cursor.getInt(cursor.getColumnIndex("id"))); bean.setTitle(cursor.getString(cursor.getColumnIndex("title"))); bean.setJiqitupian(cursor.getInt(cursor.getColumnIndex("jiqitupian"))); bean.setJiqiname(cursor.getString(cursor.getColumnIndex("jiqiname"))); bean.setJiqiweizhi(cursor.getString(cursor.getColumnIndex("jiqiweizhi"))); bean.setLajiao(cursor.getString(cursor.getColumnIndex("lajiao"))); bean.setSalajiang(cursor.getString(cursor.getColumnIndex("salajiang"))); bean.setFanqie(cursor.getString(cursor.getColumnIndex("fanqie"))); bean.setXiangcong(cursor.getString(cursor.getColumnIndex("xiangcong"))); jiQiBeanList.add(bean); } cursor.close(); } return jiQiBeanList; } /** * 更新机器信息 * * @param jiQiBean */ public void updateQiji(JiQiBean jiQiBean) { SQLiteDatabase db = getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put("id", jiQiBean.getId()); contentValues.put("title", jiQiBean.getTitle()); contentValues.put("jiqitupian", jiQiBean.getJiqitupian()); contentValues.put("jiqiname", jiQiBean.getJiqiname()); contentValues.put("jiqiweizhi", jiQiBean.getJiqiweizhi()); contentValues.put("lajiao", jiQiBean.getLajiao()); contentValues.put("salajiang", jiQiBean.getSalajiang()); contentValues.put("fanqie", jiQiBean.getFanqie()); contentValues.put("xiangcong", jiQiBean.getXiangcong()); if (db != null) { db.update("jiqi", contentValues, "id = ?", new String[]{jiQiBean.getId()+""}); } } /** * 删除机器信息 * * @param id */ public void deleteJiQi(int id) { SQLiteDatabase db = getWritableDatabase(); if (db != null) { db.execSQL("DELETE FROM jiqi WHERE id = " + id); } } //存储鸡蛋饼信息数据 public void saveJiQiBing(BingBean bean) { SQLiteDatabase db = getWritableDatabase(); db.execSQL("INSERT INTO jiqibin(jiqiname , jiqiweizhi) " + "VALUES ('" + bean.getJiqiname() + "', '" + bean.getJiqiweizhi() + "')"); } /** * 更新机器信息 * * @param jiQiBean */ public void updateJiQiBing(BingBean jiQiBean) { SQLiteDatabase db = getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put("id", jiQiBean.getId()); contentValues.put("jiqiname", jiQiBean.getJiqiname()); contentValues.put("jiqiweizhi", jiQiBean.getJiqiweizhi()); if (db != null) { db.update("jiqibin", contentValues, "id = ?", new String[]{jiQiBean.getId()+""}); } } //模糊查询机器信息 public List getJiQiBean(String name) { List jiQiBeanList = new ArrayList(); SQLiteDatabase db = getWritableDatabase(); if (db != null) { //查询记录 String[] selectioinArgs = {"%"+name+"%"};//注意:这里没有单引号 String sql = "SELECT * FROM jiqibin" + " where jiqiname like ? "; Cursor cursor = db.rawQuery(sql, selectioinArgs); while (cursor.moveToNext()) { BingBean bean = new BingBean(); bean.setId(cursor.getInt(cursor.getColumnIndex("id"))); bean.setJiqiname(cursor.getString(cursor.getColumnIndex("jiqiname"))); bean.setJiqiweizhi(cursor.getString(cursor.getColumnIndex("jiqiweizhi"))); jiQiBeanList.add(bean); } cursor.close(); } return jiQiBeanList; } /** * 获取所有鸡蛋饼数据 * * @return */ public List getAllJiQiBing() { List records = new ArrayList(); SQLiteDatabase db = getWritableDatabase(); if (db != null) { Cursor cursor = db.rawQuery("SELECT * FROM jiqibin ", null); while (cursor.moveToNext()) { BingBean bean = new BingBean(); bean.setId(cursor.getInt(cursor.getColumnIndex("id"))); bean.setJiqiname(cursor.getString(cursor.getColumnIndex("jiqiname"))); bean.setJiqiweizhi(cursor.getString(cursor.getColumnIndex("jiqiweizhi"))); records.add(bean); } cursor.close(); } return records; } /** * 删除机器信息 * * @param id */ public void deleteJiQiBean(int id) { SQLiteDatabase db = getWritableDatabase(); if (db != null) { db.execSQL("DELETE FROM jiqibin WHERE id = " + id); } } //存储鸡蛋饼订单信息数据 public void saveJiQiBingDingDan(DingDanBean bean) { SQLiteDatabase db = getWritableDatabase(); db.execSQL("INSERT INTO jiqidingdan(dingdanbianhao,userNmae , binName , lajiao , salajiang , fanqie, zuoliao, xiangcong, bianhao, price, shuliang, time,zhuangtai,huitui,wanzi,jidan) " + "VALUES ('" + bean.getDingdanbianhao() + "', '" + bean.getUserNmae() + "', '" + bean.getBinName() + "', '" + bean.getLajiao() + "', '" + bean.getSalajiang() + "', '" + bean.getFanqie() + "', '" + bean.getZuoliao() + "', '" + bean.getXiangcong() + "', '" + bean.getBianhao() + "', '" + bean.getPrice() + "', '" + bean.getShuliang() + "', '" + bean.getTime() + "', '" + bean.getZhuangtai() + "', '" + bean.getHuitui() + "', '" + bean.getWanzi() + "', '" + bean.getJidan() + "')"); } /** * 获取所有鸡蛋饼订单数据 * * @return */ public List getAllJiQiBingDingDan(String user) { List records = new ArrayList(); SQLiteDatabase db = getWritableDatabase(); if (db != null) { Cursor cursor=null; if (TextUtils.isEmpty(user)){ cursor = db.rawQuery("SELECT * FROM jiqidingdan", null); }else { cursor = db.rawQuery("SELECT * FROM jiqidingdan WHERE userNmae = ?", new String[]{user}); } while (cursor.moveToNext()) { DingDanBean bean = new DingDanBean(); bean.setId(cursor.getInt(cursor.getColumnIndex("id"))); bean.setDingdanbianhao(cursor.getString(cursor.getColumnIndex("dingdanbianhao"))); bean.setUserNmae(cursor.getString(cursor.getColumnIndex("userNmae"))); bean.setBinName(cursor.getString(cursor.getColumnIndex("binName"))); bean.setLajiao(cursor.getString(cursor.getColumnIndex("lajiao"))); bean.setSalajiang(cursor.getString(cursor.getColumnIndex("salajiang"))); bean.setFanqie(cursor.getString(cursor.getColumnIndex("fanqie"))); bean.setZuoliao(cursor.getString(cursor.getColumnIndex("zuoliao"))); bean.setXiangcong(cursor.getString(cursor.getColumnIndex("xiangcong"))); bean.setBianhao(cursor.getString(cursor.getColumnIndex("bianhao"))); bean.setPrice(cursor.getString(cursor.getColumnIndex("price"))); bean.setShuliang(cursor.getString(cursor.getColumnIndex("shuliang"))); bean.setTime(cursor.getString(cursor.getColumnIndex("time"))); bean.setZhuangtai(cursor.getString(cursor.getColumnIndex("zhuangtai"))); bean.setHuitui(cursor.getString(cursor.getColumnIndex("huitui"))); bean.setWanzi(cursor.getString(cursor.getColumnIndex("wanzi"))); bean.setJidan(cursor.getString(cursor.getColumnIndex("jidan"))); records.add(bean); } cursor.close(); } return records; } /** * 获取订单数据 * * @return */ public List getDingDan(String name) { List records = new ArrayList(); SQLiteDatabase db = getWritableDatabase(); if (db != null) { //查询记录 String[] selectioinArgs = {"%"+name+"%"};//注意:这里没有单引号 String sql = "SELECT * FROM jiqidingdan" + " where dingdanbianhao like ? "; Cursor cursor = db.rawQuery(sql, selectioinArgs); while (cursor.moveToNext()) { DingDanBean bean = new DingDanBean(); bean.setId(cursor.getInt(cursor.getColumnIndex("id"))); bean.setDingdanbianhao(cursor.getString(cursor.getColumnIndex("dingdanbianhao"))); bean.setUserNmae(cursor.getString(cursor.getColumnIndex("userNmae"))); bean.setBinName(cursor.getString(cursor.getColumnIndex("binName"))); bean.setLajiao(cursor.getString(cursor.getColumnIndex("lajiao"))); bean.setSalajiang(cursor.getString(cursor.getColumnIndex("salajiang"))); bean.setFanqie(cursor.getString(cursor.getColumnIndex("fanqie"))); bean.setZuoliao(cursor.getString(cursor.getColumnIndex("zuoliao"))); bean.setXiangcong(cursor.getString(cursor.getColumnIndex("xiangcong"))); bean.setBianhao(cursor.getString(cursor.getColumnIndex("bianhao"))); bean.setPrice(cursor.getString(cursor.getColumnIndex("price"))); bean.setShuliang(cursor.getString(cursor.getColumnIndex("shuliang"))); bean.setTime(cursor.getString(cursor.getColumnIndex("time"))); bean.setZhuangtai(cursor.getString(cursor.getColumnIndex("zhuangtai"))); bean.setHuitui(cursor.getString(cursor.getColumnIndex("huitui"))); bean.setWanzi(cursor.getString(cursor.getColumnIndex("wanzi"))); bean.setJidan(cursor.getString(cursor.getColumnIndex("jidan"))); records.add(bean); } cursor.close(); } return records; } /** * 删除订单 * * @param id */ public void deleteDingDan(int id) { SQLiteDatabase db = getWritableDatabase(); if (db != null) { db.execSQL("DELETE FROM jiqidingdan WHERE id = " + id); } }}
本项目当毕业设计,如果需要定制开发可加QQ:2258629201
体验APK链接:链接:https://pan.baidu.com/s/1o0qNI04n7diqh9K1ZmREqw
提取码:in0n
成品源码 链接:https://m.tb.cn/h.3i6yhV2?sm=78a5f7
联系QQ:2258629201
更多相关文章
- 【安卓面试笔记】Content Provider(五)
- Android数据绑定(DataBinding)
- Android(安卓)开发之详解 IPC 进程通信
- Android使用KeyStore对数据进行加密的示例代码
- 安卓ListView详解
- android中如何通过硬件获取H264帧?
- Android中SharedPrerence的apply和commit方法
- [置顶] 【Android】 基于Socket 的即时通信软件 YQ(源码下载)
- android 滑动相关(一) : OnScrollListener