项目实战一 - 安卓数据库的设计(二 settings表 ,增,更新,查类)
2015-08-27 00:04
323 查看
说明:
1. settings表,元素有:ip,name,path,pathIndex,ipSettingMode,五个元素,所以,这里会抽象出一个类,
叫DataBaseSettings类,主要方便内存数据操作。最后,加入数据库,都是以对象操作的。
2. DBManager类,核心操作 - 增,更新,查操作,需要注意的是,这里面的对象 private SQLiteDatabase db,
是没有关闭的,因为上一章节用的单例,所以这里,注意,不能close。针对这一点,本人还有疑问,只是当时为了解决报错,临时处理的。
具体原理还没有查清楚。
3. 添加数据库的时候,添加了事务操作。
DataBaseSettings类
DBManager 类 -- 下面的1,代表的唯一性。我这里一台终端,只有一份服务器的相关信息设置。
1. settings表,元素有:ip,name,path,pathIndex,ipSettingMode,五个元素,所以,这里会抽象出一个类,
叫DataBaseSettings类,主要方便内存数据操作。最后,加入数据库,都是以对象操作的。
2. DBManager类,核心操作 - 增,更新,查操作,需要注意的是,这里面的对象 private SQLiteDatabase db,
是没有关闭的,因为上一章节用的单例,所以这里,注意,不能close。针对这一点,本人还有疑问,只是当时为了解决报错,临时处理的。
具体原理还没有查清楚。
3. 添加数据库的时候,添加了事务操作。
DataBaseSettings类
public class DataBaseSettings { private String mIp = ""; private String mName = "" ; private int mPathIndex = 0 ; private String mPath = ""; private String mipSettingMode = "" ; public String getIp() { return mIp; } public void setIp(String ip) { mIp = ip; } public String getName() { return mName; } public void setName(String name) { mName = name; } public String getPath() { return mPath; } public void setPath(String path) { mPath = path; } public int getPathIndex() { return mPathIndex; } public void setPathIndex(int pathIndex) { mPathIndex = pathIndex; } public String getipSettingMode() { return mipSettingMode; } public void setipSettingMode(String ipSettingMode) { mipSettingMode = ipSettingMode; } }
DBManager 类 -- 下面的1,代表的唯一性。我这里一台终端,只有一份服务器的相关信息设置。
public class DBManager { private String TAG = "DBManager"; private SQLiteDatabase db; public DBManager(Context context) {//得到 操作对象 synchronized(this){ db = SqliteProcess.getInstance(context);//单例中得到数据库操作对象 } } /** * add settings - 添加数据 * @param settings */ public synchronized void addSettings(DataBaseSettings dbstru) { db.beginTransaction(); //开始事务 try { db.execSQL("INSERT INTO settings VALUES(1, ?, ?, ?, ?, ?)", new Object[]{dbstru.getIp(),dbstru.getName(),dbstru.getPath(),dbstru.getPathIndex(),dbstru.getipSettingMode()}); db.setTransactionSuccessful(); //设置事务成功完成 } finally { db.endTransaction(); //结束事务 } } /** * update ip - 更新IP * @param DataBaseStruct */ public synchronized void updateIp(DataBaseSettings dbstru) { ContentValues cv = new ContentValues(); cv.put("ip", dbstru.getIp()); db.update("settings", cv, "_id = ?", new String[]{"1"}); } /** * update name - 更新设备名字 * @param DataBaseStruct */ public synchronized void updateName(DataBaseSettings dbstru) { ContentValues cv = new ContentValues(); cv.put("name", dbstru.getName()); db.update("settings", cv, "_id = ?", new String[]{"1"}); } /** * update path - 跟新路径 * @param DataBaseStruct */ public synchronized void updatePath(DataBaseSettings dbstru) { ContentValues cv = new ContentValues(); cv.put("path", dbstru.getPath()); db.update("settings", cv, "_id = ?", new String[]{"1"}); } /** * update pathIndex - 更新路径下标 * @param DataBaseStruct */ public synchronized void updatePathIndex(DataBaseSettings dbstru) { ContentValues cv = new ContentValues(); cv.put("pathIndex", dbstru.getPathIndex()); db.update("settings", cv, "_id = ?", new String[]{"1"}); } /** * update ipSettingMode - 更新IP设置方式 * @param DataBaseStruct */ public synchronized void updateipSettingMode(DataBaseSettings dbstru) { ContentValues cv = new ContentValues(); cv.put("ipSettingMode", dbstru.getipSettingMode()); db.update("settings", cv, "_id = ?", new String[]{"1"}); } /** * update all - 更新所有数据 * @param DataBaseStruct */ public synchronized void updateAll(DataBaseSettings dbstru) { updateIp(dbstru); updateName(dbstru); updatePathIndex(dbstru); updatePath(dbstru); updateipSettingMode(dbstru); } /** * query DataBaseStruct, return DataBaseStruct - 查询 * @return DataBaseStruct */ public synchronized DataBaseSettings queryTheCursor() { Cursor c = db.rawQuery("SELECT * FROM settings", null); if(c.moveToFirst() == false){ c.close(); return null; } DataBaseSettings stru = new DataBaseSettings(); stru.setIp(c.getString(c.getColumnIndex("ip"))); stru.setName(c.getString(c.getColumnIndex("name"))); stru.setPath(c.getString(c.getColumnIndex("path"))); stru.setPathIndex(c.getInt(c.getColumnIndex("pathIndex"))); stru.setipSettingMode(c.getString(c.getColumnIndex("ipSettingMode"))); c.close(); return stru; } /** * close database - 这里面没有关闭喔 !!! */ public synchronized void closeDB() { //db.close(); ---- 这里面没有关闭喔 !!! } }
相关文章推荐
- 调试C访问redis的代码
- java连接Oracle数据库的示例代码
- PostgreSQL事务特性之ROLLBACK
- PostgreSQL事务特性之嵌套事务
- SQL总结(五)存储过程
- mysql命令语句来去除掉字段中空格字符的方法
- 关系型数据库sqlite之图书管理系统
- postgresql 数据库迁移时间
- redis综合mark
- mysql的交集与差集
- MySQL性能优化的最佳20+条经验
- Oracle exp,imp
- [转] hibernate Mysql 自增长 注解配置,表无关联的注解方式关联查询
- SQL优化方法
- 《高性能MySQL》读书笔记(上)
- 常用SQL脚本操作
- MySQL字符集的设置
- SQL基础总结
- 项目实战一 - 安卓数据库的设计(一 创建类)
- oracle group by的扩展