大佬教程收集整理的这篇文章主要介绍了android – Google App Engine – 太多数据存储读取操作,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public class The_Big_Bang_Theory_Quiz_HighscoreserverServlet extends httpServlet { public void doGet(httpServletrequest req,httpServletResponse resp) throws IOException { String game = req.getParameter("game"); String name = req.getParameter("name"); String pointsStr = req.getParameter("points"); String behaviorStr = req.getParameter("behavior"); int behavior = 0; // 0 = upload,1 = download if (behaviorStr != null) { try { behavior = Integer.parseInt(behaviorStr); } catch (numberFormatException E) { behavior = 0; } } if (behavior == 0) { int points = 0; if (pointsStr != null) { try { points = Integer.parseInt(pointsStr); } catch (numberFormatException E) { points = 0; } } if (points > 0 && name != null) { addHighscore(game,name,points); } } else { String maxStr = req.getParameter("max"); int max = 1000; if (maxStr != null) { try { max = Integer.parseInt(maxStr); } catch (numberFormatException E) { max = 1000; } } returnHighscores(resp,game,maX); } } private void returnHighscores(httpServletResponse resp,String game,int maX) { Datastoreservice datastore = DatastoreserviceFactory.getDatastoreservice(); Key gameKey = KeyFactory.createKey("game",gamE); Query query = new Query("highscore",gameKey); query.addSort("points",Query.sortDirection.DESCENDING); List<Entity> highscores = datastore.prepare(query).asList(FetchOptions.builder.withLimit(maX)); for(Entity e : highscores) { try { resp.getWriter().println(e.getProperty("name") + ";" +e.getProperty("points")); } catch (IOException exC) { exc.printStackTrace(); } } } private void addHighscore(String game,String name,int points) { Datastoreservice datastore = DatastoreserviceFactory.getDatastoreservice(); Key gameKey = KeyFactory.createKey("game",gamE); Entity highscore = new Entity("highscore",gameKey); highscore.setProperty("name",@R_489_8313@; highscore.setProperty("points",points); datastore.put(highscore); } }
一些代码:
创建地图:
try { cache = CacheManager.geTinstance().getCacheFactory().createCache( new ConcurrentHashMap<String,Category>()); } catch (CacheException E) { Logger .getLogger(TipsDAO.class.getName()) .severe( "unable to cretate cache using an internal ConcurrentHashMap"); cache = new ConcurrentHashMap<String,Category>(); }
对于每个阅读弹出,您首先检查地图,如果您发现我返回,如果您没有找到它,您从数据库中读取并在返回之前将其放入地图中.
if (cache.containsKey(cat)) { return (Category) cache.get(cat); } try { Query query = entitymanager .createQuery("SELECT FROM Category WHERE name = ?1"); query.setParameter(1,cat); Category temp = (Category) query.getSingleResult(); cache.put(cat,temp); return temp; } catch (Exception E) { LOG.severe(e.getmessage()); return null; }
对于DB的每个写操作,您也可以写入Map
cache.put(cat.getName(),cat);
以上是大佬教程为你收集整理的android – Google App Engine – 太多数据存储读取操作全部内容,希望文章能够帮你解决android – Google App Engine – 太多数据存储读取操作所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。