HBase的ORM框架应用

在GitHub上有一个ORM for HBase 的开源应用,下载地址为:https://github.com/wlu-mstr/hbase-ormlite

本人对这个框架进行了简单改造,使用方法如下

1、定义持久类

import java.io.Serializable;
import com.orm.hbase.annotation.DatabaseTable;
import com.orm.hbase.annotation.DatabaseField;

@DatabaseTable(tableName = "Student") //在HBase中对应的表名
public class Student implements Serializable {
    
    private static final long serialVersionUID = 123L;
    
    @DatabaseField(id = true)
    private String id;
    @DatabaseField(familyName = "name")
    private String name;
    @DatabaseField(familyName = "pass")
    private String pass;
    @DatabaseField(familyName = "sex")
    private String sex;
    @DatabaseField(familyName = "age")
    private String age;
    
    public Student() {}

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPass() {
        return pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }    
}

 

2、访问客户端

import com.orm.hbase.connection.HBaseConnection;
import com.orm.hbase.dao.Dao;
import com.orm.hbase.dao.DaoImpl;
import com.orm.hbase.exceptions.HBaseOrmException;
import com.orm.hbase.schema.value.StringValue;

public class Client {

    public static void main(String[] args) {

        HBaseConnection hbaseconnection = new HBaseConnection("wlu-hadoop01", "2181", 10);

        try {
            Dao<Student> stuDao = new DaoImpl<Student>(Student.class, hbaseconnection);
            Student stu = new Student();
            stu.setId("123456789");
            stu.setName("xiaoming");
            stu.setPass("123");
            stu.setSex("male");
            stu.setAge("15");
            stuDao.CreateTableIfNotExist();

            // 插入数据
            stuDao.Insert(stu);

            // 根据ID查找
            Student student = stuDao.QueryById(new StringValue("123456789"));

            // 根据ID删除
            stuDao.DeleteById(new StringValue("123456789"));

        } catch (HBaseOrmException e) {
            e.printStackTrace();
        }

    }

}

 

posted @ 2013-09-21 09:43  王彦鸿  Views(1101)  Comments(0)    收藏  举报