classpath:/config/mongoconfig.properties
3.代码
1.dao
//dao接口
package Dao;
import java.util.List;
import java.util.Map;
public interface BaseDao {
public List executeQuery(Map<String,Object> condition, String dbname, String collname,int number,int isDataLimit);
public void executeAdd(Map<String,Object> condition,String dbname,String collname);
public void executeUpdate(Map<String,Object> condition,String dbname,String collname);
public void executeRemove(Map<String,Object> condition,String dbname,String collname);
}
//dao实现
package Dao;
import Beans.Location;
import Utils.DumpClassUtil;
import Utils.MongoUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import org.bson.Document;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Component(“cityMapDao”)
public class CityMaoDao implements BaseDao {
@Resource(name = “mongoUtil”)
private MongoUtil mongoUtil;
public List executeQuery(Map<String,Object> condition, String dbname, String collname,int number,int isDataLimit) {
List result = new ArrayList();
MongoCollection collection = mongoUtil.getClient().getDatabase(dbname).getCollection(collname);
FindIterable documents = null;
if(isDataLimit == 1) {
if(condition != null)
documents = collection.find(new Document(condition)).limit(number);
else
documents = collection.find().limit(number);
}else{
if(condition != null)
documents = collection.find(new Document(condition));
else
documents = collection.find();
}
for(Document document:documents){
Location loc = DumpClassUtil.dumpLocation(document);
if(loc != null) {
result.add(loc);
}
}
return result;
}
public void executeAdd(Map<String,Object> condition,String dbname,String collname) {
}
public void executeUpdate(Map<String,Object> condition,String dbname,String collname) {
}
public void executeRemove(Map<String,Object> condition,String dbname,String collname) {
}
}
2.service
//service接口
package Service;
import Dao.BaseDao;
import java.util.Map;
public interface BaseService {
public Object service(Map<String,Object> map, String dbName,String colName,int Number,int isDataLimit);
}
//service实现
package Service;
import Dao.BaseDao;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import javax.annotation.Resource;
import java.util.Map;
@Component(“cityService”)
public class CityService implements BaseService {
@Resource(name = “cityMapDao”)
private BaseDao dao;
public Object service(Map<String,Object> map, String dbName,String colName,int number,int isDataLimit) {
return dao.executeQuery(map,dbName,colName,number,isDataLimit);
}
}
3.bean类
package Beans;
import java.util.Date;
public class Location {
private String detailUrl;
private String address;
private Float size;
private String orient;
private String roomNum;
public void setDetailUrl(String detailUrl) {
this.detailUrl = detailUrl;
}
public void setAddress(String address) {
this.address = address;
}
public void setSize(Float size) {
this.size = size;
}
public void setOrient(String orient) {
this.orient = orient;
}
public void setRoomNum(String rooomNum) {
this.roomNum = rooomNum;
}
public void setUnitPrice(Float unitPrice) {
this.unitPrice = unitPrice;
}
public void setSumPrice(Float sumPrice) {
this.sumPrice = sumPrice;
}
public void setLn(Double ln) {
this.ln = ln;
}
public void setLat(Double lat) {
this.lat = lat;
}
public void setTime(Date time) {
this.time = time;
}
public void setCity(String city) {
this.city = city;
}
public String getDetailUrl() {
return detailUrl;
}
public String getAddress() {
return address;
}
public Float getSize() {
return size;
}
public String getOrient() {
return orient;
}
public String getRoomNum() {
return roomNum;
}
public Float getUnitPrice() {
return unitPrice;
}
public Float getSumPrice() {
return sumPrice;
}
public Double getLn() {
return ln;
}
public Double getLat() {
return lat;
}
public Date getTime() {
return time;
}
public String getCity() {
return city;
}
public String print(){
return “address:”+this.getAddress()+
“Size:”+this.getSize()+
“orient:”+this.getOrient()+
“detailUrl:”+this.getDetailUrl()+
“unitPrice:”+this.getUnitPrice()+
“sumPrice:”+this.getSumPrice()+
“RooomNum:”+this.getRoomNum()+
“Ln:”+this.getLn()+
“Lat:”+this.getLat()+
“Time:”+this.getTime();
}
private Float unitPrice;
private Float sumPrice;
private Double ln;
private Double lat;
private Date time;
private String city;
}
4.用于封装bean的util类
package Utils;
import org.bson.Document;
import Beans.Location;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DumpClassUtil {
public static Location dumpLocation(Document doc){
Location location = new Location();
if(doc.containsKey(“address”)){
location.setAddress(doc.getString(“address”));
}
if(doc.containsKey(“city”)){
location.setCity(doc.getString(“city”));
}
if(doc.containsKey(“roomNum”)){
location.setRoomNum(doc.getString(“roomNum”));
}
if(doc.containsKey(“orient”)){
location.setOrient(doc.getString(“orient”));
}
if(doc.containsKey(“size”)){
try {
Float size = Float.parseFloat(doc.getString(“size”));
location.setSize(size);
}catch (Exception e){
return null;
}
}
if(doc.containsKey(“unitPrice”)){
try {
Float unitPrice = Float.parseFloat(doc.getString(“unitPrice”));
location.setUnitPrice(unitPrice);
}catch(Exception e){
return null;
}
}
if(doc.containsKey(“sumPrice”)){
try {
Float sumPrice = Float.parseFloat(doc.getString(“sumPrice”));
location.setSumPrice(sumPrice);
}catch(Exception e){
return null;
}
}
if(doc.containsKey(“ln”)){
Double ln = doc.getDouble(“ln”);
location.setLn(ln);
}
if(doc.containsKey(“lat”)){
Double lat = doc.getDouble(“lat”);
location.setLat(lat);
}
if(doc.containsKey(“time”)){
Double dateDouble = doc.getDouble(“time”);
SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
try{
String dateString=format.format(dateDouble);
Date date = format.parse(dateString);
location.setTime(date);
}catch (ParseException e){
e.printStackTrace();
location.setTime(null);
}
}
return location;
}
}
5.用于获得数据库连接的util类
package Utils;
import com.mongodb.MongoClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component(“mongoUtil”)
public class MongoUtil {
private static MongoClient client;
@Value(“${ip}”)
private String IP;
@Value(“${port}”)
private String PORT;
public MongoClient getClient(){
if (this.client == null) {
this.client = new MongoClient(this.IP, Integer.parseInt(this.PORT));
}
return client;
}
public void closeClient(){
this.client.close();
this.client = null;
}
}
action
//action最初的父类
package Action;
import Service.BaseService;
import com.alibaba.fastjson.JSON;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class BaseAction {
protected BaseService service;
protected String dbName;
protected String colName;
@ResponseBody
public String datas(HttpServletRequest request, HttpServletResponse response){
String city = (String)request.getParameter(“city”);
Integer number = Integer.parseInt((String)request.getParameter(“number”));
int isdatalimit = Integer.parseInt((String)request.getParameter(“isDataLimit”));
Map<String,Object> query = new TreeMap<String,Object>();
if(city != null) {
query.put(“city”, city);
}else{
query = null;
}
List list = (List)this.service.service(query,this.dbName,this.colName,number,isdatalimit);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。
还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
4545)]
[外链图片转存中…(img-cniPTjrF-1713613014545)]
[外链图片转存中…(img-MOsAZzBz-1713613014546)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。
[外链图片转存中…(img-rqkTBYVv-1713613014546)]
还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。
[外链图片转存中…(img-3qMhvL2x-1713613014546)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!