update springbootDemo
This commit is contained in:
parent
0dbef3bc75
commit
e31f80ed83
|
@ -63,7 +63,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.taosdata.jdbc</groupId>
|
<groupId>com.taosdata.jdbc</groupId>
|
||||||
<artifactId>taos-jdbcdriver</artifactId>
|
<artifactId>taos-jdbcdriver</artifactId>
|
||||||
<version>2.0.2</version>
|
<version>2.0.4</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -76,6 +76,24 @@
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
<includes>
|
||||||
|
<include>**/*.properties</include>
|
||||||
|
<include>**/*.xml</include>
|
||||||
|
</includes>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
</resource>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/java</directory>
|
||||||
|
<includes>
|
||||||
|
<include>**/*.properties</include>
|
||||||
|
<include>**/*.xml</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
|
||||||
|
</resources>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.taosdata.jdbc.springbootdemo.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.taosdata.jdbc.springbootdemo.domain.Rainfall;
|
||||||
|
import com.taosdata.jdbc.springbootdemo.service.RainStationService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/rainstation")
|
||||||
|
public class RainStationController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RainStationService service;
|
||||||
|
|
||||||
|
@GetMapping("/init")
|
||||||
|
public boolean init() {
|
||||||
|
service.init();
|
||||||
|
service.createTable();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/insert")
|
||||||
|
public int insert(@RequestBody Rainfall rainfall){
|
||||||
|
return service.insert(rainfall);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -16,43 +16,47 @@ public class WeatherController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* create database and table
|
* create database and table
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/init")
|
@GetMapping("/init")
|
||||||
public boolean init(){
|
public boolean init() {
|
||||||
return weatherService.init();
|
return weatherService.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pagination Query
|
* Pagination Query
|
||||||
|
*
|
||||||
* @param limit
|
* @param limit
|
||||||
* @param offset
|
* @param offset
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/{limit}/{offset}")
|
@GetMapping("/{limit}/{offset}")
|
||||||
public List<Weather> queryWeather(@PathVariable Long limit, @PathVariable Long offset){
|
public List<Weather> queryWeather(@PathVariable Long limit, @PathVariable Long offset) {
|
||||||
return weatherService.query(limit, offset);
|
return weatherService.query(limit, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* upload single weather info
|
* upload single weather info
|
||||||
|
*
|
||||||
* @param temperature
|
* @param temperature
|
||||||
* @param humidity
|
* @param humidity
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/{temperature}/{humidity}")
|
@PostMapping("/{temperature}/{humidity}")
|
||||||
public int saveWeather(@PathVariable int temperature, @PathVariable float humidity){
|
public int saveWeather(@PathVariable int temperature, @PathVariable float humidity) {
|
||||||
|
|
||||||
return weatherService.save(temperature, humidity);
|
return weatherService.save(temperature, humidity);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* upload multi weather info
|
* upload multi weather info
|
||||||
|
*
|
||||||
* @param weatherList
|
* @param weatherList
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/batch")
|
@PostMapping("/batch")
|
||||||
public int batchSaveWeather(@RequestBody List<Weather> weatherList){
|
public int batchSaveWeather(@RequestBody List<Weather> weatherList) {
|
||||||
|
|
||||||
return weatherService.save(weatherList);
|
return weatherService.save(weatherList);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
package com.taosdata.jdbc.springbootdemo.dao;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public interface DatabaseMapper {
|
||||||
|
|
||||||
|
int createDatabase(String dbname);
|
||||||
|
|
||||||
|
int dropDatabase(String dbname);
|
||||||
|
|
||||||
|
int creatDatabaseWithParameters(Map<String,String> map);
|
||||||
|
|
||||||
|
int useDatabase(String dbname);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?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.taosdata.jdbc.springbootdemo.dao.DatabaseMapper">
|
||||||
|
|
||||||
|
<update id="createDatabase" parameterType="java.lang.String">
|
||||||
|
create database if not exists ${dbname}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<update id="dropDatabase" parameterType="java.lang.String">
|
||||||
|
DROP database if exists ${dbname}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
|
||||||
|
<update id="creatDatabaseWithParameters" parameterType="map">
|
||||||
|
CREATE database if not EXISTS ${dbname}
|
||||||
|
<if test="keep != null">
|
||||||
|
KEEP ${keep}
|
||||||
|
</if>
|
||||||
|
<if test="days != null">
|
||||||
|
DAYS ${days}
|
||||||
|
</if>
|
||||||
|
<if test="replica != null">
|
||||||
|
REPLICA ${replica}
|
||||||
|
</if>
|
||||||
|
<if test="cache != null">
|
||||||
|
cache ${cache}
|
||||||
|
</if>
|
||||||
|
<if test="blocks != null">
|
||||||
|
blocks ${blocks}
|
||||||
|
</if>
|
||||||
|
<if test="minrows != null">
|
||||||
|
minrows ${minrows}
|
||||||
|
</if>
|
||||||
|
<if test="maxrows != null">
|
||||||
|
maxrows ${maxrows}
|
||||||
|
</if>
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<update id="useDatabase" parameterType="java.lang.String">
|
||||||
|
use ${dbname}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
</mapper>
|
|
@ -0,0 +1,9 @@
|
||||||
|
package com.taosdata.jdbc.springbootdemo.dao;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public interface RainfallMapper {
|
||||||
|
|
||||||
|
|
||||||
|
int save(Map<String, Object> map);
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?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.taosdata.jdbc.springbootdemo.dao.RainfallMapper">
|
||||||
|
|
||||||
|
<insert id="save" parameterType="map">
|
||||||
|
INSERT INTO ${table} using ${dbname}.${stable} tags(#{values.station_code}, #{values.station_name}) (ts, name, code, rainfall) values (#{values.ts}, #{values.name}, #{values.code}, #{values.rainfall})
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
|
@ -0,0 +1,8 @@
|
||||||
|
package com.taosdata.jdbc.springbootdemo.dao;
|
||||||
|
|
||||||
|
import com.taosdata.jdbc.springbootdemo.domain.TableMetadata;
|
||||||
|
|
||||||
|
public interface TableMapper {
|
||||||
|
|
||||||
|
boolean createSTable(TableMetadata tableMetadata);
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?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.taosdata.jdbc.springbootdemo.dao.TableMapper">
|
||||||
|
|
||||||
|
<update id="createSTable" parameterType="com.taosdata.jdbc.springbootdemo.domain.TableMetadata">
|
||||||
|
create table if not exists ${dbname}.${tablename}
|
||||||
|
<foreach collection="fields" item="field" index="index" open="(" close=")" separator=",">
|
||||||
|
${field.name} ${field.type}
|
||||||
|
</foreach>
|
||||||
|
TAGS
|
||||||
|
<foreach collection="tags" item="tag" index="index" open="(" close=")" separator=",">
|
||||||
|
${tag.name} ${tag.type}
|
||||||
|
</foreach>
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<update id="dropTable" parameterType="java.lang.String">
|
||||||
|
drop ${tablename}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
</mapper>
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.taosdata.jdbc.springbootdemo.domain;
|
||||||
|
|
||||||
|
public class FieldMetadata {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
public FieldMetadata(String name, String type) {
|
||||||
|
this.name = name;
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
package com.taosdata.jdbc.springbootdemo.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
|
||||||
|
public class Rainfall {
|
||||||
|
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS",timezone = "GMT+8")
|
||||||
|
private Timestamp ts;
|
||||||
|
private String name;
|
||||||
|
private String code;
|
||||||
|
private float rainfall;
|
||||||
|
private String station_code;
|
||||||
|
private String station_name;
|
||||||
|
|
||||||
|
public Timestamp getTs() {
|
||||||
|
return ts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTs(Timestamp ts) {
|
||||||
|
this.ts = ts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCode(String code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getRainfall() {
|
||||||
|
return rainfall;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRainfall(float rainfall) {
|
||||||
|
this.rainfall = rainfall;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStation_code() {
|
||||||
|
return station_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStation_code(String station_code) {
|
||||||
|
this.station_code = station_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStation_name() {
|
||||||
|
return station_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStation_name(String station_name) {
|
||||||
|
this.station_name = station_name;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
package com.taosdata.jdbc.springbootdemo.domain;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class TableMetadata {
|
||||||
|
|
||||||
|
private String dbname;
|
||||||
|
private String tablename;
|
||||||
|
private List<FieldMetadata> fields;
|
||||||
|
private List<TagMetadata> tags;
|
||||||
|
|
||||||
|
public String getDbname() {
|
||||||
|
return dbname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDbname(String dbname) {
|
||||||
|
this.dbname = dbname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTablename() {
|
||||||
|
return tablename;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTablename(String tablename) {
|
||||||
|
this.tablename = tablename;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<FieldMetadata> getFields() {
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFields(List<FieldMetadata> fields) {
|
||||||
|
this.fields = fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<TagMetadata> getTags() {
|
||||||
|
return tags;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTags(List<TagMetadata> tags) {
|
||||||
|
this.tags = tags;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.taosdata.jdbc.springbootdemo.domain;
|
||||||
|
|
||||||
|
public class TagMetadata {
|
||||||
|
private String name;
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
public TagMetadata(String name, String type) {
|
||||||
|
this.name = name;
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +1,12 @@
|
||||||
package com.taosdata.jdbc.springbootdemo.domain;
|
package com.taosdata.jdbc.springbootdemo.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
|
|
||||||
public class Weather {
|
public class Weather {
|
||||||
|
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS",timezone = "GMT+8")
|
||||||
private Timestamp ts;
|
private Timestamp ts;
|
||||||
|
|
||||||
private int temperature;
|
private int temperature;
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
package com.taosdata.jdbc.springbootdemo.service;
|
||||||
|
|
||||||
|
import com.taosdata.jdbc.springbootdemo.dao.DatabaseMapper;
|
||||||
|
import com.taosdata.jdbc.springbootdemo.dao.RainfallMapper;
|
||||||
|
import com.taosdata.jdbc.springbootdemo.dao.TableMapper;
|
||||||
|
import com.taosdata.jdbc.springbootdemo.domain.FieldMetadata;
|
||||||
|
import com.taosdata.jdbc.springbootdemo.domain.Rainfall;
|
||||||
|
import com.taosdata.jdbc.springbootdemo.domain.TableMetadata;
|
||||||
|
import com.taosdata.jdbc.springbootdemo.domain.TagMetadata;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class RainStationService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DatabaseMapper databaseMapper;
|
||||||
|
@Autowired
|
||||||
|
private TableMapper tableMapper;
|
||||||
|
@Autowired
|
||||||
|
private RainfallMapper rainfallMapper;
|
||||||
|
|
||||||
|
public boolean init() {
|
||||||
|
databaseMapper.dropDatabase("rainstation");
|
||||||
|
|
||||||
|
Map<String, String> map = new HashMap<>();
|
||||||
|
map.put("dbname", "rainstation");
|
||||||
|
map.put("keep", "36500");
|
||||||
|
map.put("days", "30");
|
||||||
|
map.put("blocks", "4");
|
||||||
|
databaseMapper.creatDatabaseWithParameters(map);
|
||||||
|
|
||||||
|
databaseMapper.useDatabase("rainstation");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean createTable() {
|
||||||
|
TableMetadata tableMetadata = new TableMetadata();
|
||||||
|
tableMetadata.setDbname("rainstation");
|
||||||
|
tableMetadata.setTablename("monitoring");
|
||||||
|
|
||||||
|
List<FieldMetadata> fields = new ArrayList<>();
|
||||||
|
fields.add(new FieldMetadata("ts", "timestamp"));
|
||||||
|
fields.add(new FieldMetadata("name", "NCHAR(10)"));
|
||||||
|
fields.add(new FieldMetadata("code", " BINARY(8)"));
|
||||||
|
fields.add(new FieldMetadata("rainfall", "float"));
|
||||||
|
tableMetadata.setFields(fields);
|
||||||
|
|
||||||
|
List<TagMetadata> tags = new ArrayList<>();
|
||||||
|
tags.add(new TagMetadata("station_code", "BINARY(8)"));
|
||||||
|
tags.add(new TagMetadata("station_name", "NCHAR(10)"));
|
||||||
|
tableMetadata.setTags(tags);
|
||||||
|
|
||||||
|
tableMapper.createSTable(tableMetadata);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int insert(Rainfall rainfall) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
map.put("dbname", "rainstation");
|
||||||
|
map.put("table", "S_53646");
|
||||||
|
map.put("stable", "monitoring");
|
||||||
|
map.put("values", rainfall);
|
||||||
|
return rainfallMapper.save(map);
|
||||||
|
}
|
||||||
|
}
|
|
@ -14,10 +14,8 @@ public class WeatherService {
|
||||||
private WeatherMapper weatherMapper;
|
private WeatherMapper weatherMapper;
|
||||||
|
|
||||||
public boolean init() {
|
public boolean init() {
|
||||||
|
|
||||||
weatherMapper.createDB();
|
weatherMapper.createDB();
|
||||||
weatherMapper.createTable();
|
weatherMapper.createTable();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# datasource config
|
# datasource config
|
||||||
spring.datasource.driver-class-name=com.taosdata.jdbc.TSDBDriver
|
spring.datasource.driver-class-name=com.taosdata.jdbc.TSDBDriver
|
||||||
spring.datasource.url=jdbc:TAOS://127.0.0.1:6030/log
|
spring.datasource.url=jdbc:TAOS://localhost:6030/log
|
||||||
spring.datasource.username=root
|
spring.datasource.username=root
|
||||||
spring.datasource.password=taosdata
|
spring.datasource.password=taosdata
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue