凡科网做网站怎样,东莞寮步汽车城,网站建设毕业答辩ppt模板下载,山西省住房与城乡建设部网站mongodb web当今时代是数据以非常大的速度增长的时代。 数据存储不是问题#xff0c;是的#xff0c;但是它的结构化和存储方式可能会增加或减少所需数据块的查找时间。 不断增长的非结构化数据的用例 脸书#xff1a; 活跃用户达7.5亿#xff0c;互联网用户中有三分之一… mongodb web 当今时代是数据以非常大的速度增长的时代。 数据存储不是问题是的但是它的结构化和存储方式可能会增加或减少所需数据块的查找时间。 不断增长的非结构化数据的用例 脸书 活跃用户达7.5亿互联网用户中有三分之一拥有Facebook帐户 每月共享的内容超过300亿条Web链接新闻报道博客文章便笺相册等。 容纳30PB数据进行分析每天增加12 TB压缩数据 推特 2亿用户每日2亿条推文 每天有16亿个搜索查询 每天生成7 TB数据用于分析 在这样的规模下传统的数据存储技术和分析工具不起作用 当前方案要求需要NoSQL数据库例如Apache CassandraMongo DB来处理不断增长的非结构化数据。 NoSQL数据库提供比传统RDBMS宽松的一致性模型用于存储和检索数据。 NoSQL数据库将数据存储为高度优化的键值对这导致简单的检索和附加操作从而在低延迟和高吞吐量方面提高了性能。 NoSQL数据库在开发和维护大数据和实时Web应用程序的行业中起着重要作用。 Mongo DB和Web应用程序的用例 让我们想象一下我们想在后端使用JSF2.0和Mongo DB创建一个汽车注册门户。 将有两个功能 汽车登记 查看已注册汽车的报告 图1描述了要进行的项目的流程。 假设 Mongo DB已安装并作为服务运行 Eclipse靛蓝或更高版本 Tomcat 7.0或更高版本 存在必需的jar文件JSF2.0 jars jsf-api.jarjsf-implmongo-java-driver-2.10.1.jar或任何合适的版本 应用程序具有三个页面即Home.xhtmlAddCar.xhtmlReport.xhtml。 Home.xhtml的实现如下 Home.xhtml !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
html xmlnshttp://www.w3.org/1999/xhtmlxmlns:fhttp://java.sun.com/jsf/corexmlns:hhttp://java.sun.com/jsf/htmlxmlns:jhttp://java.sun.com/jsp/jstl/core
h:headmeta http-equivcontent-type contenttext/html; charsetutf-8 //h:headh:bodyf:view
h:formcenter
h2 MSD Car Portal/h2h4h:outputLink valueAddCar.xhtmlAdd Car/h:outputLinkbr/br/
h:commandLink action#{carBean.getCarDetails} See Registered Cars/h:commandLink/h4/center/h:form
/f:view/h:body
/html 单击“ 添加汽车”链接后 将加载AddCar.xhtml并执行以下代码行。 AddCar.xhtml !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
html xmlnshttp://www.w3.org/1999/xhtmlxmlns:fhttp://java.sun.com/jsf/corexmlns:hhttp://java.sun.com/jsf/htmlxmlns:jhttp://java.sun.com/jsp/jstl/core
h:headmeta http-equivcontent-type contenttext/html; charsetutf-8 //h:headh:bodyf:view
h:formcenterh2MSD Car Portal/h2
h3Add a Car/h3h:panelGrid border2 columns2h:outputText valueCarName/h:outputText
h:inputText value#{carBean.carTO.carName}/h:inputTexth:outputText valueCompany/h:outputText
h:inputText value#{carBean.carTO.company}/h:inputTexth:outputText valueModel/h:outputText
h:inputText value#{carBean.carTO.model}
f:convertDateTime patterndd-MMM-yyyy/f:convertDateTime
/h:inputTexth:outputText valueCC/h:outputText
h:inputText value#{carBean.carTO.cc}/h:inputTexth:outputText valuePrice/h:outputText
h:inputText value#{carBean.carTO.price}/h:inputText/h:panelGridh:commandButton action#{carBean.addCar} valueAdd Car/h:commandButtonbr/h:outputText value#{carBean.message}/h:outputTextbr/h:outputLink valueHome.xhtmlHome/h:outputLink/center/h:form
/f:view/h:body
/html 点击“ 添加汽车”按钮后将调用CarBean 后备bean的动作处理程序并在后备Bean 中将CarTO Car Transfer Object发送到CarService的insertData函数此处将CarTO值的值插入文档中并将文档添加到集合中。 并单击Home Home.xhtml。 以下清单显示了CarBean的代码。 CarBean.java package mongo.db.bean;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import mongo.db.service.CarService;
import mongo.db.to.CarTO;
ManagedBean
public class CarBean {private ListCarTO list new ArrayListCarTO();private String message;private CarTO carTO new CarTO();/**Action handler to save the data in the collection*/public String addCar(){try {/**Inserting the data to the Service class to insert it intoMongo DB*/message new CarService().insertData(testdb,MyNewJAVATableCollection3,carTO);/**Message property is shown on the Page to show successmessage on the page*/} catch (UnknownHostException e) {message e.getMessage();}return samePage;}/**Action handler to get the data from the collection*/public String getCarDetails(){try {/**Reading the data From the Service class which further readthe data from the Mongo DB */list new CarService().findData(testdb,MyNewJAVATableCollection3);if(list.size()0){messageNo records Exist;}} catch (UnknownHostException e) {message e.getMessage();}return success;}
/*Getters and setters to be coded*/
} 服务类的代码如下 CarService.java package mongo.db.service;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import mongo.db.to.CarTO;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;public class CarService {/**Utility to Get the Connection from the database*/
public static DBCollection getConnection(String dbName, String collectionName)throws UnknownHostException {/** Connecting to MongoDB */MongoClient mongo new MongoClient(localhost, 27017);/**Gets database, incase if the database is not existingMongoDB Creates it for you*/DB db mongo.getDB(dbName);/**Gets collection / table from database specified ifcollection doesnt exists, MongoDB will create it foryou*/DBCollection table db.getCollection(collectionName);return table;}/**function to insert the data to the database */
public String insertData(String dbName, String collectionName, CarTO carTO) throws UnknownHostException {/**Connecting to MongoDB*/
DBCollection table CarService.getConnection(dbName, collectionName);/**creating a document to store as key and value*/BasicDBObject document new BasicDBObject();document.put(carName, carTO.getCarName());document.put(company, carTO.getCompany());document.put(model, carTO.getModel());document.put(cc, carTO.getCc());document.put(Price, carTO.getPrice());/** inserting to the document to collection or table*/table.insert(document);return Car added successfully with the record number :table.count();
}/**function to get Details from the database*/
public ListCarTO findData(String dbName, String collectionName) throws UnknownHostException {/**Connecting to database*/
DBCollection table CarService.getConnection(dbName, collectionName);/**getting results from the database*/
DBCursor cursor table.find();
ListCarTOlist new ArrayListCarTO();/**iterating over the documents got from the database*/
while (cursor.hasNext()) {DBObject obj cursor.next();/**documentToMapUtility is coded to convert the document received from database to key value pairs and put it inside a map*/
Map mapCarService.documentToMapUtility(obj.toString());/**Map having values is iterated using entry set and CarTO is populated and CarTO is added in the ListCarTO and this list returned*//**Getting the Entery Set from the map */
SetEntryString,String set map.entrySet();/**Getting the Iterator to iterate the entry Set*/
IteratorEntryString,String itr set.iterator();CarTO carTO new CarTO();/**loop to put ever Key value pair to CarTO object*/ while(itr.hasNext()){EntryString, String entry itr.next();String keyentry.getKey();/**Removing the unwanted from the keys*/key CarService.subStringUtility(key);String valueentry.getValue();if(key.equalsIgnoreCase(carName)){carTO.setCarName(value.substring(2,value.length()-2));}else if(key.equalsIgnoreCase(company)){carTO.setCompany(value.substring(2,value.length()-2));}else if(key.equalsIgnoreCase(model)){String date[]value.split(-);int yearInteger.parseInt(date[0].substring(2));int monthInteger.parseInt(date[1]);int datemonInteger.parseInt(date[2].substring(0, date.length-1));Calendar c Calendar.getInstance();c.set(Calendar.YEAR, year);c.set(Calendar.MONTH, month);c.set(Calendar.DATE, datemon);carTO.setModel(c.getTime());}else if(key.equalsIgnoreCase(cc)){carTO.setCc(Integer.parseInt(value.trim()));}else if(key.equalsIgnoreCase(Price)){carTO.setPrice(Double.parseDouble(value.trim()));}} /**inner While closed*/list.add(carTO);
} /**while iterating over the cursor records closed here*/return list;
}/**Utility to remove un wanted contents*/public static String subStringUtility (String s){return s.substring(2,s.length()-2);}/**Utility to convert the document to map*/public static MapString,String documentToMapUtility (String s){s s.substring(1,s.length()-1);String sArr[] s.split(,);MapString,String map new LinkedHashMapString,String();for(int i1;isArr.length;i){if(!sArr[i].contains($date)){String keyValue[] sArr[i].split(:);map.put(keyValue[0],keyValue[1]);System.out.println(keyValue[0],keyValue[1]);}else{String keyValue[] sArr[i].split(:);map.put(keyValue[0],keyValue[2]);}}return map;}} 以下清单显示了传输对象类CarTO的内容 CarTO.java package mongo.db.to;
import java.util.Date;
public class CarTO {private String carName;private String company;private Integer cc;private Double price;private Date model;/*Getters and Setters to be coded*/
} 在单击主页上的“查看注册的汽车”链接时因为它是命令链接所以将执行CarBean的动作处理程序getCarDetails并在方法findData的帮助下从CarService类获取详细信息请参阅动作处理程序getCarDetails的CarBean代码。 下面的清单表示Report.xhtml的代码。 Report.xhtml.java !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
html xmlnshttp://www.w3.org/1999/xhtmlxmlns:fhttp://java.sun.com/jsf/corexmlns:hhttp://java.sun.com/jsf/htmlxmlns:jhttp://java.sun.com/jsp/jstl/core
h:headmeta http-equivcontent-type contenttext/html; charsetutf-8 //h:headh:bodyf:view
h:formcenter
h2MSD Car Portal/h2
h3Car Details/h3h:dataTable value#{carBean.list} varitem border2 rendered#{not empty carBean.list}h:column
f:facet nameheader
h:outputText valueCarName/h:outputText
/f:facet
h:outputText value#{item.carName}/h:outputText
/h:columnh:column
f:facet nameheader
h:outputText valueCompany/h:outputText
/f:facet
h:outputText value#{item.company}/h:outputText
/h:columnh:column
f:facet nameheader
h:outputText valueModel/h:outputText
/f:facet
h:outputText value#{item.model.time}
f:convertDateTime patterndd-MMM-yyyy/f:convertDateTime
/h:outputText
/h:columnh:column
f:facet nameheader
h:outputText valueCC/h:outputText
/f:facet
h:outputText value#{item.cc}/h:outputText
/h:columnh:column
f:facet nameheader
h:outputText valuePrice/h:outputText
/f:facet
h:outputText value#{item.price}/h:outputText
/h:column/h:dataTablebr/h:outputText value#{carBean.message}/h:outputTextbr/h:outputLink valueHome.xhtmlHome/h:outputLink
/center/h:form
/f:view/h:body
/html结论 从给定的示例中可以很明显地看出MongoDb可以与现有的Web框架集成并且可以用于制作可以轻松处理大数据问题的Web应用程序。 参考 http://www.rabidgremlin.com/data20/ http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/ http://docs.oracle.com/javaee/6/tutorial/doc/bnaph.html 翻译自: https://www.javacodegeeks.com/2013/09/mongodb-and-web-applications.htmlmongodb web