当前位置: 首页 > news >正文

php网站怎么缓存陕西城乡建设部网站

php网站怎么缓存,陕西城乡建设部网站,实例网站制作教程,wordpress 文章分页代码需求 使用GreenDao数据库进行数据的存储。 介绍 GreenDao 是一个轻量级的对象关系映射#xff08;ORM#xff09;库#xff0c;用于简化 Android 应用中的数据库操作。它提供了以下主要功能#xff1a; 简化数据库操作#xff1a;通过注解定义实体类#xff0c;Green…需求 使用GreenDao数据库进行数据的存储。 介绍 GreenDao 是一个轻量级的对象关系映射ORM库用于简化 Android 应用中的数据库操作。它提供了以下主要功能 简化数据库操作通过注解定义实体类GreenDao 自动生成 DAO数据访问对象类简化了数据库的增、删、改、查操作。 高性能GreenDao 设计目标之一是高效地执行数据库操作尤其在处理大量数据时表现出色。 自动生成代码通过编译时生成代码减少了手动编写 SQL 和数据处理逻辑的需要。 事务支持支持数据库事务确保数据操作的原子性和一致性。 灵活性可以通过自定义查询和批量操作满足复杂的数据处理需求。 小巧库体积小适合需要轻量级 ORM 的应用。 集成 在 build.gradle 文件中添加 GreenDao 依赖 implementation org.greenrobot:greendao:3.3.0配置 build.gradle 以生成 DAO 类。添加插件和配置 apply plugin: org.greenrobot.greendaogreendao {schemaVersion 1 //定义数据库的版本号用于处理数据库升级。daoPackage com.example.dao //指定生成的 DAO 类包名。targetGenDir src/main/java //指定生成的实体类包名。 }使用 创建实体类 使用 GreenDao 提供的注解定义实体类。举例 Entity public class UpdateBean{Id(autoincrement true)private Long id;private String name;// getters and setters } 创建实体类之后使用Build重新构建一下项目然后会自动生成相关文件 【DaoMaster】【DaoSession】【UpdateBeanDao】 创建一个帮助类 【UpdateOpenHelper】 public class UpdateOpenHelper extends DaoMaster.OpenHelper {public UpdateOpenHelper(Context context, String name) {super(context, name);}public UpdateOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {super(context, name, factory);}Overridepublic void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {DaoMaster.dropAllTables(wrap(db), true);}Overridepublic void onUpgrade(Database db, int oldVersion, int newVersion) {super.onUpgrade(db, oldVersion, newVersion);} }创建一个管理类【UpdateManager 】 public class UpdateManager {private Context mContext;private static UpdateManager manager new UpdateManager();private static ConcurrentHashMapString, DaoMaster masterMap new ConcurrentHashMap();private static ConcurrentHashMapString, DaoSession daoSessionMap new ConcurrentHashMap();private static ConcurrentHashMapString, UpdateOpenHelper helperMap new ConcurrentHashMap();public static UpdateManager getInstance() {return manager;}public void init(Context context) {this.mContext context;}private DaoMaster getDaoMaster(String dbName) {if (!masterMap.containsKey(dbName)) {UpdateOpenHelper openHelper helperMap.get(dbName);if (openHelper null) {UGDaoContext daoContext new UGDaoContext(mContext);openHelper new UpdateOpenHelper(daoContext, dbName, null);helperMap.put(dbName, openHelper);}DaoMaster master;try {master new DaoMaster(openHelper.getWritableDatabase());masterMap.put(dbName, master);} catch (Exception e) {e.printStackTrace();}}return masterMap.get(dbName);}public DaoSession getDaoSession(String dbName) {if (!daoSessionMap.containsKey(dbName)) {DaoMaster master getDaoMaster(dbName);if (master ! null) {DaoSession session master.newSession();daoSessionMap.put(dbName, session);}}return daoSessionMap.get(dbName);}/*** 关闭指定数据库连接** param dbName 数据库名字*/public void closeConnection(String dbName) {DaoSession session daoSessionMap.get(dbName);if (session ! null) {session.clear();daoSessionMap.remove(dbName);}DaoMaster master masterMap.get(dbName);if (master ! null) {master null;masterMap.remove(dbName);}UpdateOpenHelper helper helperMap.get(dbName);if (helper ! null) {helper.close();helperMap.remove(dbName);}}/*** 关闭所有数据库连接*/public void closeAllConnection() {// 关闭所有DaoSessionssynchronized (this) {for (String dbName : daoSessionMap.keySet()) {closeConnection(dbName); // 关闭每一个连接}// 额外步骤清理所有映射daoSessionMap.clear();masterMap.clear();helperMap.clear();}}}还有需要修改数据库的文件的存储路径GreenDao数据库默认的存储路径是在应用内部私有存储所以如果删除了应用之后数据文件也会被删除同时也不利于外部查找数据库文件。 创建【UGDaoContext】修改数据库文件地址 public class UGDaoContext extends ContextWrapper {public UGDaoContext(Context base) {super(base);}Overridepublic File getDatabasePath(String name) {String dbDir;boolean isExistSDCar Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);if (isExistSDCar) {dbDir Environment.getExternalStorageDirectory().getAbsolutePath();} else {dbDir Environment.getDataDirectory().getAbsolutePath();}String dbDirPath dbDir File.separator app_dao File.separator data_update;Log.d(TAG, 数据库的文件夹地址 dbDirPath);File dbDirFile new File(dbDirPath);if (!dbDirFile.exists()) {dbDirFile.mkdirs();}String dbNamePath dbDirPath File.separator name;File dbNameFile new File(dbNamePath);boolean isSuccess false;if (!dbNameFile.exists()) {try {isSuccess dbNameFile.createNewFile();} catch (IOException e) {e.printStackTrace();}} else {isSuccess true;}if (isSuccess) {Log.d(TAG, 数据库的文件地址 dbNamePath);return dbNameFile;} else {return super.getDatabasePath(name);}}Overridepublic SQLiteDatabase openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory) {return SQLiteDatabase.openOrCreateDatabase(getDatabasePath(name), null);}Overridepublic SQLiteDatabase openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory, DatabaseErrorHandler errorHandler) {return SQLiteDatabase.openOrCreateDatabase(getDatabasePath(name), null);} }接下里再创建一个工具类实现对数据库的操作【UpdateDaoUtil】 public class UpdateDaoUtil {private UpdateManager manager;public UpdateDaoUtil(Context context) {manager UpdateManager.getInstance();manager.init(context);}/*** 完成UpdateBean记录的插入*/public synchronized boolean insertUpdate(UpdateBean updateBean, String dbName) {boolean flag false;if (manager.getDaoSession(dbName).getUpdateBeanDao().insert(updateBean) ! -1) {flag true;}return flag;}/*** 完成UpdateBean记录的插入*/public synchronized boolean insertUpdate(UpdateBean updateBean) {boolean flag false;if (manager.getDaoSession(getCurrentDBName()).getUpdateBeanDao().insert(updateBean) ! -1) {flag true;}return flag;}/*** 完成UpdateBean列表记录的插入*/public synchronized boolean insertUpdate(ListUpdateBean list) {int frequency 0;UpdateBeanDao dao manager.getDaoSession(getCurrentDBName()).getUpdateBeanDao();for (UpdateBean updateBean : list) {if (dao.insert(updateBean) -1) {frequency;}}return frequency 0;}/*** 删除单条记录*/public synchronized boolean deleteUpdateBean(UpdateBean updateBean, String dbName) {boolean flag false;try {manager.getDaoSession(dbName).delete(updateBean);flag true;} catch (Exception e) {e.printStackTrace();}return flag;}/*** 删除单条记录*/public synchronized boolean deleteUpdateBean(UpdateBean updateBean) {boolean flag false;try {manager.getDaoSession(getCurrentDBName()).delete(updateBean);flag true;} catch (Exception e) {e.printStackTrace();}return flag;}/*** 删除所有记录*/public synchronized boolean deleteAll(String dbname) {boolean flag false;try {manager.getDaoSession(dbname).deleteAll(UpdateBean.class);flag true;} catch (Exception e) {e.printStackTrace();}return flag;}/*** 删除所有记录*/public synchronized boolean deleteAll() {boolean flag false;try {manager.getDaoSession(getCurrentDBName()).deleteAll(UpdateBean.class);flag true;} catch (Exception e) {e.printStackTrace();}return flag;}/*** 查询数据库前 number 条数据*/public synchronized ListUpdateBean queryDataNumber(int number, String dbname) {QueryBuilderUpdateBean queryBuilder manager.getDaoSession(dbname).queryBuilder(UpdateBean.class);return queryBuilder.limit(number).list();}/*** 查询数据库前 number 条数据*/public synchronized ListUpdateBean queryDataNumber(int number) {QueryBuilderUpdateBean queryBuilder manager.getDaoSession(getCurrentDBName()).queryBuilder(UpdateBean.class);return queryBuilder.limit(number).list();}/*** 删除数据库前 number 条数据*/public synchronized void deleteDataNumber(int number, String dbname) {UpdateBeanDao dao manager.getDaoSession(dbname).getUpdateBeanDao();ListUpdateBean lists dao.queryBuilder().limit(number).list();dao.deleteInTx(lists);}/*** 删除数据库前 number 条数据*/public synchronized void deleteDataNumber(int number) {UpdateBeanDao dao manager.getDaoSession(getCurrentDBName()).getUpdateBeanDao();ListUpdateBean lists dao.queryBuilder().limit(number).list();dao.deleteInTx(lists);}/*** 查询所有记录*/public synchronized ListUpdateBean queryAll(String dbName) {return manager.getDaoSession(dbName).loadAll(UpdateBean.class);}/*** 查询所有记录*/public synchronized ListUpdateBean queryAll() {return manager.getDaoSession(getCurrentDBName()).loadAll(UpdateBean.class);}/*** 使用指定名称的数据库,每次查询200条未上传的数据** param dbname 数据库表名称*/public synchronized ListUpdateBean queryListUpdate(String dbname) {QueryBuilderUpdateBean queryBuilder manager.getDaoSession(dbname).queryBuilder(UpdateBean.class);return queryBuilder.where(UpdateBeanDao.Properties.IsUpdate.eq(0)).limit(200).list();}/*** 更新是否上传状态** param list 上传数据的ID的list*/public synchronized void updateStatus(ListLong list) {DaoSession daoSession manager.getDaoSession(getCurrentDBName());UpdateBeanDao updateBeanDao daoSession.getUpdateBeanDao();try {daoSession.runInTx(() - {for (Long id : list) {UpdateBean bean updateBeanDao.load(id);if (bean ! null) {bean.setIsUpdate(1);updateBeanDao.update(bean);}}});} catch (Exception e) {e.printStackTrace();}}/*** 更新是否上传状态** param dbName 数据库表名字* param list 上传数据的ID的list*/public synchronized void updateStatus(String dbName, ListLong list) {DaoSession daoSession manager.getDaoSession(dbName);UpdateBeanDao updateBeanDao daoSession.getUpdateBeanDao();try {daoSession.runInTx(() - {for (Long id : list) {UpdateBean bean updateBeanDao.load(id);if (bean ! null) {bean.setIsUpdate(1);updateBeanDao.update(bean);}}});} catch (Exception e) {e.printStackTrace();}}/*** 使用queryBuilder进行查询未上传的数据*/public synchronized ListUpdateBean queryItemByQueryBuilder(int isUpdate) {QueryBuilderUpdateBean queryBuilder manager.getDaoSession(getCurrentDBName()).queryBuilder(UpdateBean.class);return queryBuilder.where(UpdateBeanDao.Properties.IsUpdate.eq(isUpdate)).limit(100).list();}/*** 关闭当前日期资源*/public synchronized void close() {manager.closeConnection(getCurrentDBName());}/*** 关闭特定名字的数据资源*/public synchronized void close(String dbName) {manager.closeConnection(dbName);}/*** 关闭所有连接*/public synchronized void closeAll() {manager.closeAllConnection();}/*** 数据表的名称是当天的日期** return 当天日期*/private static String getCurrentDateFormatted() {long currentTimeMillis System.currentTimeMillis();Date date new Date(currentTimeMillis);SimpleDateFormat sdf new SimpleDateFormat(yyyyMMdd, Locale.getDefault());return sdf.format(date);}/*** 获取当天数据库表的名称*/private static String getCurrentDBName() {return getCurrentDateFormatted() _db;}/*** 组装数据库名字** param dateTime 日期时间 例如 20240814*/public static String setDBName(String dateTime) {return dateTime _db;} }这样基本上一个数据库就创建了剩下就是如何使用了。 UpdateDaoUtil updateDaoUtil;updateDaoUtil new UpdateDaoUtil(this);if (updateDaoUtil ! null) {Log.i(TAG, 将List数据存入本地数据库,存入条数 updateBeanList.size());ListUpdateBean list new ArrayList(updateBeanList);boolean update updateDaoUtil.insertUpdate(list);if (update) {Log.i(TAG, 数据存入数据库正常);}}记得销毁 Overrideprotected void onDestroy() {super.onDestroy();if (updateDaoUtil ! null) {updateDaoUtil.closeAll();}} GreenDao数据库的基本使用方式就是这样了。
http://www.w-s-a.com/news/195726/

相关文章:

  • 企业网站建设实战教程微信如何注册小程序
  • 做一件代发网站百度seo服务
  • 小说网站开发 公司可以做行程的网站
  • 古交市网站建设公司apk连接wordpress
  • 网页 网 址网站区别wordpress菜单居右
  • 网站建设搭建运营一台云服务器做多个网站
  • 用php做网站用什么框架推广网站推荐
  • 如何用二级域名做网站多用户网上商城
  • 河南省建设科技网站浅谈电子商务网站建设与规划
  • 网站空间需要续费青海网站建设推广
  • 网站开发本地环境企业网站建设排名口碑
  • 做新闻的网站怎样赚钱个人网站课程设计报告
  • 网站设计样例那个网站做图片好看
  • 小型公司网站建设深圳网络营销策划有限公司
  • 国内优秀企业网站做视频网站用什么系统
  • 网站建设入门pdfwordpress网站标题
  • 专业网站的定义网站运营的概念
  • 外贸服装网站建设网页美工设计说明书
  • 郑州专业做网站公百度翻译api wordpress
  • 做网站哪里找大学的一级或二级域名
  • 没有静态ip可以做网站服务器上饶网站制作需要多少钱
  • 网站建设wangzhii做国外网站做什么内容
  • 网站建设 搞笑笑话经典 wordpress主题下载
  • 做网站要懂哪些wordpress 站点网络
  • 郑州外贸网站建设公司排名网站设计做啥好
  • 网站开发合同付款比例wordpress调用指定文章内容
  • 湖北平台网站建设哪里好辽宁建设工程信息网官网平台
  • 公司优化是什么意思?洛阳seo博客
  • 普通建站网站首页制作模板
  • 江苏城乡与住房建设厅网站wordpress 添加导航