master
董丁丁 3 years ago
commit df238b00ee

33
.gitignore vendored

@ -0,0 +1,33 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/

Binary file not shown.

@ -0,0 +1,2 @@
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar

316
mvnw vendored

@ -0,0 +1,316 @@
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /usr/local/etc/mavenrc ] ; then
. /usr/local/etc/mavenrc
fi
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`\\unset -f command; \\command -v java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
$MAVEN_DEBUG_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" \
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

188
mvnw.cmd vendored

@ -0,0 +1,188 @@
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% ^
%JVM_CONFIG_MAVEN_PROPS% ^
%MAVEN_OPTS% ^
%MAVEN_DEBUG_OPTS% ^
-classpath %WRAPPER_JAR% ^
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
%WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%"=="on" pause
if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
cmd /C exit /B %ERROR_CODE%

@ -0,0 +1,134 @@
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- <dependency>-->
<!-- <groupId>tk.mybatis</groupId>-->
<!-- <artifactId>mapper-spring-boot-starter</artifactId>-->
<!-- <version>2.1.5</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-mock</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.79</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.8</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,20 @@
package com.example.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration;
import org.springframework.scheduling.annotation.EnableScheduling;
@EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@EnableScheduling
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

@ -0,0 +1,122 @@
package com.example.demo.config;
import org.springframework.scheduling.annotation.Scheduled;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import static com.example.demo.config.constant.url1;
public class HttpTool {
private static final String nextLine = "\r\n";
private static final String twoHyphens = "--";
//分割线 随便写一个
private static final String boundary = "wk_file_2519775";
/**
* http
* @param method http
* @return httpURLConnection
* @throws IOException
*/
private static HttpURLConnection createConnection(String urlPath, String method) throws IOException {
URL url = new URL(urlPath);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod(method);
httpURLConnection.setRequestProperty("Charsert", "UTF-8");
return httpURLConnection;
}
/**
*
* @param files
*/
// @Scheduled(cron= "0 0 10 * * ?")
public static void uploadFiles(File files){
String url = url1+"/common/upload1";
uploadFile(files, url);
}
/**
*
* @param file
* @param url
*/
private static void uploadFile(File file, String url){
HttpURLConnection connection = null;
OutputStream outputStream = null;
FileInputStream inputStream = null;
try {
//获取HTTPURLConnection连接
connection = createConnection(url, "POST");
//运行写入默认为false置为true
connection.setDoOutput(true);
//禁用缓存
connection.setUseCaches(false);
//设置接收编码
connection.setRequestProperty("Accept-Charset", "utf-8");
//开启长连接可以持续传输
connection.setRequestProperty("Connection", "keep-alive");
//设置请求参数格式以及boundary分割线
connection.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
//设置接收返回值的格式
connection.setRequestProperty("Accept", "application/json");
//开启连接
connection.connect();
//获取http写入流
outputStream = new DataOutputStream(connection.getOutputStream());
//分隔符头部
String header = twoHyphens + boundary + nextLine;
//分隔符参数设置
header += "Content-Disposition: form-data;name=\"file\";" + "filename=\"" + file.getName() + "\"" + nextLine + nextLine;
//写入输出流
outputStream.write(header.getBytes());
//读取文件并写入
inputStream = new FileInputStream(file);
byte[] bytes = new byte[1024];
int length;
while ((length = inputStream.read(bytes))!= -1){
outputStream.write(bytes, 0, length);
}
//文件写入完成后加回车
outputStream.write(nextLine.getBytes());
//写入结束分隔符
String footer = nextLine + twoHyphens + boundary + twoHyphens + nextLine;
outputStream.write(footer.getBytes());
outputStream.flush();
//文件上传完成
InputStream response = connection.getInputStream();
InputStreamReader reader = new InputStreamReader(response);
while (reader.read() != -1){
//System.out.println(new String(bytes, "UTF-8"));
}
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK){
// System.out.println(connection.getResponseMessage());
}else {
System.err.println("上传失败");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (outputStream != null){
outputStream.close();
}
if (inputStream != null){
inputStream.close();
}
if (connection != null){
connection.disconnect();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,77 @@
//package com.example.demo.config;
//import com.sun.image.codec.jpeg.JPEGCodec;
//import com.sun.image.codec.jpeg.JPEGImageEncoder;
//
//import java.awt.Image;
//import java.awt.image.BufferedImage;
//import java.io.File;
//import java.io.FileOutputStream;
//import java.io.IOException;
//import java.util.Date;
//import javax.imageio.ImageIO;
//public class ImgCompress {
// private Image img;
// private int width;
// private int height;
//
//
//
// public ImgCompress(String fileName) throws IOException {
// File file = new File(fileName);// 读入文件
// if (file.exists()){
// img = ImageIO.read(file); // 构造Image对象
// width = img.getWidth(null); // 得到源图宽
// height = img.getHeight(null); // 得到源图长
// }
//
//
// }
// /**
// * 按照宽度还是高度进行压缩
// * @param w int 最大宽度
// * @param h int 最大高度
// */
// public void resizeFix(int w, int h,String oldpath,String newpath) throws IOException {
// File file = new File(oldpath);// 读入文件
// if(file.exists()){
// if (width / height > w / h) {
// resizeByWidth(w,oldpath,newpath);
// } else {
// resizeByHeight(h,oldpath,newpath);
// }
// }
//
// }
// /**
// * 以宽度为基准,等比例放缩图片
// * @param w int 新宽度
// */
// public void resizeByWidth(int w,String oldpath,String newpath) throws IOException {
// int h = (int) (height * w / width);
// resize(w, h,oldpath,newpath);
// }
// /**
// * 以高度为基准,等比例缩放图片
// * @param h int 新高度
// */
// public void resizeByHeight(int h,String oldpath,String newpath) throws IOException {
// int w = (int) (width * h / height);
// resize(w, h,oldpath,newpath);
// }
// /**
// * 强制压缩/放大图片到固定的大小
// * @param w int 新宽度
// * @param h int 新高度
// */
// public void resize(int w, int h,String oldpath,String newpath) throws IOException {
// // SCALE_SMOOTH 的缩略算法 生成缩略图片的平滑度的 优先级比速度高 生成的图片质量比较好 但速度慢
// BufferedImage image = new BufferedImage(w, h,BufferedImage.TYPE_INT_RGB );
// image.getGraphics().drawImage(img, 0, 0, w, h, null); // 绘制缩小后的图
// File destFile = new File(newpath);
// FileOutputStream out = new FileOutputStream(destFile); // 输出到文件流
// // 可以正常实现bmp、png、gif转jpg
// JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
// encoder.encode(image); // JPEG编码
// out.close();
// }
//}

@ -0,0 +1,89 @@
package com.example.demo.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap;
/**
*
* @ClassName PropertiesUtil.java
* @Description
* @author caijy
* @date 201569 10:50:38
* @version 1.0.0
*/
public class PropertiesUtil {
private Logger logger = LoggerFactory.getLogger(PropertiesUtil.class);
private ConcurrentHashMap<String, Properties> proMap;
private PropertiesUtil() {
proMap = new ConcurrentHashMap<String, Properties>();
}
private static PropertiesUtil instance = new PropertiesUtil();
/**
*
* @return
*/
public static PropertiesUtil getInstance()
{
return instance;
}
/**
* keygzt.properties
* @param key
* @return
*/
public String getSysPro(String key){
return getSysPro(key, null);
}
/**
* keygzt.properties
* @param key
* @param defaultValue
* @return
*/
public String getSysPro(String key,String defaultValue){
return getValue("spring/imageserver-"+System.getProperty("spring.profiles.active")+".properties", key, defaultValue);
}
/**
* key
* @param fileName
* @param key key
* @param defaultValue
* @return
*/
public String getValue(String fileName,String key,String defaultValue){
String val = null;
Properties properties = proMap.get(fileName);
if(properties == null){
InputStream inputStream = PropertiesUtil.class.getClassLoader().getResourceAsStream(fileName);
try {
properties = new Properties();
properties.load(new InputStreamReader(inputStream,"UTF-8"));
proMap.put(fileName, properties);
val = properties.getProperty(key,defaultValue);
} catch (IOException e) {
logger.error("getValue",e);
}finally{
try {
if (inputStream != null) {
inputStream.close();
}
} catch (IOException e1) {
logger.error(e1.toString());
}
}
}else{
val = properties.getProperty(key,defaultValue);
}
return val;
}
}

@ -0,0 +1,140 @@
package com.example.demo.config;
import com.alibaba.fastjson.JSON;
import com.example.demo.domain.Geoname;
import com.example.demo.domain.Gps;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.time.DateUtils;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static com.example.demo.config.constant.*;
import static com.example.demo.config.constant.chepai;
@Slf4j
public class ReadTxt {
public static String txt2String(File file, String filename) throws IOException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
Date date1 = new Date();
String format1 = simpleDateFormat.format(date1);
String oldpath=null;
String result=null;
Geoname g = new Geoname();
String imgname=null;
File f = new File(imgfilepath);
int row=0;
if (!f.exists()) {
// System.out.println(path + " not exists");
}
/*获取返回的row*/
String count= ToInterface.sendGet(url1+"/wujiang/getrow",null);
try{
BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件
String s = null;
while((s = br.readLine())!=null){//使用readLine方法一次读一行
row=row+1;
if(row >Integer.parseInt(count)){
Date date = new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(System.currentTimeMillis());
String[] sz = s.split("#");
g.setImgname(sz[0]);
g.setBegaintime(sz[1]);
g.setImgtime(sz[2]);
g.setNumber(Integer.valueOf(sz[3]));
g.setEventname(sz[4]);
g.setLng(sz[5]);
g.setLat(sz[6]);
g.setAngle(sz[7]);
g.setZb(sz[8]);
g.setRowa(String.valueOf(row));
g.setFilename(filename);
g.setCreate_time(format);
long date_temp = Long.valueOf(g.getBegaintime());
long date_temp1 = Long.valueOf(g.getImgtime());
String begain_time = sdf.format(new Date(date_temp * 1000L));
String begain_time1 = sdf.format(new Date(date_temp1 * 1000L));
g.setBegain_time(begain_time);
g.setImg_time(begain_time1);
result=JSON.toJSONString(g);
ToInterface.interfaceUtil(url1+"/wujiang",result,"POST");
log.info("上传data"+String.valueOf(row));
String name=sz[0];
System.out.println(name);
imgname=imgfileqz+sz[0]+imgfilehz;
oldpath=imgfilepath+ format1+"/"+imgname;
File file1 = new File(oldpath);
if (file1.exists()){
/*上传图片*/
HttpTool.uploadFiles(file1);
log.info("上传图片成功");
}
}
/*压缩图片*/
// ImgCompress imgCom = new ImgCompress(oldpath);
// imgCom.resizeFix(400, 400,oldpath,newpath);
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
return result ;
}
public static String gpsString(File file, String filename) throws IOException {
String oldpath=null;
String result=null;
Gps g = new Gps();
String imgname=null;
File f = new File(imgfilepath);
File fs=null;
int row=0;
if (!f.exists()) {
// System.out.println(path + " not exists");
}
/*获取返回的row*/
String count= ToInterface.sendGet(url1+"/wujiangGps/getrow",null);
try{
BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件
String s = null;
while((s = br.readLine())!=null){//使用readLine方法一次读一行
row=row+1;
if(row >Integer.parseInt(count)){
Date date = new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(System.currentTimeMillis());
String[] sz = s.split("#");
g.setBegaintime(sz[0]);
g.setNumber(Integer.valueOf(sz[1]));
g.setLng(sz[2]);
g.setLat(sz[3]);
g.setAngle(sz[4]);
g.setSpeed(sz[5]);
g.setCar_no(chepai);
g.setRowa(String.valueOf(row));
g.setFilename(filename);
g.setCreate_time(format);
long date_temp = Long.valueOf(g.getBegaintime());
String begain_time = sdf.format(new Date(date_temp * 1000L));
g.setBegain_time(begain_time);
result=JSON.toJSONString(g);
if( sz[2]!="0" && Float.parseFloat(sz[5])>1){
ToInterface.interfaceUtil(url1+"/wujiangGps",result,"POST");
log.info("上传gps"+String.valueOf(row));
}
}
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
return result ;
}
}

@ -0,0 +1,154 @@
package com.example.demo.config;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.Map;
//调取接口方法
public class ToInterface {
public static StringBuffer interfaceUtil(String path, Object data, String requestMethod) {
StringBuffer sb = new StringBuffer();
// DEBUGGER.info("请求数据:" + data);
try {
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 打开和url之间的连接
PrintWriter out = null;
conn.setRequestMethod(requestMethod); // 请求方式
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
//设置传到另一个接口的格式为json
conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
// 设置是否向httpUrlConnection输出设置是否从httpUrlConnection读入此外发送post请求必须设置这两个
// 最常用的Http请求无非是get和postget请求可以获取静态页面也可以把参数放在URL字串后面传递给servlet
// post与get的 不同之处在于post的参数不是放在URL字串里面而是放在http请求的正文内。
conn.setDoOutput(true);
conn.setDoInput(true);
// allowUserInteraction 如果为 true则在允许用户交互例如弹出一个验证对话框的上下文中对此 URL 进行检查。
conn.setAllowUserInteraction(false);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数即数据
out.print(data);
// 缓冲数据
out.flush();
out.close();
// 获取URLConnection对象对应的输入流
InputStream is = conn.getInputStream();
// 构造一个字符流缓存
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String str = "";
while ((str = br.readLine()) != null) {
sb.append(str);
}
// 关闭流
is.close();
// 断开连接最好写上disconnect是在底层tcp socket链接空闲时才切断。如果正在被其他线程使用就不切断。
// 固定多线程的话如果不disconnect链接会增多直到收发不出信息。写上disconnect后正常一些。
conn.disconnect();
// System.out.println("完整结束");
// DEBUGGER.info("调用app后台接口完整结束");
} catch (Exception e) {
e.printStackTrace();
}
return sb;
}
public static String sendGet(String url, Map<String, String> requestHeader) {
String result = null;
BufferedReader in = null;
try {
String urlNameString = url;
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
if (requestHeader == null) {
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
} else {
for (String key : requestHeader.keySet())
conn.setRequestProperty(key, requestHeader.get(key));
}
// 建立实际的连接
conn.connect();
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));// 防止乱码
String line;
while ((line = in.readLine()) != null) {
result = line;
// System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
if (result==null){
return String.valueOf(0);
}else
return result;
}
public static String sendGetfilename(String url, Map<String, String> requestHeader) {
String result = "";
BufferedReader in = null;
try {
String urlNameString = url;
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
if (requestHeader == null) {
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
//可设置header内的如token、密钥等功能当然可以将此作为接口正式参数进行传递
conn.addRequestProperty("appkey","123465789");
} else {
// 设置自定义的请求属性
// connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
for (String key : requestHeader.keySet())
conn.setRequestProperty(key, requestHeader.get(key));
}
// 建立实际的连接
conn.connect();
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));// 防止乱码
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}
}

@ -0,0 +1,17 @@
package com.example.demo.config;
/*公用配置*/
public class constant {
public static final String filepath="C:/sync_dir/data/events/";
public static final String fileqz="data_";
public static final String filehz=".data";
public static final String imgfilepath="C:/sync_dir/data/photos/";
public static final String imgfileqz="ori_";
public static final String imgfilehz=".jpg";
public static final String gpsqz="data_";
public static final String gpshz=".loc";
// public static final String url1=" http://39.101.188.84:9014";
public static final String chepai="EJH489";
public static final String url1=" http://localhost:9014";
}

@ -0,0 +1,30 @@
package com.example.demo.controller;
import com.example.demo.service.TableService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
@RestController
public class ChezaiController {
@Autowired(required=false)
private TableService tableService;
@RequestMapping(value = "insertTableNoBachForeach", method = RequestMethod.POST)
@ResponseBody
public void insertTableNoBachForeachController() throws Exception {
tableService.insertTableService();
}
}

@ -0,0 +1,160 @@
package com.example.demo.core;
import java.util.HashMap;
/**
*
*
* @author ruoyi
*/
public class AjaxResult extends HashMap<String, Object>
{
private static final long serialVersionUID = 1L;
/** 状态码 */
public static final String CODE_TAG = "code";
/** 返回内容 */
public static final String MSG_TAG = "msg";
/** 数据对象 */
public static final String DATA_TAG = "data";
/**
* AjaxResult 使
* @param msg
* @param data
*/
public AjaxResult(String msg, Object data)
{
}
/**
* AjaxResult
*
* @param code
* @param msg
*/
public AjaxResult(int code, String msg)
{
super.put(CODE_TAG, code);
super.put(MSG_TAG, msg);
}
/**
* AjaxResult
*
* @param code
* @param msg
* @param data
*/
public AjaxResult(int code, String msg, Object data)
{
super.put(CODE_TAG, code);
super.put(MSG_TAG, msg);
}
/**
*
*
* @return
*/
public static AjaxResult success()
{
return AjaxResult.success("操作成功");
}
/**
*
*
* @return
*/
public static AjaxResult success(Object data)
{
return AjaxResult.success("操作成功", data);
}
/**
*
*
* @param msg
* @return
*/
public static AjaxResult success(String msg)
{
return AjaxResult.success(msg, null);
}
/**
*
*
* @param msg
* @param data
* @return
*/
public static AjaxResult success(String msg, Object data)
{
return new AjaxResult( msg, data);
}
/**
*
*
* @return
*/
public static AjaxResult error()
{
return AjaxResult.error("操作失败");
}
/**
*
*
* @param msg
* @return
*/
public static AjaxResult error(String msg)
{
return AjaxResult.error(msg, null);
}
/**
*
*
* @param msg
* @param data
* @return
*/
public static AjaxResult error(String msg, Object data)
{
return new AjaxResult( msg, data);
}
/**
*
*
* @param code
* @param msg
* @return
*/
public static AjaxResult error(int code, String msg)
{
return new AjaxResult(code, msg, null);
}
/**
* 便
*
* @param key
* @param value
* @return
*/
@Override
public AjaxResult put(String key, Object value)
{
super.put(key, value);
return this;
}
}

@ -0,0 +1,164 @@
package com.example.demo.domain;
import java.math.BigInteger;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Geoname {
private String imgname;
private String begaintime;
private String imgtime;
private Integer number;
private String eventname;
private String lng;
private String lat ;
private String angle;
private String zb;
private String begain_time;
private String img_time;
private String rowa;
private String filename;
private String create_time;
public String getCreate_time() {
return create_time;
}
public void setCreate_time(String create_time) {
this.create_time = create_time;
}
public String getBegain_time() {
return begain_time;
}
public void setBegain_time(String begain_time) {
this.begain_time = begain_time;
}
public String getImg_time() {
return img_time;
}
public void setImg_time(String img_time) {
this.img_time = img_time;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public String getRowa() {
return rowa;
}
public void setRowa(String rowa) {
this.rowa = rowa;
}
public String getImgname() {
return imgname;
}
public void setImgname(String imgname) {
this.imgname = imgname;
}
public String getBegaintime() {
return begaintime;
}
public void setBegaintime(String begaintime) {
this.begaintime = begaintime;
}
public String getImgtime() {
return imgtime;
}
public void setImgtime(String imgtime) {
this.imgtime = imgtime;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
public String getEventname() {
return eventname;
}
public void setEventname(String eventname) {
this.eventname = eventname;
}
public String getLng() {
return lng;
}
public void setLng(String lng) {
this.lng = lng;
}
public String getLat() {
return lat;
}
public void setLat(String lat) {
this.lat = lat;
}
public String getAngle() {
return angle;
}
public void setAngle(String angle) {
this.angle = angle;
}
public String getZb() {
return zb;
}
public void setZb(String zb) {
this.zb = zb;
}
@Override
public String toString() {
return "Geoname{" +
"imgname=" + imgname +
", begaintime='" + begaintime + '\'' +
", imgtime='" + imgtime + '\'' +
", number='" + number + '\'' +
", eventname=" + eventname +
", lng=" + lng +
", lat=" + lat +
", angle='" + angle + '\'' +
", zb='" + zb + '\'' +
", filename='" + filename + '\'' +
", rowa='" + rowa + '\'' +
", begain_time='" + begain_time + '\'' +
", create_time='" + create_time + '\'' +
", img_time='" + img_time + '\'' +
'}';
}
}

@ -0,0 +1,118 @@
package com.example.demo.domain;
public class Gps {
private String begaintime;
private Integer number;
private String lng;
private String lat;
private String angle;
private String speed;
private String rowa;
private String filename;
private String begain_time;
private String create_time;
private String car_no;
public String getCar_no() {
return car_no;
}
public void setCar_no(String car_no) {
this.car_no = car_no;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public String getBegain_time() {
return begain_time;
}
public void setBegain_time(String begain_time) {
this.begain_time = begain_time;
}
public String getCreate_time() {
return create_time;
}
public void setCreate_time(String create_time) {
this.create_time = create_time;
}
public String getRowa() {
return rowa;
}
public void setRowa(String rowa) {
this.rowa = rowa;
}
public String getBegaintime() {
return begaintime;
}
public void setBegaintime(String begaintime) {
this.begaintime = begaintime;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
public String getLng() {
return lng;
}
public void setLng(String lng) {
this.lng = lng;
}
public String getLat() {
return lat;
}
public void setLat(String lat) {
this.lat = lat;
}
public String getAngle() {
return angle;
}
public void setAngle(String angle) {
this.angle = angle;
}
public String getSpeed() {
return speed;
}
public void setSpeed(String speed) {
this.speed = speed;
}
}

@ -0,0 +1,12 @@
package com.example.demo.service;
import java.io.IOException;
public interface TableService {
void insertTableService() throws Exception;
}

@ -0,0 +1,43 @@
package com.example.demo.service.impl;
import com.example.demo.config.HttpTool;
import com.example.demo.config.ReadTxt;
import com.example.demo.config.ToInterface;
import com.example.demo.config.constant;
import com.example.demo.domain.Geoname;
import com.example.demo.service.TableService;
import com.google.gson.Gson;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
import static com.example.demo.config.constant.url1;
@Service
public class TableServiceImpl implements TableService {
@Override
@Scheduled(fixedRate = 2000)
public void insertTableService() throws Exception {
/*读取文件所在位置*/
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
Date date = new Date();
String format = simpleDateFormat.format(date);
String filename = constant.gpsqz + format + constant.gpshz;
String filepath = constant.filepath + format+"/"+filename;
File file = new File(filepath);
if (file.exists()){
ReadTxt.gpsString(file, filename);
}
}
}

@ -0,0 +1,21 @@
server:
port: 9021
# ?????
spring:
datasource:
url: jdbc:mysql://localhost:3306/wujiangtaishi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: adminadmin
driver-class-name: com.mysql.jdbc.Driver
# MyBatis??
mybatis:
# ???????
typeAliasesPackage: com.example.demo.domain
# ??mapper?????????mapper.xml????
mapperLocations: classpath*:mapper/**/*Mapper.xml
# ?????????
configLocation: classpath:mybatis/mybatis-config.xml

@ -0,0 +1,13 @@
<?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.example.demo.mapper.TableMapper">
<insert id="insertTable" parameterType="java.util.List">
insert into wujiang_data (imgname,begaintime,imgtime,number,eventname,lng,lat,angle,zb,row) values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.imgname,jdbcType=VARCHAR},#{item.begaintime,jdbcType=VARCHAR},#{item.imgtime,jdbcType=VARCHAR},#{item.number,jdbcType=INTEGER},#{item.eventname,jdbcType=VARCHAR},#{item.lng,jdbcType=VARCHAR},#{item.lat,jdbcType=VARCHAR},#{item.row,jdbcType=VARCHAR})
</foreach>
</insert>
</mapper>

@ -0,0 +1,15 @@
<?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>
<settings>
<setting name="cacheEnabled" value="true" /> <!-- 全局映射器启用缓存 -->
<setting name="useGeneratedKeys" value="true" /> <!-- 允许 JDBC 支持自动生成主键 -->
<setting name="defaultExecutorType" value="REUSE" /> <!-- 配置默认的执行器 -->
<setting name="logImpl" value="SLF4J" /> <!-- 指定 MyBatis 所用日志的具体实现 -->
<!-- <setting name="mapUnderscoreToCamelCase" value="true"/> 驼峰式命名 -->
</settings>
</configuration>

@ -0,0 +1,13 @@
package com.example.demo;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class DemoApplicationTests {
@Test
void contextLoads() {
}
}
Loading…
Cancel
Save