當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
游戏数仓分析(二)SpringBoot项目对数据进行可视化展示
生活随笔
收集整理的這篇文章主要介紹了
游戏数仓分析(二)SpringBoot项目对数据进行可视化展示
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
項(xiàng)目架構(gòu):
1.新創(chuàng)建war項(xiàng)目
2.補(bǔ)全項(xiàng)目結(jié)構(gòu)文件夾
3.添加依賴Pom.xml:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.henu</groupId><artifactId>e2</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>e2 Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--web啟動(dòng)器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mybatis啟動(dòng)器--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.2.2</version></dependency><!-- pagehelper啟動(dòng)器 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.3</version></dependency><!--mysql驅(qū)動(dòng)--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version><scope>runtime</scope></dependency><!-- 阿里數(shù)據(jù)源 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.3</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></dependency><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId></dependency><!-- 熱部署 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><!-- optional=true,依賴不會(huì)往下傳遞,如果有項(xiàng)目依賴本項(xiàng)目,并且想要使用devtools,需要重新引入 --><optional>true</optional><scope>true</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><fork>true</fork><!-- 如果沒有該配置,熱部署的devtools不生效 --></configuration></plugin><!-- 自定義配置spring Boot使用的JDK版本 --><plugin><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build> </project>4.根據(jù)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行實(shí)體類的設(shè)計(jì)
N_days_stat
package com.henu.bean;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;/*** @author George* @description**/ @Data @NoArgsConstructor @AllArgsConstructor public class N_days_stat {private int _c0;private String logtime; }5.Dao層的設(shè)計(jì)
N_days_statDao
package com.henu.dao;import com.henu.bean.N_days_stat;import java.util.List;public interface N_days_statDao {List<N_days_stat> findAll(); }6.Service層
N_days_statService、N_days_statServiceImpl
package com.henu.service;import com.henu.bean.N_days_stat;import java.util.List;/*** @author George* @description**/ public interface N_days_statService {List<N_days_stat> findAll(); }package com.henu.service;import com.henu.bean.N_days_stat; import com.henu.dao.N_days_statDao; import lombok.Data; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import java.util.List;/*** @author George* @description**/@Service public class N_days_statServiceImpl implements N_days_statService {@Autowiredpublic N_days_statDao dao;@Overridepublic List<N_days_stat> findAll() {return dao.findAll();}public N_days_statDao getDao() {return dao;}public void setDao(N_days_statDao dao) {this.dao = dao;} }7.控制層
N_days_statController
package com.henu.controller;import com.henu.bean.N_days_stat; import com.henu.service.N_days_statService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List;/*** @author George* @description**/ @RestController public class N_days_statController {@Autowiredprivate N_days_statService service;@RequestMapping("/findAll")public List<N_days_stat> findAll(Model model){List<N_days_stat> all = service.findAll();System.out.println(all + "+++++++++++++");return all;}public N_days_statService getService() {return service;}public void setService(N_days_statService service) {this.service = service;} }8.啟動(dòng)類
E2Application
package com.henu;import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.Banner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;/*** Hello world!*元注解*/ @SpringBootApplication//springboot核心注解,用于標(biāo)識(shí)啟動(dòng)類 @MapperScan("com.henu.dao") //掃描DAO層接口 public class E2Application {public static void main( String[] args ){//SpringApplication.run(SellerApplication.class,args);SpringApplication application=new SpringApplication(E2Application.class);//關(guān)閉bannerapplication.setBannerMode(Banner.Mode.OFF);application.run(args);} }接下來(lái)resources中的配置文件:
1.mybatis? 的Dao層映射文件
N_days_statMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.henu.dao.N_days_statDao" ><select id="findAll" resultType="n_days_stat">select * from n_days_stat order by logtime desc limit 7</select> </mapper>2.mybatis配置文件
mybatisConfig.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><!-- 配置分頁(yè)插件 reasonable:設(shè)置合理性分頁(yè)--><!--<plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"><property name="reasonable" value="true"></property></plugin></plugins> --> </configuration>3.Springboot配置文件,application.yml、application-dev.yml
##切換環(huán)境 spring:profiles:active: dev #加載application-dev.yml文件mvc:view:prefix: /suffix: .html ##服務(wù)器配置 server:port: 9999servlet:path: /e2##logback logging:config: classpath:logback.xml##spring mvc spring:resources: #靜態(tài)資源static-locations:- classpath:/META-INF/resources/- classpath:/resources/- classpath:/static/- classpath:/public/- classpath:/img/- classpath:/js/#創(chuàng)建數(shù)據(jù)源datasource:name: druidtype: com.alibaba.druid.pool.DruidDataSourceurl: jdbc:mysql://henu1:3306/gamedatausername: rootpassword: 123driver-class-name: com.mysql.jdbc.Driver#整合mybatis mybatis:mapper-locations: classpath:mybatis/mapper/*Mapper.xmlconfig-location: classpath:mybatis/mybatisConfig.xmltype-aliases-package: com.henu.bean#pagehelper pagehelper:helperDialect: mysqlreasonable: truesupportMethodsArguments: true4.日志logback.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration><!-- %m輸出的信息,%p日志級(jí)別,%t線程名,%d日期,%c類的全名,%i索引【從數(shù)字0開始遞增】--><!-- appender是configuration的子節(jié)點(diǎn),是負(fù)責(zé)寫日志的組件。 --><!-- ConsoleAppender:把日志輸出到控制臺(tái) --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d %p (%file:%line\)- %m%n</pattern><!-- 控制臺(tái)也要使用UTF-8,不要使用GBK,否則會(huì)中文亂碼 --><charset>UTF-8</charset></encoder></appender><!-- RollingFileAppender:滾動(dòng)記錄文件,先將日志記錄到指定文件,當(dāng)符合某個(gè)條件時(shí),將日志記錄到其他文件 --><!-- 以下的大概意思是:1.先按日期存日志,日期變了,將前一天的日志文件名重命名為XXX%日期%索引,新的日志仍然是demo.logdemo.log ->2018-09-24.0.log 2018-09-24.1.logdemo.log--><!-- 2.如果日期沒有發(fā)生變化,但是當(dāng)前日志的文件大小超過1KB時(shí),對(duì)當(dāng)前日志進(jìn)行分割 重命名 --><appender name="demolog"class="ch.qos.logback.core.rolling.RollingFileAppender"><File>log/demo.log</File><!-- rollingPolicy:當(dāng)發(fā)生滾動(dòng)時(shí),決定 RollingFileAppender 的行為,涉及文件移動(dòng)和重命名。 --><!-- TimeBasedRollingPolicy: 最常用的滾動(dòng)策略,它根據(jù)時(shí)間來(lái)制定滾動(dòng)策略,既負(fù)責(zé)滾動(dòng)也負(fù)責(zé)出發(fā)滾動(dòng) --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 活動(dòng)文件的名字會(huì)根據(jù)fileNamePattern的值,每隔一段時(shí)間改變一次 --><!-- 文件名:log/demo.2018-12-05.0.log --><fileNamePattern>log/demo.%d.%i.log</fileNamePattern><!-- 每產(chǎn)生一個(gè)日志文件,該日志文件的保存期限為30天 --><maxHistory>30</maxHistory><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!-- maxFileSize:這是活動(dòng)文件的大小,默認(rèn)值是10MB,測(cè)試時(shí)可改成1KB看效果 --><maxFileSize>1KB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><!-- pattern節(jié)點(diǎn),用來(lái)設(shè)置日志的輸入格式 --><pattern>%d %p (%file:%line\)- %m%n</pattern><!-- 記錄日志的編碼:此處設(shè)置字符集 - --><charset>UTF-8</charset></encoder></appender><!-- 控制臺(tái)輸出日志級(jí)別 --><root level="info"><appender-ref ref="STDOUT"/></root><!-- 指定項(xiàng)目中某個(gè)包,當(dāng)有日志操作行為時(shí)的日志記錄級(jí)別 --><!-- com.alibaba為根包,也就是只要是發(fā)生在這個(gè)根包下面的所有日志操作行為的權(quán)限都是DEBUG --><!-- 級(jí)別依次為【從高到低】:FATAL > ERROR > WARN > INFO > DEBUG > TRACE --><!--dao--><logger name="com.henu.dao" level="info"><appender-ref ref="demolog"/></logger> </configuration>webapp中
1.web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"></web-app>2.line-simple.html頁(yè)面
<!DOCTYPE html> <html style="height: 100%"><head><meta charset="utf-8"></head><body style="height: 100%; margin: 0"><div id="container" style="height: 100%"></div><script type="text/javascript" src="js/jquery-2.1.0.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl/dist/echarts-gl.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-stat/dist/ecStat.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/extension/dataTool.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/map/js/china.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/map/js/world.js"></script><script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=xfhhaTThl11qYVrqLZii6w8qE5ggnhrY&__ec_v__=20190126"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/extension/bmap.min.js"></script><script type="text/javascript"> var dom = document.getElementById("container"); var myChart = echarts.init(dom); var app = {};var date01s = new Array() var num01s = new Array()$(function () {$.get("findAll",function (data) {for (var i = 0; i < data.length; i++){date01s[i] = data[i]._c0num01s[i] = data[i].logtime}option = null;option = {title: {text: '七天內(nèi)每日登陸人數(shù)'},xAxis: {type: 'category',//data: [num01s[0], num01s[1], num01s[2], num01s[3], num01s[4], num01s[5], num01s[6]],text: '日期'},yAxis: {type: 'value'},series: [{data: [date01s[0], date01s[1], date01s[2], date01s[3], date01s[4], date01s[5], date01s[6]],type: 'line',text: '人數(shù)'}]};if (option && typeof option === "object") {myChart.setOption(option, true);}}) })</script></body> </html>運(yùn)行啟動(dòng)類:
訪問:http://localhost:9999/e2/line-simple.html
總結(jié)
以上是生活随笔為你收集整理的游戏数仓分析(二)SpringBoot项目对数据进行可视化展示的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HOL中的四种排序,Order By、S
- 下一篇: SpringBoot如何把mysql中的