1 packagecom.influxdb.test;2
3 importjava.util.ArrayList;4 importjava.util.Date;5 importjava.util.HashMap;6 importjava.util.List;7 importjava.util.Map;8
9 importjunit.framework.Assert;10
11 importorg.influxdb.dto.QueryResult;12 importorg.influxdb.dto.QueryResult.Result;13 importorg.influxdb.dto.QueryResult.Series;14 importorg.junit.Before;15 importorg.junit.Test;16 importorg.springframework.beans.BeanWrapperImpl;17
18 importcom.influxdb.pojo.CodeInfo;19
20 public classInfluxDBTest {21
22 privateInfluxDBConnect influxDB;23 private String username = "admin";//用户名
24 private String password = "admin";//密码
25 private String openurl = "http://127.0.0.1:8086";//连接地址
26 private String database = "test_db";//数据库
27 private String measurement = "sys_code";28
29 @Before30 public voidsetUp(){31 //创建 连接
32 influxDB = newInfluxDBConnect(username, password, openurl, database);33
34 influxDB.influxDbBuild();35
36 influxDB.createRetentionPolicy();37
38 //influxDB.deleteDB(database);39 //influxDB.createDB(database);
40 }41
42 @Test43 public void testInsert(){//测试数据插入
44 Map tags = new HashMap();45 Map fields = new HashMap();46 List list = new ArrayList();47
48 CodeInfo info1 = newCodeInfo();49 info1.setId(1L);50 info1.setName("BANKS");51 info1.setCode("ABC");52 info1.setDescr("中国农业银行");53 info1.setDescrE("ABC");54 info1.setCreatedBy("system");55 info1.setCreatedAt(newDate().getTime());56
57 CodeInfo info2 = newCodeInfo();58 info2.setId(2L);59 info2.setName("BANKS");60 info2.setCode("CCB");61 info2.setDescr("中国建设银行");62 info2.setDescrE("CCB");63 info2.setCreatedBy("system");64 info2.setCreatedAt(newDate().getTime());65
66 list.add(info1);67 list.add(info2);68
69 for(CodeInfo info : list){70
71 tags.put("TAG_CODE", info.getCode());72 tags.put("TAG_NAME", info.getName());73
74 fields.put("ID", info.getId());75 fields.put("NAME", info.getName());76 fields.put("CODE", info.getCode());77 fields.put("DESCR", info.getDescr());78 fields.put("DESCR_E", info.getDescrE());79 fields.put("CREATED_BY", info.getCreatedBy());80 fields.put("CREATED_AT", info.getCreatedAt());81
82 influxDB.insert(measurement, tags, fields);83 }84 }85
86 @Test87 public void testQuery(){//测试数据查询
88 String command = "select * from sys_code";89 QueryResult results =influxDB.query(command);90
91 if(results.getResults() == null){92 return;93 }94 List lists = new ArrayList();95 for(Result result : results.getResults()) {96
97 List series=result.getSeries();98 for(Series serie : series) {99 //Map tags = serie.getTags();
100 List> values =serie.getValues();101 List columns =serie.getColumns();102
103 lists.addAll(getQueryData(columns, values));104 }105 }106
107 Assert.assertTrue((!lists.isEmpty()));108 Assert.assertEquals(2, lists.size());109 }110
111 @Test112 public void testQueryWhere(){//tag 列名 区分大小写
113 String command = "select * from sys_code where TAG_CODE='ABC'";114 QueryResult results =influxDB.query(command);115
116 if(results.getResults() == null){117 return;118 }119 List lists = new ArrayList();120 for(Result result : results.getResults()) {121
122 List series=result.getSeries();123 for(Series serie : series) {124 List> values =serie.getValues();125 List columns =serie.getColumns();126
127 lists.addAll(getQueryData(columns, values));128 }129 }130
131 Assert.assertTrue((!lists.isEmpty()));132 Assert.assertEquals(1, lists.size());133
134 CodeInfo info = lists.get(0);135
136 Assert.assertEquals(info.getCode(), "ABC");137
138 }139
140 @Test141 public voiddeletMeasurementData(){142 String command = "delete from sys_code where TAG_CODE='ABC'";143 String err =influxDB.deleteMeasurementData(command);144 Assert.assertNull(err);145 }146
147 /***整理列名、行数据***/
148 private List getQueryData(List columns, List>values){149 List lists = new ArrayList();150
151 for (Listlist : values) {152 CodeInfo info = newCodeInfo();153 BeanWrapperImpl bean = newBeanWrapperImpl(info);154 for(int i=0; i< list.size(); i++){155
156 String propertyName = setColumns(columns.get(i));//字段名
157 Object value = list.get(i);//相应字段值
158 bean.setPropertyValue(propertyName, value);159 }160
161 lists.add(info);162 }163
164 returnlists;165 }166
167 /***转义字段***/
168 privateString setColumns(String column){169 String[] cols = column.split("_");170 StringBuffer sb = newStringBuffer();171 for(int i=0; i< cols.length; i++){172 String col =cols[i].toLowerCase();173 if(i != 0){174 String start = col.substring(0, 1).toUpperCase();175 String end = col.substring(1).toLowerCase();176 col = start +end;177 }178 sb.append(col);179 }180 returnsb.toString();181 }182 }