Hbase框架的搭建和使用_第四节_Protobuf安装和使用

安装包

https://github.com/1367379258/BigDataED/tree/master/hbase/%E8%B5%84%E6%96%99

:Protobuf 安装

1.    tar  -zxf protobuf-.......
2. yum groupinstall "Development tools"
3. ./config......   默认安安装在 usr/local
4. make && make  install 
package com.bjsxt.hbase;
message PhoneDetail
{

	required string dnum = 1;
	required string length = 2;
	required string type = 3;
	required string date = 4;
}
message DayOfPhone
{
	repeated PhoneDetail DayPhone = 1;
}

	vi phone.proto 把上面的数据 放进去 

	/usr/local/bin/protoc phone.proto --java_out=/root/

	ftps 把java放到 eclipese


	insert3 放在 phone3中

:Protobuf 使用 具体代码在 hbase/java/

  • 一个电话 掉话率 检测
先引入 那个Phone.java文件
在目录下
phoneCase 是对 数据插入 对象包装插入 多对象包装插入
注意。 put(rowKey)
		put.add("cf".getBytes(),"dnum".getBytes(),dnum.getBytes());
		get(rowkey);
		table.put(puts); 
		table.get(get);

Scan scan = new Scan()
scan.setStartrow("");   // 在 row中 查找  开始范围 
scan.setStopRow("");   //   停止范围 


/**
 查询 指定 column中的数据 
FiltersList lis  = new FiltersList(FiltersList.Operator.MUST_PASS_ALL);  ///  所有条件必须满足
SingleColumnValueFilter filter= new SingleColumnValueFilter(familyName.getBytes(), 
"type".getBytes(),  CompareOp.EQUAL, "0".getBytes());  // 只有 colum中的 type == 0才被取到
PrefixFilter filter2 =new PrefixFilter("15894311313".getBytes());

lis.addFilter(filter);  // 加入到 过滤器组中。
lis.addFilter(filter);

Scan scan = new Scan();
scan.setFillter(filters);
ResultScanner scanner = table.getScanner(scan);
for(Result result: scanner) {
		System.out.print(Bytes.toString(CellUtil.cloneValue(result.getColumnLatestCell("cf".getBytes(), "dnum".getBytes()))));
		System.out.print("=="+Bytes.toString(CellUtil.cloneValue(result.getColumnLatestCell("cf".getBytes(), "type".getBytes()))));
		System.out.print("=="+Bytes.toString(CellUtil.cloneValue(result.getColumnLatestCell("cf".getBytes(), "length".getBytes()))));
		System.out.println("=="+Bytes.toString(CellUtil.cloneValue(result.getColumnLatestCell("cf".getBytes(), "date".getBytes()))));
}
scanner.close();

对象 插入

Phone.PhoneDetail.Builder phoneDetail = Phone.PhoneDetail.newBuilder();
phoneDetail.setDate(date);
phoneDetail.setDnum(dnum);
phoneDetail.setLength(length);
phoneDetail.setType(type);

String rowkey = phoneNumber+"_"+String.valueOf(Long.MAX_VALUE-sdf.parse(date).getTime());
Put put = new Put(rowkey.getBytes());
put.add("cf".getBytes(),"phoneDetail".getBytes(),phoneDetail.build().toByteArray());
puts.add(put);

把1000个 phoneDetail 包装到 一个 DayOfPhone中
插入
String rowkey = phoneNumber+"_"+String.valueOf(Long.MAX_VALUE-sdf.parse(“20181225000000”).getTime());
Phone.DayOfPhone.Builder dayof = Phone.DayOfPhone.newBuilder();
for(int j =0;j<1000;j++){
// 属性
String dnum = getPhone(“177”);
String length = String.valueOf(r.nextInt(99));// 通话时长
String type = String.valueOf(r.nextInt(2));
String date = getDate2(“20181225”);

	Phone.PhoneDetail.Builder phoneDetail = Phone.PhoneDetail.newBuilder();
	phoneDetail.setDate(date);
	phoneDetail.setDnum(dnum);
	phoneDetail.setLength(length);
	phoneDetail.setType(type);
	dayof.addDayPhone(phoneDetail);
}
Put put = new Put(rowkey.getBytes());
put.add("cf".getBytes(), "day".getBytes(), dayof.build().toByteArray());
puts.add(put);   //  10 只有10 条数据 rowkey 

table.put(puts);
	
	
获取数据 
	Get get = new Get("15893304049_9223370522077571807".getBytes());
Result result = table.get(get);
PhoneDetail phoneDetail = Phone.PhoneDetail.parseFrom(CellUtil.cloneValue(result.getColumnLatestCell("cf".getBytes(), 
		"phoneDetail".getBytes())));
System.out.println(phoneDetail);	
使用的包和代码

Phone.java


// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: phone.proto

package com.bjsxt.hbase;

public final class Phone {
  private Phone() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public interface PhoneDetailOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // required string dnum = 1;
    /**
     * <code>required string dnum = 1;</code>
     */
    boolean hasDnum();
    /**
     * <code>required string dnum = 1;</code>
     */
    java.lang.String getDnum();
    /**
     * <code>required string dnum = 1;</code>
     */
    com.google.protobuf.ByteString
        getDnumBytes();

    // required string length = 2;
    /**
     * <code>required string length = 2;</code>
     */
    boolean hasLength();
    /**
     * <code>required string length = 2;</code>
     */
    java.lang.String getLength();
    /**
     * <code>required string length = 2;</code>
     */
    com.google.protobuf.ByteString
        getLengthBytes();

    // required string type = 3;
    /**
     * <code>required string type = 3;</code>
     */
    boolean hasType();
    /**
     * <code>required string type = 3;</code>
     */
    java.lang.String getType();
    /**
     * <code>required string type = 3;</code>
     */
    com.google.protobuf.ByteString
        getTypeBytes();

    // required string date = 4;
    /**
     * <code>required string date = 4;</code>
     */
    boolean hasDate();
    /**
     * <code>required string date = 4;</code>
     */
    java.lang.String getDate();
    /**
     * <code>required string date = 4;</code>
     */
    com.google.protobuf.ByteString
        getDateBytes();
  }
  /**
   * Protobuf type {@code com.bjsxt.hbase.PhoneDetail}
   */
  public static final class PhoneDetail extends
      com.google.protobuf.GeneratedMessage
      implements PhoneDetailOrBuilder {
    // Use PhoneDetail.newBuilder() to construct.
    private PhoneDetail(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PhoneDetail(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final PhoneDetail defaultInstance;
    public static PhoneDetail getDefaultInstance() {
      return defaultInstance;
    }

    public PhoneDetail getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PhoneDetail(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              dnum_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              length_ = input.readBytes();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              type_ = input.readBytes();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              date_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.bjsxt.hbase.Phone.internal_static_com_bjsxt_hbase_PhoneDetail_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.bjsxt.hbase.Phone.internal_static_com_bjsxt_hbase_PhoneDetail_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.bjsxt.hbase.Phone.PhoneDetail.class, com.bjsxt.hbase.Phone.PhoneDetail.Builder.class);
    }

    public static com.google.protobuf.Parser<PhoneDetail> PARSER =
        new com.google.protobuf.AbstractParser<PhoneDetail>() {
      public PhoneDetail parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PhoneDetail(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<PhoneDetail> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required string dnum = 1;
    public static final int DNUM_FIELD_NUMBER = 1;
    private java.lang.Object dnum_;
    /**
     * <code>required string dnum = 1;</code>
     */
    public boolean hasDnum() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string dnum = 1;</code>
     */
    public java.lang.String getDnum() {
      java.lang.Object ref = dnum_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          dnum_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string dnum = 1;</code>
     */
    public com.google.protobuf.ByteString
        getDnumBytes() {
      java.lang.Object ref = dnum_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        dnum_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // required string length = 2;
    public static final int LENGTH_FIELD_NUMBER = 2;
    private java.lang.Object length_;
    /**
     * <code>required string length = 2;</code>
     */
    public boolean hasLength() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required string length = 2;</code>
     */
    public java.lang.String getLength() {
      java.lang.Object ref = length_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          length_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string length = 2;</code>
     */
    public com.google.protobuf.ByteString
        getLengthBytes() {
      java.lang.Object ref = length_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        length_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // required string type = 3;
    public static final int TYPE_FIELD_NUMBER = 3;
    private java.lang.Object type_;
    /**
     * <code>required string type = 3;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required string type = 3;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string type = 3;</code>
     */
    public com.google.protobuf.ByteString
        getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // required string date = 4;
    public static final int DATE_FIELD_NUMBER = 4;
    private java.lang.Object date_;
    /**
     * <code>required string date = 4;</code>
     */
    public boolean hasDate() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>required string date = 4;</code>
     */
    public java.lang.String getDate() {
      java.lang.Object ref = date_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          date_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string date = 4;</code>
     */
    public com.google.protobuf.ByteString
        getDateBytes() {
      java.lang.Object ref = date_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        date_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      dnum_ = "";
      length_ = "";
      type_ = "";
      date_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasDnum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLength()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasDate()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getDnumBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getLengthBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getTypeBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getDateBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getDnumBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getLengthBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getTypeBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getDateBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.bjsxt.hbase.Phone.PhoneDetail parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.bjsxt.hbase.Phone.PhoneDetail parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.bjsxt.hbase.Phone.PhoneDetail parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.bjsxt.hbase.Phone.PhoneDetail parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.bjsxt.hbase.Phone.PhoneDetail parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.bjsxt.hbase.Phone.PhoneDetail parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.bjsxt.hbase.Phone.PhoneDetail parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.bjsxt.hbase.Phone.PhoneDetail parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.bjsxt.hbase.Phone.PhoneDetail parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.bjsxt.hbase.Phone.PhoneDetail parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.bjsxt.hbase.Phone.PhoneDetail prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.bjsxt.hbase.PhoneDetail}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.bjsxt.hbase.Phone.PhoneDetailOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.bjsxt.hbase.Phone.internal_static_com_bjsxt_hbase_PhoneDetail_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.bjsxt.hbase.Phone.internal_static_com_bjsxt_hbase_PhoneDetail_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.bjsxt.hbase.Phone.PhoneDetail.class, com.bjsxt.hbase.Phone.PhoneDetail.Builder.class);
      }

      // Construct using com.bjsxt.hbase.Phone.PhoneDetail.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        dnum_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        length_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        date_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.bjsxt.hbase.Phone.internal_static_com_bjsxt_hbase_PhoneDetail_descriptor;
      }

      public com.bjsxt.hbase.Phone.PhoneDetail getDefaultInstanceForType() {
        return com.bjsxt.hbase.Phone.PhoneDetail.getDefaultInstance();
      }

      public com.bjsxt.hbase.Phone.PhoneDetail build() {
        com.bjsxt.hbase.Phone.PhoneDetail result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.bjsxt.hbase.Phone.PhoneDetail buildPartial() {
        com.bjsxt.hbase.Phone.PhoneDetail result = new com.bjsxt.hbase.Phone.PhoneDetail(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.dnum_ = dnum_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.length_ = length_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.date_ = date_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.bjsxt.hbase.Phone.PhoneDetail) {
          return mergeFrom((com.bjsxt.hbase.Phone.PhoneDetail)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.bjsxt.hbase.Phone.PhoneDetail other) {
        if (other == com.bjsxt.hbase.Phone.PhoneDetail.getDefaultInstance()) return this;
        if (other.hasDnum()) {
          bitField0_ |= 0x00000001;
          dnum_ = other.dnum_;
          onChanged();
        }
        if (other.hasLength()) {
          bitField0_ |= 0x00000002;
          length_ = other.length_;
          onChanged();
        }
        if (other.hasType()) {
          bitField0_ |= 0x00000004;
          type_ = other.type_;
          onChanged();
        }
        if (other.hasDate()) {
          bitField0_ |= 0x00000008;
          date_ = other.date_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasDnum()) {
          
          return false;
        }
        if (!hasLength()) {
          
          return false;
        }
        if (!hasType()) {
          
          return false;
        }
        if (!hasDate()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.bjsxt.hbase.Phone.PhoneDetail parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.bjsxt.hbase.Phone.PhoneDetail) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string dnum = 1;
      private java.lang.Object dnum_ = "";
      /**
       * <code>required string dnum = 1;</code>
       */
      public boolean hasDnum() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string dnum = 1;</code>
       */
      public java.lang.String getDnum() {
        java.lang.Object ref = dnum_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          dnum_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string dnum = 1;</code>
       */
      public com.google.protobuf.ByteString
          getDnumBytes() {
        java.lang.Object ref = dnum_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          dnum_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string dnum = 1;</code>
       */
      public Builder setDnum(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        dnum_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string dnum = 1;</code>
       */
      public Builder clearDnum() {
        bitField0_ = (bitField0_ & ~0x00000001);
        dnum_ = getDefaultInstance().getDnum();
        onChanged();
        return this;
      }
      /**
       * <code>required string dnum = 1;</code>
       */
      public Builder setDnumBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        dnum_ = value;
        onChanged();
        return this;
      }

      // required string length = 2;
      private java.lang.Object length_ = "";
      /**
       * <code>required string length = 2;</code>
       */
      public boolean hasLength() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required string length = 2;</code>
       */
      public java.lang.String getLength() {
        java.lang.Object ref = length_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          length_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string length = 2;</code>
       */
      public com.google.protobuf.ByteString
          getLengthBytes() {
        java.lang.Object ref = length_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          length_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string length = 2;</code>
       */
      public Builder setLength(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        length_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string length = 2;</code>
       */
      public Builder clearLength() {
        bitField0_ = (bitField0_ & ~0x00000002);
        length_ = getDefaultInstance().getLength();
        onChanged();
        return this;
      }
      /**
       * <code>required string length = 2;</code>
       */
      public Builder setLengthBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        length_ = value;
        onChanged();
        return this;
      }

      // required string type = 3;
      private java.lang.Object type_ = "";
      /**
       * <code>required string type = 3;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required string type = 3;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          type_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string type = 3;</code>
       */
      public com.google.protobuf.ByteString
          getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string type = 3;</code>
       */
      public Builder setType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string type = 3;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       * <code>required string type = 3;</code>
       */
      public Builder setTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        type_ = value;
        onChanged();
        return this;
      }

      // required string date = 4;
      private java.lang.Object date_ = "";
      /**
       * <code>required string date = 4;</code>
       */
      public boolean hasDate() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>required string date = 4;</code>
       */
      public java.lang.String getDate() {
        java.lang.Object ref = date_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          date_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string date = 4;</code>
       */
      public com.google.protobuf.ByteString
          getDateBytes() {
        java.lang.Object ref = date_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          date_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string date = 4;</code>
       */
      public Builder setDate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        date_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string date = 4;</code>
       */
      public Builder clearDate() {
        bitField0_ = (bitField0_ & ~0x00000008);
        date_ = getDefaultInstance().getDate();
        onChanged();
        return this;
      }
      /**
       * <code>required string date = 4;</code>
       */
      public Builder setDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        date_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.bjsxt.hbase.PhoneDetail)
    }

    static {
      defaultInstance = new PhoneDetail(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.bjsxt.hbase.PhoneDetail)
  }

  public interface DayOfPhoneOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;
    /**
     * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
     */
    java.util.List<com.bjsxt.hbase.Phone.PhoneDetail> 
        getDayPhoneList();
    /**
     * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
     */
    com.bjsxt.hbase.Phone.PhoneDetail getDayPhone(int index);
    /**
     * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
     */
    int getDayPhoneCount();
    /**
     * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
     */
    java.util.List<? extends com.bjsxt.hbase.Phone.PhoneDetailOrBuilder> 
        getDayPhoneOrBuilderList();
    /**
     * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
     */
    com.bjsxt.hbase.Phone.PhoneDetailOrBuilder getDayPhoneOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code com.bjsxt.hbase.DayOfPhone}
   */
  public static final class DayOfPhone extends
      com.google.protobuf.GeneratedMessage
      implements DayOfPhoneOrBuilder {
    // Use DayOfPhone.newBuilder() to construct.
    private DayOfPhone(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private DayOfPhone(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final DayOfPhone defaultInstance;
    public static DayOfPhone getDefaultInstance() {
      return defaultInstance;
    }

    public DayOfPhone getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private DayOfPhone(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                dayPhone_ = new java.util.ArrayList<com.bjsxt.hbase.Phone.PhoneDetail>();
                mutable_bitField0_ |= 0x00000001;
              }
              dayPhone_.add(input.readMessage(com.bjsxt.hbase.Phone.PhoneDetail.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          dayPhone_ = java.util.Collections.unmodifiableList(dayPhone_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.bjsxt.hbase.Phone.internal_static_com_bjsxt_hbase_DayOfPhone_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.bjsxt.hbase.Phone.internal_static_com_bjsxt_hbase_DayOfPhone_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.bjsxt.hbase.Phone.DayOfPhone.class, com.bjsxt.hbase.Phone.DayOfPhone.Builder.class);
    }

    public static com.google.protobuf.Parser<DayOfPhone> PARSER =
        new com.google.protobuf.AbstractParser<DayOfPhone>() {
      public DayOfPhone parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new DayOfPhone(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser<DayOfPhone> getParserForType() {
      return PARSER;
    }

    // repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;
    public static final int DAYPHONE_FIELD_NUMBER = 1;
    private java.util.List<com.bjsxt.hbase.Phone.PhoneDetail> dayPhone_;
    /**
     * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
     */
    public java.util.List<com.bjsxt.hbase.Phone.PhoneDetail> getDayPhoneList() {
      return dayPhone_;
    }
    /**
     * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
     */
    public java.util.List<? extends com.bjsxt.hbase.Phone.PhoneDetailOrBuilder> 
        getDayPhoneOrBuilderList() {
      return dayPhone_;
    }
    /**
     * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
     */
    public int getDayPhoneCount() {
      return dayPhone_.size();
    }
    /**
     * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
     */
    public com.bjsxt.hbase.Phone.PhoneDetail getDayPhone(int index) {
      return dayPhone_.get(index);
    }
    /**
     * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
     */
    public com.bjsxt.hbase.Phone.PhoneDetailOrBuilder getDayPhoneOrBuilder(
        int index) {
      return dayPhone_.get(index);
    }

    private void initFields() {
      dayPhone_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      for (int i = 0; i < getDayPhoneCount(); i++) {
        if (!getDayPhone(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < dayPhone_.size(); i++) {
        output.writeMessage(1, dayPhone_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < dayPhone_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, dayPhone_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.bjsxt.hbase.Phone.DayOfPhone parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.bjsxt.hbase.Phone.DayOfPhone parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.bjsxt.hbase.Phone.DayOfPhone parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.bjsxt.hbase.Phone.DayOfPhone parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.bjsxt.hbase.Phone.DayOfPhone parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.bjsxt.hbase.Phone.DayOfPhone parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.bjsxt.hbase.Phone.DayOfPhone parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.bjsxt.hbase.Phone.DayOfPhone parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.bjsxt.hbase.Phone.DayOfPhone parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.bjsxt.hbase.Phone.DayOfPhone parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.bjsxt.hbase.Phone.DayOfPhone prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.bjsxt.hbase.DayOfPhone}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.bjsxt.hbase.Phone.DayOfPhoneOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.bjsxt.hbase.Phone.internal_static_com_bjsxt_hbase_DayOfPhone_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.bjsxt.hbase.Phone.internal_static_com_bjsxt_hbase_DayOfPhone_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.bjsxt.hbase.Phone.DayOfPhone.class, com.bjsxt.hbase.Phone.DayOfPhone.Builder.class);
      }

      // Construct using com.bjsxt.hbase.Phone.DayOfPhone.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getDayPhoneFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (dayPhoneBuilder_ == null) {
          dayPhone_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          dayPhoneBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.bjsxt.hbase.Phone.internal_static_com_bjsxt_hbase_DayOfPhone_descriptor;
      }

      public com.bjsxt.hbase.Phone.DayOfPhone getDefaultInstanceForType() {
        return com.bjsxt.hbase.Phone.DayOfPhone.getDefaultInstance();
      }

      public com.bjsxt.hbase.Phone.DayOfPhone build() {
        com.bjsxt.hbase.Phone.DayOfPhone result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.bjsxt.hbase.Phone.DayOfPhone buildPartial() {
        com.bjsxt.hbase.Phone.DayOfPhone result = new com.bjsxt.hbase.Phone.DayOfPhone(this);
        int from_bitField0_ = bitField0_;
        if (dayPhoneBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            dayPhone_ = java.util.Collections.unmodifiableList(dayPhone_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.dayPhone_ = dayPhone_;
        } else {
          result.dayPhone_ = dayPhoneBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.bjsxt.hbase.Phone.DayOfPhone) {
          return mergeFrom((com.bjsxt.hbase.Phone.DayOfPhone)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.bjsxt.hbase.Phone.DayOfPhone other) {
        if (other == com.bjsxt.hbase.Phone.DayOfPhone.getDefaultInstance()) return this;
        if (dayPhoneBuilder_ == null) {
          if (!other.dayPhone_.isEmpty()) {
            if (dayPhone_.isEmpty()) {
              dayPhone_ = other.dayPhone_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureDayPhoneIsMutable();
              dayPhone_.addAll(other.dayPhone_);
            }
            onChanged();
          }
        } else {
          if (!other.dayPhone_.isEmpty()) {
            if (dayPhoneBuilder_.isEmpty()) {
              dayPhoneBuilder_.dispose();
              dayPhoneBuilder_ = null;
              dayPhone_ = other.dayPhone_;
              bitField0_ = (bitField0_ & ~0x00000001);
              dayPhoneBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getDayPhoneFieldBuilder() : null;
            } else {
              dayPhoneBuilder_.addAllMessages(other.dayPhone_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getDayPhoneCount(); i++) {
          if (!getDayPhone(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.bjsxt.hbase.Phone.DayOfPhone parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.bjsxt.hbase.Phone.DayOfPhone) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;
      private java.util.List<com.bjsxt.hbase.Phone.PhoneDetail> dayPhone_ =
        java.util.Collections.emptyList();
      private void ensureDayPhoneIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          dayPhone_ = new java.util.ArrayList<com.bjsxt.hbase.Phone.PhoneDetail>(dayPhone_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.bjsxt.hbase.Phone.PhoneDetail, com.bjsxt.hbase.Phone.PhoneDetail.Builder, com.bjsxt.hbase.Phone.PhoneDetailOrBuilder> dayPhoneBuilder_;

      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public java.util.List<com.bjsxt.hbase.Phone.PhoneDetail> getDayPhoneList() {
        if (dayPhoneBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dayPhone_);
        } else {
          return dayPhoneBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public int getDayPhoneCount() {
        if (dayPhoneBuilder_ == null) {
          return dayPhone_.size();
        } else {
          return dayPhoneBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public com.bjsxt.hbase.Phone.PhoneDetail getDayPhone(int index) {
        if (dayPhoneBuilder_ == null) {
          return dayPhone_.get(index);
        } else {
          return dayPhoneBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public Builder setDayPhone(
          int index, com.bjsxt.hbase.Phone.PhoneDetail value) {
        if (dayPhoneBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDayPhoneIsMutable();
          dayPhone_.set(index, value);
          onChanged();
        } else {
          dayPhoneBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public Builder setDayPhone(
          int index, com.bjsxt.hbase.Phone.PhoneDetail.Builder builderForValue) {
        if (dayPhoneBuilder_ == null) {
          ensureDayPhoneIsMutable();
          dayPhone_.set(index, builderForValue.build());
          onChanged();
        } else {
          dayPhoneBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public Builder addDayPhone(com.bjsxt.hbase.Phone.PhoneDetail value) {
        if (dayPhoneBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDayPhoneIsMutable();
          dayPhone_.add(value);
          onChanged();
        } else {
          dayPhoneBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public Builder addDayPhone(
          int index, com.bjsxt.hbase.Phone.PhoneDetail value) {
        if (dayPhoneBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDayPhoneIsMutable();
          dayPhone_.add(index, value);
          onChanged();
        } else {
          dayPhoneBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public Builder addDayPhone(
          com.bjsxt.hbase.Phone.PhoneDetail.Builder builderForValue) {
        if (dayPhoneBuilder_ == null) {
          ensureDayPhoneIsMutable();
          dayPhone_.add(builderForValue.build());
          onChanged();
        } else {
          dayPhoneBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public Builder addDayPhone(
          int index, com.bjsxt.hbase.Phone.PhoneDetail.Builder builderForValue) {
        if (dayPhoneBuilder_ == null) {
          ensureDayPhoneIsMutable();
          dayPhone_.add(index, builderForValue.build());
          onChanged();
        } else {
          dayPhoneBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public Builder addAllDayPhone(
          java.lang.Iterable<? extends com.bjsxt.hbase.Phone.PhoneDetail> values) {
        if (dayPhoneBuilder_ == null) {
          ensureDayPhoneIsMutable();
          super.addAll(values, dayPhone_);
          onChanged();
        } else {
          dayPhoneBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public Builder clearDayPhone() {
        if (dayPhoneBuilder_ == null) {
          dayPhone_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          dayPhoneBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public Builder removeDayPhone(int index) {
        if (dayPhoneBuilder_ == null) {
          ensureDayPhoneIsMutable();
          dayPhone_.remove(index);
          onChanged();
        } else {
          dayPhoneBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public com.bjsxt.hbase.Phone.PhoneDetail.Builder getDayPhoneBuilder(
          int index) {
        return getDayPhoneFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public com.bjsxt.hbase.Phone.PhoneDetailOrBuilder getDayPhoneOrBuilder(
          int index) {
        if (dayPhoneBuilder_ == null) {
          return dayPhone_.get(index);  } else {
          return dayPhoneBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public java.util.List<? extends com.bjsxt.hbase.Phone.PhoneDetailOrBuilder> 
           getDayPhoneOrBuilderList() {
        if (dayPhoneBuilder_ != null) {
          return dayPhoneBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dayPhone_);
        }
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public com.bjsxt.hbase.Phone.PhoneDetail.Builder addDayPhoneBuilder() {
        return getDayPhoneFieldBuilder().addBuilder(
            com.bjsxt.hbase.Phone.PhoneDetail.getDefaultInstance());
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public com.bjsxt.hbase.Phone.PhoneDetail.Builder addDayPhoneBuilder(
          int index) {
        return getDayPhoneFieldBuilder().addBuilder(
            index, com.bjsxt.hbase.Phone.PhoneDetail.getDefaultInstance());
      }
      /**
       * <code>repeated .com.bjsxt.hbase.PhoneDetail DayPhone = 1;</code>
       */
      public java.util.List<com.bjsxt.hbase.Phone.PhoneDetail.Builder> 
           getDayPhoneBuilderList() {
        return getDayPhoneFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.bjsxt.hbase.Phone.PhoneDetail, com.bjsxt.hbase.Phone.PhoneDetail.Builder, com.bjsxt.hbase.Phone.PhoneDetailOrBuilder> 
          getDayPhoneFieldBuilder() {
        if (dayPhoneBuilder_ == null) {
          dayPhoneBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.bjsxt.hbase.Phone.PhoneDetail, com.bjsxt.hbase.Phone.PhoneDetail.Builder, com.bjsxt.hbase.Phone.PhoneDetailOrBuilder>(
                  dayPhone_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          dayPhone_ = null;
        }
        return dayPhoneBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:com.bjsxt.hbase.DayOfPhone)
    }

    static {
      defaultInstance = new DayOfPhone(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:com.bjsxt.hbase.DayOfPhone)
  }

  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_bjsxt_hbase_PhoneDetail_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_bjsxt_hbase_PhoneDetail_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_bjsxt_hbase_DayOfPhone_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_bjsxt_hbase_DayOfPhone_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\013phone.proto\022\017com.bjsxt.hbase\"G\n\013PhoneD" +
      "etail\022\014\n\004dnum\030\001 \002(\t\022\016\n\006length\030\002 \002(\t\022\014\n\004t" +
      "ype\030\003 \002(\t\022\014\n\004date\030\004 \002(\t\"<\n\nDayOfPhone\022.\n" +
      "\010DayPhone\030\001 \003(\0132\034.com.bjsxt.hbase.PhoneD" +
      "etail"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_com_bjsxt_hbase_PhoneDetail_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_com_bjsxt_hbase_PhoneDetail_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_bjsxt_hbase_PhoneDetail_descriptor,
              new java.lang.String[] { "Dnum", "Length", "Type", "Date", });
          internal_static_com_bjsxt_hbase_DayOfPhone_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_com_bjsxt_hbase_DayOfPhone_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_com_bjsxt_hbase_DayOfPhone_descriptor,
              new java.lang.String[] { "DayPhone", });
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}

PhoneCase_practice.java


package com.bjsxt.hbase;

import java.io.IOException;
import java.io.InterruptedIOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
import org.apache.hadoop.hbase.filter.FilterList;
import org.apache.hadoop.hbase.filter.PrefixFilter;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.bjsxt.hbase.Phone.DayOfPhone;
import com.bjsxt.hbase.Phone.PhoneDetail;

/**
 *  电话    小区电话案例 ,   包装对象的 使用。
 * @author asus
 *
 */
public class PhoneCase_practice {
	
	// 表的 管理对象,负责表的 创建,和删除
	HBaseAdmin admin = null;
	// 数据的 管理类
	HTable table = null;
	// 表名
	String tm = "phone2";
	// 列族 
	String familyName = "cf";
	
	@Before 
	public void init() throws MasterNotRunningException, ZooKeeperConnectionException, IOException {
		
		Configuration conf = new Configuration();
		conf.set("hbase.zookeeper.quorum", "node07,node08,node09");
//		conf.set("fs.defaultFs", "hdfs://node06:8020");
//		conf.set("mapreduce.framework.name", "yarn");
//		conf.set("ha.zookeeper.yuorum", "node07,node08,node09");
//		conf.set("yarn.resourcemanager.hostname", "node08");
		admin = new HBaseAdmin(conf);
		table = new HTable(conf, tm.getBytes());
	}
	
	/*
	 *  创建表 phone2
	 */
	@Test
	public void createTable() throws IOException {
		// 表的描述  和 列的 描述
		HTableDescriptor desc = new HTableDescriptor(TableName.valueOf(tm));
		HColumnDescriptor family = new HColumnDescriptor(familyName);
		desc.addFamily(family);
		if (admin.tableExists(tm)) {
			admin.disableTable(tm);
			admin.deleteTable(tm);
		}
		admin.createTable(desc);
	}
	
	Random r = new Random();
	SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
	
	/**
	 * 10个用户 ,每一个用户 每年产生1000个通话记录
	 * dnum : 对放手机号
	 * type : 0主叫    1被叫
	 * length : 长度 
	 * date :时间 
	 * @throws InterruptedIOException 
	 * @throws RetriesExhaustedWithDetailsException 
	 * @throws ParseException 
	 * @throws Exception 
	 */
	@Test
	public void insert() throws RetriesExhaustedWithDetailsException, InterruptedIOException, ParseException {
		List<Put> list = new ArrayList<>();
		for (int i = 0; i < 10; i++) {
			String phoneNumber = getPhone("158");
			for (int j = 0; j < 1000; j++) {
				// 属性
				String dnum = getPhone("177");
				String length = String.valueOf(r.nextInt(99)); // 通话时长
				String type = String.valueOf(r.nextInt(2));
				String date = getDate("2018");
				
				String rowKey = phoneNumber+"_"+String.valueOf(Long.MAX_VALUE-sdf.parse(date).getTime());
				Put put = new Put(rowKey .getBytes());
				put.add(familyName.getBytes(), "dnum".getBytes(), dnum.getBytes());
				put.add(familyName.getBytes(), "length".getBytes(), length.getBytes());
				put.add(familyName.getBytes(), "type".getBytes(), type.getBytes());
				put.add(familyName.getBytes(), "date".getBytes(), date.getBytes());
				list.add(put);
			}
		}
		table.put(list);
	}
	
	/**
	 * 查询 某一个用户 3 月份的 所有用户记录 
	 *  startRow
	 *  stopRow 
	 * @throws ParseException 
	 * @throws IOException 
	 */
	@Test
	public void scan() throws Exception {
		
		String phoneNum = "15894908883";
		String startRow = phoneNum+"_"+String.valueOf(Long.MAX_VALUE-sdf.parse("20180401000000").getTime());
		String stopRow = phoneNum+"_"+String.valueOf(Long.MAX_VALUE-sdf.parse("20180301000000").getTime());;
		
		Scan scan = new Scan();
		scan.setStartRow(startRow.getBytes());
		scan.setStopRow(stopRow.getBytes());
		ResultScanner scanner = table.getScanner(scan);
		for (org.apache.hadoop.hbase.client.Result result : scanner) {
			String dnum = Bytes.toString(CellUtil.cloneValue(result.getColumnLatestCell(familyName.getBytes(), "dnum".getBytes())));
			String length = Bytes.toString(CellUtil.cloneValue(result.getColumnLatestCell(familyName.getBytes(), "length".getBytes())));
			String type = Bytes.toString(CellUtil.cloneValue(result.getColumnLatestCell(familyName.getBytes(), "type".getBytes())));
			String date = Bytes.toString(CellUtil.cloneValue(result.getColumnLatestCell(familyName.getBytes(), "date".getBytes())));
			System.out.println(dnum+ " == "+length+" == "+type+" = "+date);
		}
		scanner.close();
	}
	
	/**
	 * 查看 一个用户  所有的 主叫电话 
	 * 条件 :
	 *     电话号码 
	 *     type  = 0
	 * @throws IOException 
	 */
	@Test
	public void scan2() throws Exception {
		
		FilterList filters = new FilterList(FilterList.Operator.MUST_PASS_ALL);
		SingleColumnValueFilter filter1 = new SingleColumnValueFilter(familyName.getBytes(), "type".getBytes(), CompareOp.EQUAL, "0".getBytes());
		PrefixFilter filter2 = new PrefixFilter("15894908883".getBytes());
		filters.addFilter(filter1);
		filters.addFilter(filter2);
		
		Scan scan = new Scan();
		scan.setFilter(filters);
		ResultScanner scanner = table.getScanner(scan);
		int i = 0;
		for (org.apache.hadoop.hbase.client.Result result : scanner) {
			String dnum = Bytes.toString(CellUtil.cloneValue(result.getColumnLatestCell(familyName.getBytes(), "dnum".getBytes())));
			String length = Bytes.toString(CellUtil.cloneValue(result.getColumnLatestCell(familyName.getBytes(), "length".getBytes())));
			String type = Bytes.toString(CellUtil.cloneValue(result.getColumnLatestCell(familyName.getBytes(), "type".getBytes())));
			String date = Bytes.toString(CellUtil.cloneValue(result.getColumnLatestCell(familyName.getBytes(), "date".getBytes())));
			System.out.println(dnum+ " == "+length+" == "+type+" = "+date);
			i++;
		}
		System.out.println("共有 "+i);
		scanner.close();
	}
	
	
	
	
	private String getPhone(String string) {
		return string+String.format("%08d", r.nextInt(99999999));
	}
	private String getDate(String string) {
		return string+String.format("%02d%02d%02d%02d%02d", r.nextInt(12)+1,r.nextInt(31),
				r.nextInt(24),r.nextInt(60),r.nextInt(60));
	}
	
	
	

	/**
	 * 10个用户  1000条  每一个记录当做一个对对象
	 * @throws ParseException 
	 * @throws InterruptedIOException 
	 * @throws RetriesExhaustedWithDetailsException 
	 */
	@Test
	public void insert2() throws ParseException, RetriesExhaustedWithDetailsException, InterruptedIOException{
		List<Put> puts = new ArrayList<>();
		for(int i = 0;i < 10;i++){
			String phoneNumber = getPhone("158");
			for(int j = 0;j<1000;j++){
				// 属性 
				String dnum = getPhone("177");
				String length = String.valueOf(r.nextInt(99));// 通话时长
				String type = String.valueOf(r.nextInt(2));
				String date = getDate("2018");
				
				// 保存在一个对象中    cf:phoneDail value: phoneDAil
				Phone.PhoneDetail.Builder phoneDetail = Phone.PhoneDetail.newBuilder();
				phoneDetail.setDate(date);
				phoneDetail.setDnum(dnum);
				phoneDetail.setLength(length);
				phoneDetail.setType(type);
				
				
				String rowkey = phoneNumber+"_"+String.valueOf(Long.MAX_VALUE-sdf.parse(date).getTime());
				Put put = new Put(rowkey .getBytes());
				put.add(familyName.getBytes(), "phoneDetail".getBytes(),phoneDetail.build().toByteArray());
				puts.add(put);
			}
		}
		table.put(puts);
	}
	
	@Test
	public void get2() throws IOException {
		Get get = new Get("15814840952_9223370519726076807".getBytes());
		Result result = table.get(get);
		PhoneDetail phoneDetail = Phone.PhoneDetail.parseFrom(CellUtil.cloneValue(result.getColumnLatestCell(familyName.getBytes(), "phoneDetail".getBytes())));
		System.out.println(phoneDetail);
	}
	
	
	
	/**
	 * 10 个用户   ,20181225产生 1000条记录  每一天的记录放在一个rowkey中
	 * 
	 * 把 多个同一个对象1装入 另一个对象2中
	 * @throws Exception 
	 */
	@Test
	public void insert3() throws ParseException, RetriesExhaustedWithDetailsException, InterruptedIOException{
		List<Put> puts = new ArrayList<>();
		for(int i = 0;i < 10;i++){
			String phoneNumber = getPhone("133");
			String rowkey = phoneNumber+"_"+String.valueOf(Long.MAX_VALUE-sdf.parse("20181225000000").getTime());
			Phone.DayOfPhone.Builder dayOfPhone = Phone.DayOfPhone.newBuilder();
			for(int j = 0;j<1000;j++){
				// 属性 
				String dnum = getPhone("177");
				String length = String.valueOf(r.nextInt(99));// 通话时长
				String type = String.valueOf(r.nextInt(2));
				String date = getDate2("20181225");
				
				// 保存在一个对象中    cf:phoneDail value: phoneDAil
				Phone.PhoneDetail.Builder phoneDetail = Phone.PhoneDetail.newBuilder();
				phoneDetail.setDate(date);
				phoneDetail.setDnum(dnum);
				phoneDetail.setLength(length);
				phoneDetail.setType(type);
				dayOfPhone.addDayPhone(phoneDetail);
				
			}
			Put put = new Put(rowkey.getBytes());
			put.add(familyName.getBytes(), "dayOfPhone".getBytes(),dayOfPhone.build().toByteArray());
			puts.add(put);    // 10 条数据
		}
		table.put(puts);
	}
	
	@Test
	public void get3() throws IOException {
		Get get = new Get("13324399746_9223370491187575807".getBytes());  // 获取row
		Result result = table.get(get);
		DayOfPhone dayOfPhone = Phone.DayOfPhone.parseFrom(CellUtil.cloneValue(result.getColumnLatestCell(familyName.getBytes(), "dayOfPhone".getBytes())));
		
		List<PhoneDetail> dayPhoneList = dayOfPhone.getDayPhoneList();
		for (PhoneDetail phoneDetail : dayPhoneList) {
			System.out.println(phoneDetail);
		}
	}
	
	@SuppressWarnings("unused")
	private String getDate2(String string) {
		return string+String.format("%02d%02d%02d", r.nextInt(24),r.nextInt(60),r.nextInt(60));
	}

	/**
	 * 
	 * @throws IOException
	 */
	@After
	public void destory() throws IOException{
		if (admin!=null){
			admin.close();
		}
	}
	
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下次遇见说你好

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值