;
double y = Math.round(Math.random() * 10000)/100.0D;
Place p = new Place("Place_"+x+"_"+y,new double[]{x,y});
Store s = new Store(STORE_TYPE[i%5],STORE_TYPE[i%5]+"@"+p.getName(),p);
daoHolder.storeDao.save(s);
}
System.out.println(System.currentTimeMillis() - start);
}
//测试删除
public void testDeleteAll(){
System.out.println("Before delete the number of stores is: " + daoHolder.storeDao.count());
daoHolder.storeDao.deleteAllStore();
System.out.println("After delete the number of stores is: " + daoHolder.storeDao.count());
}
//根据地理位置查找
public void testFindNearPlace(){
Place p = new Place("somewhere",new double[]{23.5,67.8});
System.out.println("Find 5 stores near "+ p.toString());
List list = daoHolder.storeDao.findNearPlace(p);
for( Store s : list)
System.out.println(s.toString());
System.out.println("Find 5 KFC stores near "+ p.toString());
list = daoHolder.storeDao.findKFCNearPlace(p);
for( Store s : list)
System.out.println(s.toString());
}
//查找所有store
public void testFindAll(){
long start = System.currentTimeMillis();
List list = daoHolder.storeDao.find().asList();
for( Store s : list)
System.out.println(s.toString());
System.out.println(System.currentTimeMillis() - start);
}
static class DaoHolder{
PlaceDao placeDao;
StoreDao storeDao;
public DaoHolder(){
try {
Mongo mongo = new Mongo("localhost",27017);
Morphia morphia = new Morphia();
Datastore ds = morphia.createDatastore(mongo, "testDB");
placeDao = new PlaceDao(ds);
storeDao = new StoreDao(ds);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
package mongo.morphia.test;
import java.util.List;
import morphia.dao.PlaceDao;
import morphia.dao.StoreDao;
import morphia.model.Place;
import morphia.model.Store;
import com.google.code.morphia.Datastore;
import com.google.code.morphia.Morphia;
import com.mongodb.Mongo;
public class StoreDaoTest {
public static String[] STORE_TYPE = {"肯德基","麦当劳","必胜客","吉野家","蒸功夫"};
public static StoreDaoTest m = new StoreDaoTest();
static DaoHolder daoHolder = new DaoHolder();
//测试保存,准备一千家店铺的数据
public void testSave(){
long start = System.currentTimeMillis();
for( int i = 0; i < 1000; i++){
double x = Math.round(Math.random() * 10000)/100.0D;
double y = Math.round(Math.random() * 10000)/100.0D;
Place p = new Place("Place_"+x+"_"+y,new double[]{x,y});
Store s = new Store(STORE_TYPE[i%5],STORE_TYPE[i%5]+"@"+p.getName(),p);
daoHolder.storeDao.save(s);
}
System.out.println(System.currentTimeMillis() - start);
}
//测试删除
public void testDeleteAll(){
Syst |