apache phoenix的JAVA客户端访问

来源:互联网 发布:北京金山软件 编辑:程序博客网 时间:2024/06/02 21:05

在Phoenix-4.0.0(注意要配合hbase0.98.1+,否则会抛异常)的安装目录下,有hadoop-1和hadoop-2,目录,目录中有phoenix-4.0.0-incubating-client.jar将其拷贝到工程目录下,我用的是Hadoop1

然后就可以通过jdbc来访问phoenix数据接口。


查询的代码

package org.tcse.electric.local;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class TestConnectPhoenix {public static void main(String[] args) {// TODO Auto-generated method stubtry {            Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");        } catch(ClassNotFoundException ex) {            ex.printStackTrace();        }try {Connection conn = DriverManager.getConnection("jdbc:phoenix:133.133.134.188");Statement statement = conn.createStatement();ResultSet ret = statement.executeQuery("select * from ph_devices");while(ret != null && ret.next()){//System.out.println(ret);System.out.println(ret.getString(1));System.out.println(ret.getString(2));}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}


更新的代码:

package org.tcse.electric.local;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.Timestamp;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map;import org.springframework.web.bind.annotation.RequestParam;public class GetMeterLogLocal {public String helloRequestBody( String eleData) {try {Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");} catch (ClassNotFoundException ex) {ex.printStackTrace();return "pheonix error!";}Map<String, Integer> nameMap = new HashMap<String, Integer>() {{put("DevId", 1);put("Time", 2);put("U", 3);put("I", 4);put("Usage", 5);put("Sum", 6);}};Connection conn;try {conn = DriverManager.getConnection("jdbc:phoenix:133.133.134.188");String deviceSql = "UPSERT INTO ph_meterlogData(DEVID,TIME,U,I,Usage,Sum) VALUES(?,?,?,?,?,?)";PreparedStatement statement = conn.prepareStatement(deviceSql);String[] line = eleData.split(";");for (int i = 0; i < line.length; i++) {if(line[i].equals(""))continue;String[] cell = line[i].split("_");for (int j = 0; j < cell.length; j++) {String[] kv = cell[j].split(":");if (kv[0].trim().equals("DevId")) {statement.setInt(1, Integer.parseInt(kv[1]));} else if (kv[0].trim().equals("Time")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssS");Date time = sdf.parse(kv[1]);statement.setTimestamp(2, new Timestamp(time.getTime()));} else if (kv[0].trim().equals("U")) {statement.setFloat(3, Float.parseFloat(kv[1]));} else if (kv[0].trim().equals("I")) {statement.setFloat(4, Float.parseFloat(kv[1]));} else if (kv[0].trim().equals("Usage")) {statement.setFloat(5, Float.parseFloat(kv[1]));} else if (kv[0].trim().equals("Sum")) {statement.setFloat(6, Float.parseFloat(kv[1]));}}statement.setFloat(5, 0);statement.execute();if (i % 1000 == 0 )conn.commit();}conn.commit();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();return e.getMessage();}return "helloRequestBody";}}



0 0
原创粉丝点击