用Java实现向Cassandra数据库中插入和查询数据
所用jar包:
其中jxl.jar和dom4j.jar,jaxen-1.1-beta-6.jar是解析XML文件用的jar包,如果不解析XML文件可以不用。
代码如下:
package com.locationdataprocess; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import com.datastax.driver.core.BoundStatement; import com.datastax.driver.core.Cluster; import com.datastax.driver.core.Host; import com.datastax.driver.core.Metadata; import com.datastax.driver.core.PreparedStatement; import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Row; import com.datastax.driver.core.Session;public class QueryAndUpdateData {private Cluster cluster;private Session session;public Cluster getCluster() {return cluster;}public void setCluster(Cluster cluster) {this.cluster = cluster;}public Session getSession() {return session;}public void setSession(Session session) {this.session = session;}/*** 连接节点* * @param node*/public void connect(String node) {cluster = Cluster.builder().addContactPoint(node).build();Metadata metadata = cluster.getMetadata();System.out.printf("Connected to cluster: %s\n",metadata.getClusterName());for (Host host : metadata.getAllHosts()) {System.out.printf("Datatacenter: %s; Host: %s; Rack: %s\n",host.getDatacenter(), host.getAddress(), host.getRack());}this.session = cluster.connect();}public void insertData(String name) {String fileName[]={"Zhengye_DriveTesting_08-18.09-07.txt","Zhengye_DriveTesting_08-18.09-13.txt","Zhengye_DriveTesting_08-18.17-40.txt","Zhengye_DriveTesting_08-18.17-48.txt","Zhengye_DriveTesting_08-19.17-19.txt","Zhengye_DriveTesting_08-20.09-33.txt","Zhengye_DriveTesting_08-20.18-05.txt","Zhengye_DriveTesting_08-19.09-08.txt","Zhengye_DriveTesting_08-21.18-07.txt","Zhengye_DriveTesting_08-21.09-34.txt"};int n = fileName.length;String sqlGPS = "CREATE TABLE IF NOT EXISTS gpsdata.gps ("+ "time varchar,"+ "gps_time varchar,longitude varchar,"+ "latitude varchar,altitude varchar,"+ "heading varchar,speed varchar,"+ "source varchar,satellites varchar,"+ "PRIMARY KEY (time))";String sqlTA = "CREATE TABLE IF NOT EXISTS gpsdata.ta ("+"time varchar,"+ "version varchar,"+ "nRecords varchar,"+ "nSubFrame varchar,"+ "nSystemFrame varchar,"+ "DLFrameTimingOffset varchar,"+ "ULFrameTimingOffset varchar,"+ "ULTimingAdvance varchar,"+ "PRIMARY KEY (time))";String sqlDB = "CREATE TABLE IF NOT EXISTS gpsdata.db ("+"time varchar,"+ "version varchar,"+ "EARFCN varchar,"+ "CellId varchar,"+ "nSubFrame varchar,"+ "RSRP varchar,"+ "RSRQ varchar,"+ "NeighborCells varchar,"+ "DetectedCells varchar,"+ "NeighborCellId varchar,"+ "NeighborRSRP varchar,"+ "NeighborRSRQ varchar,"+ "PRIMARY KEY (time))";String insertGPS = "insert into gpsdata.gps("+ "time,gps_time,longitude,latitude,"+ "altitude,heading,speed,"+ "source,satellites)"+ " values(?,?,?,?,?,?,?,?,?)";String insertTA = "insert into gpsdata.ta("+"time,version,nRecords,nSubFrame,nSystemFrame,DLFrameTimingOffset,"+ "ULFrameTimingOffset,ULTimingAdvance)"+ " values(?,?,?,?,?,?,?,?)";String insertDB = "insert into gpsdata.db("+"time,version,EARFCN,"+ "CellId,nSubFrame,RSRP,"+ "RSRQ,NeighborCells,DetectedCells,"+ "NeighborCellId,NeighborRSRP,NeighborRSRQ)"+ " values(?,?,?,?,?,?,?,?,?,?,?,?)";String sql = null, insert=null;if(name=="GPS"){sql = sqlGPS;insert = insertGPS;}else if(name=="TA"){sql = sqlTA;insert = insertTA;}else if(name=="DB"){sql = sqlDB;insert = insertDB;}getSession().execute(sql);PreparedStatement psta = getSession().prepare(insert); BoundStatement boundSta = new BoundStatement(psta); for(int k=0;k<n;k++){File file = new File("H:\\项目数据\\Zhengye_Drive_Testing_Data\\"+ fileName[k]);try {FileInputStream fis = new FileInputStream(file);InputStreamReader isr = new InputStreamReader(fis);BufferedReader br = new BufferedReader(isr);String line = null;if (name == "GPS") {while ((line = br.readLine()) != null) {String s = line.trim();if (s.contains("3D GPS Info")) {String data[] = new String[9];data[0] = s.substring(0, 25);int i = 0;while (i < 1 && (line = br.readLine()) != null) {if (!line.equals("")) {data[1] = line.split("=")[1].trim();// System.out.println(line.trim());i++;}}// System.out.println(s);i = 0;while (i < 7 && (line = br.readLine()) != null) {if (!line.equals("")) {data[i + 2] = line.split("=")[1].trim();// System.out.println(line.trim());i++;}}getSession().execute(boundSta.bind(data[0], data[1], data[2],data[3], data[4], data[5], data[6],data[7], data[8]));}}} else if (name == "TA") {while ((line = br.readLine()) != null) {String s = line.trim();if (s.contains("LTE LL1 Serving Cell Frame Timing")) {String data[] = new String[8];data[0] = s.substring(0, 25);// System.out.println(s);int i = 0;while (i < 7 && (line = br.readLine()) != null) {if (!line.equals("")) {data[i + 1] = line.split("=")[1].trim();// System.out.println(line.trim());i++;}}getSession().execute(boundSta.bind(data[0], data[1], data[2],data[3], data[4], data[5], data[6],data[7]));}}} else if(name=="DB"){while ((line = br.readLine()) != null) {String s = line.trim();if (s.contains("LTE ML1 Connected Mode LTE Intra-Freq Meas Results")) {String data[] = new String[12];data[9] = "";data[10] = "";data[11] = "";data[0] = s.substring(0, 25);// System.out.println(s);int i = 0;while (i < 8 && (line = br.readLine()) != null) {if (!line.equals("")) {data[i + 1] = line.split("=")[1].trim();// System.out.println(line.trim());i++;}}int i1 = 0;while (i1 < 6 && (line = br.readLine()) != null) {i1++;};while ((line = br.readLine()) != null&& line.contains("|")) {// System.out.println(line);data[i + 1] += line.split("\\|")[2].trim()+ " ";data[i + 2] += line.split("\\|")[3].trim()+ " ";data[i + 3] += line.split("\\|")[4].trim()+ " ";}// System.out.println(data[9]); getSession().execute(boundSta.bind(data[0], data[1], data[2],data[3], data[4], data[5], data[6],data[7], data[8], data[9],data[10], data[11]));}}}System.out.println(fileName[k]+"插入成功!");} catch (FileNotFoundException e) {// TODO Auto-generated catch block e.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}}}//查询TA数据public void loadTAData() {String select = "select* from gpsdata.ta";ResultSet resultSet = getSession().execute(select);int count=0;for (Row row : resultSet) {System.out.println("time: "+row.getString("time"));System.out.println("version: "+row.getString("version"));System.out.println("nRecords: "+row.getString("nrecords"));System.out.println("nSubFrame: "+row.getString("nsubframe"));System.out.println("nSystemFrame: "+row.getString("nsystemframe"));System.out.println("DLFrameTimingOffset: "+row.getString("dlframetimingoffset"));System.out.println("ULFrameTimingOffset: "+row.getString("ulframetimingoffset"));System.out.println("ULTimingAdvance: "+row.getString("ultimingadvance")); System.out.println("=========================================================");count++;}System.out.println("行数:"+count);}//查询DB数据public void loadDBData() {String select = "select* from gpsdata.db";ResultSet resultSet = getSession().execute(select);int count=0;for (Row row : resultSet) {System.out.println("time: "+row.getString("time"));System.out.println("version: "+row.getString("version"));System.out.println("EARFCN: "+row.getString("earfcn"));System.out.println("CellId: "+row.getString("cellid"));System.out.println("nSubFrame: "+row.getString("nsubframe"));System.out.println("RSRP: "+row.getString("rsrp"));System.out.println("RSRQ: "+row.getString("rsrq"));System.out.println("NeighborCells: "+row.getString("neighborcells")); System.out.println("DetectedCells: "+row.getString("detectedcells")); System.out.println("NeighborCellId: "+row.getString("neighborcellid")); System.out.println("NeighborRSRP: "+row.getString("neighborrsrp")); System.out.println("NeighborRSRQ: "+row.getString("neighborrsrq"));System.out.println("=========================================================");count++;}System.out.println("行数:"+count);}//查询GPS数据public void loadGPSData() {String select = "select* from gpsdata.gps";ResultSet resultSet = getSession().execute(select);int count=0;for (Row row : resultSet) {System.out.println("time: "+row.getString("time"));System.out.println("gps_time: "+row.getString("gps_time"));System.out.println("longitude: "+row.getString("longitude"));System.out.println("latitude: "+row.getString("latitude"));System.out.println("altitude: "+row.getString("altitude"));System.out.println("heading: "+row.getString("heading"));System.out.println("speed: "+row.getString("speed"));System.out.println("source: "+row.getString("source"));System.out.println("satellites: "+row.getString("satellites")); System.out.println("=========================================================");count++;}System.out.println("行数:"+count);}public void close() {cluster.close();System.out.println("程序正常关闭!");}public static void main(String[] args) {QueryAndUpdateData client = new QueryAndUpdateData();client.connect("127.0.0.1"); // client.insertData("DB"); // client.loadTAData(); client.loadDBData(); // client.loadGPSData(); client.session.close();client.close();} }
参考链接:
Cassandra 2.x中文教程(22):使用Java驱动操作Cassandra
用Java实现向Cassandra数据库中插入和查询数据相关推荐
- Java程序向MySql数据库中插入的中文数据变成了问号
找到mysql的安装目录,修改my.ini文件 (1)如何找到my.ini文件 如果my.ini文件不在MySQL的安装目录下,可能放在隐藏目录,要先去找到ProgramData,(这里要先打开显示隐 ...
- java向mysql写入数据慢_通过java代码往mysql数据库中写入日期相关数据少13个小时...
通过show variables like '%time_zone%'; 查看时区: CST 时区 名为 CST 的时区是一个很混乱的时区,有四种含义: 美国中部时间 Central Standard ...
- 用Java向SQL Server数据库中插入float数据报错An error occurred while converting the Float value to JDBC data type
作者:翁松秀 用Java向SQL Server数据库中插入float数据报错 用Java向SQL Server数据库中插入float数据报错 报错信息: 报错原因: 解决方案: 报错信息: An er ...
- mysql十万条数据_2秒内向数据库中插入十万条数据?
怎么向数据库中快速插入十万条数据呢,当然得需要对比才能看到效果,今天给大家亲身测了两种方法对比,差别25倍左右 1,数据库用sql server 2008 r2,表结构非常简单,四个字段,建数据表的s ...
- Oracle数据库中插入日期型数据
如果插入Oracle的当前系统时间可以用 SYSDATE INSERT INTO FLOOR VALUES ( SYSDATE ) ; 往Oracle数据库中插入日期型数据(to_date的用法) 今 ...
- 博图WINCC报表(SQL数据库的建立,TIA_wincc在数据库中保存和查询数据,调用Excel模板把数据保存到指定的位置)
这里写目录标题 目录 一.概述 1.1 前言 1.2 主要功能 1.3 使用的软件 二. SQL server建库和建表 2.1.SQL server建库 2.2SQL server建表 三.建立wi ...
- JDBC向数据库中插入BLOB类型数据
目录 1.Blob介绍 2.使用PreparedStatement向数据表中插入Blob类型字段 3.从数据表中读取Blob类型数据 4.特殊情况说明 1.Blob介绍 Blob是一种二进制数据文件, ...
- java向Oracle数据库中插入blob字段数据
java不能直接想插入其他普通类型数据一样插入blob字段数据,因为blob相当于一个大文件块,里面有游标,需要初始化blob游标才能插入数据.所以我们要先插入一个空的blob数据,以初始化游标,然后 ...
- 向SQL Server数据库中插入日期型数据
数据库中字段类型是:datetime 1.采用java.util.Date类 import java.sql.Connection; import java.util.Date; import jav ...
- [ES7版本系列(二)] Java连接ElasticSearch向索引中插入新的数据
1.引入依赖,这里使用的是es的7以上的版本,使用elasticsearch-rest-high-level-client 高级别API来创建客户端 <!-- https://mvnreposi ...
最新文章
- Java之相对路径找不到文件问题解决方法
- 树模型为什么是不能进行梯度下降
- 生产力再提速,618 互动项目进化之路
- 536. Construct Binary Tree from String 从括号字符串中构建二叉树
- Cortex-M3-栏目-文章来源
- Python 项目实践三(Web应用程序)第四篇
- wps怎么旋转页面_用WPS文字编辑一份试卷,详细教程来了,老师们赶快收藏吧
- android调用.Net WebService传递byte[]
- Linux系统利用C语言获取网口信息(IP地址,MAC地址,状态,带宽speed等)
- 为您的IIS6下的网站配置Rewrite伪静态组件
- 【大健康】高保真交互原型模板+大健康生态问诊app+饮食运动数据血糖血压健康数据的管理移动端+在线挂号、体检预约、远程在线视频电话图文问诊医疗服务+积分商城设备管理+健康档案
- python定义一个数列_第二章 数列和序列类型
- 干货分享:Neutron的PPT,帮助你理解Neutron的各种细节
- 算法笔记_面试题_数组/链表/跳表/各种数据结构复杂度对比
- Codeforces Education Round 11
- 软考-嵌入式系统设计师-笔记:嵌入式系统软件基础知识
- 安卓百度地图开发代码
- PHP用Socket上传图片
- 135.如何进行离线计算-1
- 面试经验 - 如何进行项目介绍?
热门文章
- atitit.压缩算法 ZLib ,gzip ,zip 最佳实践 java .net php
- paip.c++ qt 网页爬虫 的 网络编程 总结
- paip.ecshop邮件模板修改一个密码找回 一个留言回复
- Python: str、datetime、time、seconds
- (转)200亿美元比特币找不到主人,这个邪恶职业一夜爆火
- Julia: 引用、copy与数组
- SRS为何加入木兰社区孵化?
- 90 亿美元的“Java 第一版权案”终落幕:谷歌胜!
- 新兴IT企业特斯拉(八)——自动辅助驾驶
- 2022美国大学生数学建模竞赛D题思路