IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> HBase简单(初级)学生信息系统 -> 正文阅读

[大数据]HBase简单(初级)学生信息系统

上课跟着老师做的简单学生信息HBase数据库

首先对操作数据库的方法进行封装;创建命名空间、创建表、插入数据、查询数据、删除数据

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;

import java.io.IOException;

public class HbaseUtil {
    // 连接
    public static Connection GetConn() throws IOException {
        Configuration conf = HBaseConfiguration.create();
        Connection connection = ConnectionFactory.createConnection(conf);
        return connection;
    }
    // 操作对象
    public static Admin GetAdmin() throws IOException {
        return GetConn().getAdmin();
    }
    // 创建命名空间
    public static boolean Exec_CreateNameSpace(String name) throws IOException {
        try {
            GetAdmin().getNamespaceDescriptor(name);
            return true;
        } catch (NamespaceNotFoundException e) {
            NamespaceDescriptor build = NamespaceDescriptor.create(name).build();
            GetAdmin().createNamespace(build);
            return true;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return false;
    }
    // 创建表
    public static boolean Exec_CreateTable(String name, String info) throws IOException {
        TableName tableName = TableName.valueOf(name);
        if(GetAdmin().tableExists(tableName) == false){
            HTableDescriptor hTableDescriptor = new HTableDescriptor(tableName);
            HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(info);
            hTableDescriptor.addFamily(hColumnDescriptor);
            GetAdmin().createTable(hTableDescriptor);
            return true;
        }
        return false;

    }
    // 添加数据
    public static boolean Exec_AddData(String tableName, String info, String rowkey, String column, String value) throws IOException {
        try{
            Put put = new Put(Bytes.toBytes(rowkey));
            put.addColumn(Bytes.toBytes(info), Bytes.toBytes(column), Bytes.toBytes(value));
            GetConn().getTable(TableName.valueOf(tableName)).put(put);
            return true;
        }catch (Exception ex){
            return false;
        }

    }
    // 查询数据
    public static Result Exec_GetDataByRowKey(String tablename, String rowkey) throws IOException {
        Get get = new Get(Bytes.toBytes(rowkey));
        Result result = GetConn().getTable(TableName.valueOf(tablename)).get(get);
        return result;
    }
    // 删除数据(行键)(单元格)
    public static boolean Exec_DelByRowKey(String tablename, String rowkey) throws IOException {
        Result result = Exec_GetDataByRowKey(tablename, rowkey);
        if(!result.isEmpty()){
            Delete delete = new Delete(Bytes.toBytes(rowkey));
            GetConn().getTable(TableName.valueOf(tablename)).delete(delete);
            return true;
        }else {
            return false;
        }
    }
    // 删除数据(单元格)
    public static boolean Exec_DelByRowKey(String tablename, String rowkey, String info, String column) throws IOException {
        Result result = Exec_GetDataByRowKey(tablename, rowkey);
        if(!result.isEmpty()){
            Delete delete = new Delete(Bytes.toBytes(rowkey));
            delete.addColumn(Bytes.toBytes(info), Bytes.toBytes(column));
            GetConn().getTable(TableName.valueOf(tablename)).delete(delete);
            return true;
        }else {
            return false;
        }
    }
}

然后调用封装好的方法进行简单的学生信息增删改查

import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;

import java.io.IOException;
import java.util.Scanner;

public class TestDemo {
    static String tablname = "MySchool:stuinfo";
    public static void main(String[] args) throws IOException {
        HbaseUtil.Exec_CreateNameSpace("MySchool");
        HbaseUtil.Exec_CreateTable("MySchool:stuinfo", "info");
        while (true) {
            System.out.println("欢迎访问学生管理信息系统");
            System.out.println("1、注册学生信息");
            System.out.println("2、查看学生信息");
            System.out.println("3、删除学生信息");
            System.out.println("4、修改学生信息");
            Scanner scanner = new Scanner(System.in);
            String choice = scanner.next();
            switch (choice) {
                case "1":
                    System.out.println("调用注册的方法");
                    AddStu();
                    break;
                case "2":
                    System.out.println("调用查看的方法");
                    GetStu();
                    break;
                case "3":
                    System.out.println("调用删除的方法");
                    DelStu();
                    break;
                case "4":
                    System.out.println("调用修改的方法");
                    ChangeStu();
                    break;
            }
        }
    }
    public static void AddStu() throws IOException {
        System.out.println("----------------------------------------------------------------------------");
        System.out.println("这里是学生的注册功能界面");
        System.out.println("请输入学号:");
        Scanner scanner = new Scanner(System.in);
        String stuid = scanner.next();
        System.out.println("请输入姓名:");
        String stuname= scanner.next();
        System.out.println("请输入年龄:");
        String stuage = scanner.next();
        boolean r1 = HbaseUtil.Exec_AddData("MySchool:stuinfo", "info", stuid, "stuid", stuid);
        boolean r2 = HbaseUtil.Exec_AddData("MySchool:stuinfo", "info", stuid, "name", stuname);
        boolean r3 = HbaseUtil.Exec_AddData("MySchool:stuinfo", "info", stuid, "age", stuage);
        if(r1&&r2&&r3){
            System.out.println("注册成功!!");
        }
    }

    public static void DelStu() throws IOException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("----------------------------------------------------------------------------");
        System.out.println("这里是学生的删除功能界面");
        System.out.println("请选择:1、删除整个学生信息 2、删除单个列");
        String chioce = scanner.next();
        String stuid = "";
        if(chioce.equals("1")){
            System.out.println("请输入学号:");
            stuid = scanner.next();
            boolean r = HbaseUtil.Exec_DelByRowKey("MySchool:stuinfo", stuid);
            if(r){
                System.out.println("删除成功!!");
            }
        }else {
            System.out.println("请输入学号:");
            stuid = scanner.next();
            System.out.println("请输入要删除的列(stuid, name, age):");
            String delColumn = scanner.next();
            boolean r = HbaseUtil.Exec_DelByRowKey("MySchool:stuinfo", stuid, "info", delColumn);
            if(r){
                System.out.println("删除成功!!");
            }
        }
    }
    public static void GetStu() throws IOException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("----------------------------------------------------------------------------");
        System.out.println("这里是学生的查看功能界面");
        System.out.println("请输入学号:");
        String stuid = scanner.next();
        Result result = HbaseUtil.Exec_GetDataByRowKey("MySchool:stuinfo", stuid);
        if(result.isEmpty()){
            System.out.println("没有该学生");
        }else {
            for (Cell cell : result.rawCells()){
                System.out.println(Bytes.toString(CellUtil.cloneQualifier(cell)) + ":" + Bytes.toString(CellUtil.cloneValue(cell)));
            }
        }
    }

public static void ChangeStu() throws IOException {
    System.out.println("----------------------------------------------------------------------------");
    System.out.println("这里是学生信息的修改功能界面");
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入学号:");
    String stuid = scanner.next();
    Result result = HbaseUtil.Exec_GetDataByRowKey("MySchool:stuinfo", stuid);
    if(result.isEmpty()){
        System.out.println("没有该学生");
    }else {
        for (Cell cell : result.rawCells()){
            System.out.println(Bytes.toString(CellUtil.cloneQualifier(cell)) + ":" + Bytes.toString(CellUtil.cloneValue(cell)));
        }
    }
    System.out.println("请选择:1、修改名字 2、修改年龄");
    String chioce = scanner.next();
    if(chioce.equals("1")){
        System.out.println("请输入姓名:");
        String stuname = scanner.next();
        boolean r = HbaseUtil.Exec_AddData("MySchool:stuinfo", "info", stuid, "name", stuname);
        if(r){
            System.out.println("修改成功!!");
        }
    }else {
        System.out.println("请输入年龄:");
        String stuage = scanner.next();
        boolean r = HbaseUtil.Exec_AddData("MySchool:stuinfo", "info", stuid, "age", stuage);
        if(r){
            System.out.println("修改成功!!");
        }
    }
    }


}

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-28 11:22:04  更:2021-11-28 11:23:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:04:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码