    function 野狗数据库(name,event1,event2,event3,event4,event5,event6){  
	//event1:添加数据完毕;event2:修改数据完毕;event3:删除数据完毕;event4:清空数据完毕;event5:查询数据完毕;event6:连接状态改变
        //name表示组件在被创建时的名称，event表示组件拥有的事件
        //如果组件有多个事件，可以在后面继续填写这些事件名称
        //例如：function 野狗数据库(name,event1,event2,event3){
        
        //组件内部属性，仅供组件内部使用：
        this.名称 = name;
		this.数据库实例 = null;
		
		//内部功能函数
		function 引入JS(js路径){
			var JS = document.createElement("script");
        	JS.src = js路径;
        	JS.type = "text/javascript";
			document.getElementsByTagName("body").item(0).appendChild(JS);
		}
		
		//引入数据库所需的js库
		引入JS("https://cdn.wilddog.com/sdk/js/2.4.3/wilddog.js");
        
        //组件命令：
        this.连接数据库 = function (应用ID,数据库名称){			
			var config = {
				authDomain: 应用ID + ".wilddog.com",
  				syncURL: "https://" + 应用ID + ".wilddogio.com" 
			};
			wilddog.initializeApp(config);
			this.数据库实例 = wilddog.sync().ref("/" + 数据库名称);//连接到野狗云端数据库,创建一个数据库操作实例	
			if(this.数据库实例!=null){			
				return true;
			}else{
				return false;
			}		
        }  

        //组件命令：
        this.监听连接状态 = function (){
			var connectedRef = wilddog.sync().ref("/.info/connected");		
			connectedRef.on("value", function(snap) {
  				if (snap.val() === true) {
    				//alert("connected");
        			if(event6!=null){
						event6(true);//触发连接状态改变事件    	
        			}					
  				} else {
    				//alert("not connected");
        			if(event6!=null){
						event6(false);//触发连接状态改变事件  
        			}					
  				}
			});	
        }
		
        //组件命令：
        this.添加数据 = function (数据内容){
			if(this.数据库实例==null){
        		if(event1!=null){
					event1(false,"未连接到数据库");//触发添加数据完毕事件    	
        		}			
		   		return;
			}
			this.数据库实例.push(数据内容, function(error) {//添加一条数据
    			if (error == null){
        			if(event1!=null){
						event1(true,"添加成功");//触发添加数据完毕事件    	
        			}        			
    			}else{
        			if(event1!=null){
						event1(false,error);//触发添加数据完毕事件    	
        			} 				
				}
			});	   
        }       

        //组件命令：
        this.修改数据 = function (索引名称,数据内容){
			if(this.数据库实例==null){
        		if(event2!=null){
					event2(false,"未连接到数据库");//触发修改数据完毕事件    	
        		}			
		   		return;
			}
			this.数据库实例.child(索引名称).update(数据内容, function(error) {//修改数据
    			if (error == null){
        			if(event2!=null){
						event2(true,"修改成功");//触发修改数据完毕事件    	
        			}        			
    			}else{
        			if(event2!=null){
						event2(false,error);//触发修改数据完毕事件    	
        			} 				
				}
			});	   
        } 

        //组件命令：
        this.删除数据 = function (索引名称){
			if(this.数据库实例==null){
        		if(event3!=null){
					event3(false,"未连接到数据库");//触发删除数据完毕事件    	
        		}	
		   		return;
			}
			this.数据库实例.child(索引名称).remove(function(error) {//删除数据
    			if (error == null){
        			if(event3!=null){
						event3(true,"删除成功");//触发删除数据完毕事件    	
        			}        			
    			}else{
        			if(event3!=null){
						event3(false,error);//触发删除数据完毕事件    	
        			} 				
				}
			});	   
        } 

        //组件命令：
        this.清空数据 = function (){
			if(this.数据库实例==null){
        		if(event4!=null){
					event4(false,"未连接到数据库");//触发清空数据完毕事件    	
        		}
		   		return;
			}
			this.数据库实例.set(null, function(error) {//将数据设置为空
    			if (error == null){
        			if(event4!=null){
						event4(true,"清空成功");//触发清空数据完毕事件    	
        			}
    			}else{
        			if(event4!=null){
						event4(false,error);//触发清空数据完毕事件    	
        			}
				}
			});	   
        } 

        //组件命令：
        this.查询数据_全部 = function (){
			if(this.数据库实例==null){
        		if(event5!=null){
					event5(false,null);//触发查询数据完毕事件    	
        		}
		   		return;
			}
			this.数据库实例.once("value", function(snapshot) {//查询全部数据
				if(event5!=null){
					var result = snapshot.val();
					event5(true,result);//触发查询数据完毕事件 
					//alert(JSON.stringify(result));
					/*mui.each(result, function(key, elem) {
						alert(key+"\n"+elem.name+"\n"+elem.sex+"\n"+elem.age);
					})*/
				}   	
			});	   
        }

        //组件命令：
        this.查询数据_数量 = function (key,num){
			if(this.数据库实例==null){
        		if(event5!=null){
					event5(false,null);//触发查询数据完毕事件    	
        		}
		   		return;
			}
			this.数据库实例.startAt(null, key)
							.limitToFirst(num)
							.once("value", function(snapshot) {//查询从指定key索引名称开始的num条数据
								if(event5!=null){
									var result = snapshot.val();
									event5(true,result);//触发查询数据完毕事件 
							}   	
			});	   
        }

        //组件命令：
        this.查询数据_范围 = function (child,a,b){
			if(this.数据库实例==null){
        		if(event5!=null){
					event5(false,null);//触发查询数据完毕事件    	
        		}
		   		return;
			}
			this.数据库实例.orderByChild(child)
							.startAt(a)
							.endAt(b)
							.once("value", function(snapshot) {//查询指定字段的值从a到b的范围内的数据
								if(event5!=null){
									var result = snapshot.val();
									event5(true,result);//触发查询数据完毕事件 
							}   	
			});	   
        }

        //组件命令：
        this.查询数据_精确 = function (child,value){
			if(this.数据库实例==null){
        		if(event5!=null){
					event5(false,null);//触发查询数据完毕事件    	
        		}
		   		return;
			}
			this.数据库实例.orderByChild(child)
							.equalTo(value)
							.once("value", function(snapshot) {//查询指定字段的值为value的数据
								if(event5!=null){
									var result = snapshot.val();
									event5(true,result);//触发查询数据完毕事件 
							}   	
			});	   
        }

    }

	
	