delete from root.XXX.XXX.demo20130424\_4.\* where time > XXXXXX
最后总算成功通过mybatis实现了自己想要的功能,不过还是有很多不足,还希望有兴趣的同学一起研究。
接下来上代码:
实现过程:
1.主要依赖:
<dependency>
<groupId>org.apache.iotdb</groupId>
<artifactId>iotdb-jdbc</artifactId>
<version>0.13.0</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
2.数据库配置
spring:
datasource:
username: root
password: *******
driver-class-name: org.apache.iotdb.jdbc.IoTDBDriver
url: jdbc:iotdb://localhost:6667/
druid:
validation-query: select * from *****
initial-size: 5
min-idle: 10
max-active: 50
max-wait: 60000
remove-abandoned: true
remove-abandoned-timeout: 30
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
test-while-idle: false
test-on-borrow: false
test-on-return: false
mybatis:
mapper-locations: classpath:/mapper/*.xml
#输出sql日志
logging:
level:
com.zssy.iotdb.mapper.IotdbMapper: debug
3.controller,测试用没有入参,实际情况可以自己加
import com.***.iotdb.dao.DeviceDao;
import com.***.iotdb.dao.SaveIotParam;
import com.***.iotdb.dao.SearchIotParam;
import com.***.iotdb.service.IotdbService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author xp
* @ClassName iotdbDemoController
* @Description TODO
* @date 2023/04/24 9:06
*/
@Slf4j
@RestController
@RequestMapping("/iotdbjdbcdemo")
@RequiredArgsConstructor
public class IotdbDemoController {
@Autowired
private IotdbService service;
/** * 新增 * @param data * @return * @throws Exception */
@PostMapping("/insert")
public String insert() throws Exception {
service.insert(data);
return "SUCCESS";
}
/** * 删除 * @param data * @throws Exception */
@PostMapping("/delete")
public void delete() throws Exception {
service.deleteByParam();
}
/** * 查询 * @param data * @return * @throws Exception */
@GetMapping("/queryOrder")
public List<DeviceDao> queryOrder() throws Exception {
try {
List<DeviceDao> v = service.queryOrder();
return v;
} catch (Exception e) {
log.info("查询失败!" + e);
return null;
}
}
}
4.service
4.1接口
/**
* @author xp
* @ClassName IotdbService
* @Description TODO
* @date 2023/04/24 9:26
*/
import com.***.iotdb.dao.DeviceDao;
import com.***.iotdb.dao.SaveIotParam;
import com.***.iotdb.dao.SearchIotParam;
import java.util.*;
public interface IotdbService {
public void insert();
public void deleteByParam();
List<DeviceDao> queryOrder();
}
4.2实现类
/**
* @author xp
* @ClassName IotdbService
* @Description TODO
* @date 2023/04/24 9:26
*/
import com.***.iotdb.dao.DeviceDao;
import com.***.iotdb.dao.SaveIotParam;
import com.***.iotdb.dao.SearchIotParam;
import com.***.iotdb.mapper.IotdbMapper;
import com.***.iotdb.service.IotdbService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
public class IotdbServiceImpl implements IotdbService {
@Autowired
private IotdbMapper mapper;
@Override
public void insert() {
mapper.insert();
}
@Override
public void deleteByParam() {
mapper.deleteByParam();
}
@Override
public List<DeviceDao> queryOrder(){
final List<Map<String, Object>> mapList = mapper.queryOrder();
final List<DeviceDao> result = mapList.stream().map(s -> {
final DeviceDao deviceDao = new DeviceDao();
deviceDao.setTime((Date) s.get("Time"));
deviceDao.setMeasurementTemperature(s.get("temperature").toString());
deviceDao.setMeasurementWeight(s.get("weight").toString());
deviceDao.setMeasurementFlow(s.get("flow").toString());
deviceDao.setMeasurementNumber(s.get("Number").toString());
return deviceDao;
}).collect(Collectors.toList());
return result;
}
}
5.mapper
import com.***.iotdb.dao.DeviceDao;
import com.***.iotdb.dao.SaveIotParam;
import com.***.iotdb.dao.SearchIotParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @author xp
* @InterfaceName IotdbMapper
* @Description TODO
* @date 2023/04/24 14:29
*/
public interface IotdbMapper {
void insert();
void deleteByParam();
List<Map<String, Object>> queryOrder();
}
6.mapper.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.***.***.mapper.IotdbMapper">
<resultMap id="BaseResult" type="com.***.***.dao.DeviceDao">
<collection property="measurementNumber" column="Number" javaType="INTEGER"/>
<collection property="measurementWeight" column="weight" javaType="DOUBLE"/>
<collection property="measurementTemperature" column="temperature" javaType="DOUBLE"/>
<collection property="measurementFlow" column="flow" javaType="DOUBLE"/>
<collection property="time" column="Time" javaType="DATE"/>
</resultMap>
<!-- resultMap没有走通,请大神指导-->
<insert id="insert">
insert into root.***.***.demo20130424_1 (timestamp, Number, weight, temperature,flow)
values(2023-04-25T18:28:20.689+08:00,9,7.77,37.99,2.66);
</insert>
<delete id="deleteByParam">
delete from root.***.***.demo20130424_1.* where time > 1682317200000
</delete>
<select id="queryOrder" resultType="java.util.Map">
select Number as Number,temperature as temperature,weight as weight,flow as flow from root.zssy.zkj.demo20130424_1 limit 1 offset 0
</select>
</mapper>
7.记得启动类哦
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
/**
* @author xp
* @ClassName IotdbApplication
* @Description TODO
* @date 2023/04/24 8:53
*/
@SpringBootApplication
@MapperScan("com.***.iotdb.mapper")
public class IotdbApplication {
public static void main(String[] args) {
SpringApplication.run(IotdbApplication.class, args);
System.out.println("iotdb Demo程序启动成功!");
## 最后
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/70553ad1a4547f7b35f7fc8a11331b16.png)
![img](https://img-blog.csdnimg.cn/img_convert/4e0401c2a60d17265c5ce6738f4ba98d.jpeg)
![img](https://img-blog.csdnimg.cn/img_convert/a9e2c920e83edb00fb011ef33d2f04d1.png)
![img](https://img-blog.csdnimg.cn/img_convert/dcdf5bb868ee6bfa54c5a244ff8d8d2f.png)
![img](https://img-blog.csdnimg.cn/img_convert/d7c34c76000396094ccb912b9c39089d.png)
![img](https://img-blog.csdnimg.cn/img_convert/f1c1a2942f3c1c358c21ff6ea202c28c.png)
![](https://img-blog.csdnimg.cn/img_convert/4b38ff07ea881be84a25878d5a4d1b8e.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!
中...(img-1HCksqKG-1715841000989)]
[外链图片转存中...(img-jcScrgnD-1715841000989)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!