基于大数据的房价分析--4

本文主要介绍了SpringBoot项目中,如何通过BaseDao和BaseService接口实现对MongoDB数据库的CRUD操作,包括使用MongoUtil获取数据库连接,以及Dao中封装的executeQuery方法进行数据查询,展示了实际的代码示例和Bean类的定义。
摘要由CSDN通过智能技术生成

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开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏

还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。

新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
4545)]

[外链图片转存中…(img-cniPTjrF-1713613014545)]

[外链图片转存中…(img-MOsAZzBz-1713613014546)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

[外链图片转存中…(img-rqkTBYVv-1713613014546)]

还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。

[外链图片转存中…(img-3qMhvL2x-1713613014546)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

房价数据分析是基于收集的大量房价数据而进行的一项数据分析任务。这些数据可以包括房屋的售价、租金、面积、地理位置和其他相关信息。通过对这些数据进行分析,可以洞察到房价的变化趋势、影响房价的因素、房价的地域差异等信息。 以下是基于大数据房价数据分析的几个方面: 1. 房价趋势分析:通过收集历史数据,进行时间序列分析,可以得到房价的趋势变化,例如长期上涨或下跌,或者周期性的波动。分析这些趋势,可以帮助人们预测未来的房价走势。 2. 地域差异分析房价往往会受到地理位置因素的影响。通过对不同地区的房价数据进行比较分析,可以发现不同地区之间的差异和特征。例如,城市中心的房价往往比郊区高,而高档住宅区的房价也往往高于普通住宅区。 3. 影响因素分析:除了地理位置因素外,房价还会受到其他因素的影响,例如经济状况、政策变化、人口流动等。通过对这些因素的分析,可以找出对房价影响最大的因素,从而帮助人们做出更好的投资决策。 4. 预测模型建立:通过对历史数据进行分析,可以建立预测模型,用于预测未来的房价走势。这些模型可以基于统计学方法、机器学习方法等,以及考虑多种因素的复合模型。 综上所述,基于大数据房价数据分析可以为房地产市场和投资者提供有价值的信息和指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值