package shangke;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException; import shangke.ExampleForHbase; import javax.swing.*; public class test extends JFrame
{
//控件
JLabel jb1 = new JLabel();
JTextField platName = new JTextField(15);
JLabel jb2 = new JLabel();
JTextField platNumber = new JTextField(15);
JLabel jb3=new JLabel();
JTextField date = new JTextField(15);
JLabel jb4=new JLabel();
JTextField number = new JTextField(15);
JLabel jb5=new JLabel();
JTextField tec = new JTextField(15);
//定义
FlowLayout flow = new FlowLayout();
JTextArea jt1 = new JTextArea();
JButton button = new JButton();
JButton button1 = new JButton();
JButton button2 = new JButton();
JButton button3 = new JButton();
public test()
{
try
{
jbInit();
}
catch (Exception e)
{
e.printStackTrace();
}
} private void jbInit()throws Exception
{
setSize(new Dimension(260,200));
getContentPane().setLayout(flow);
jb1.setText("平台名称");
platName.setText("");
jb2.setText("平台编号");
platNumber.setText("");
jb3.setText("批准年月");
date.setText("");
jb4.setText("批准文号");
number.setText("");
jb5.setText("技术领域");
tec.setText("");
jt1.setText("");
button.setText("插入");
button1.setText("删除");
button2.setText("修改");
button3.setText("查询");
button.addActionListener(new test_jButton1_actionAdapter(this));
button1.addActionListener(new test_jButton2_actionAdapter(this));
button2.addActionListener(new test_jButton3_actionAdapter(this));
button3.addActionListener(new test_jButton4_actionAdapter(this));
this.getContentPane().add(jb1);
this.getContentPane().add(platName);
this.getContentPane().add(jb2);
this.getContentPane().add(platNumber);
this.getContentPane().add(jb3);
this.getContentPane().add(date);
this.getContentPane().add(jb4);
this.getContentPane().add(number);
this.getContentPane().add(jb5);
this.getContentPane().add(tec);
this.getContentPane().add(button);
this.getContentPane().add(button1);
this.getContentPane().add(button2);
this.getContentPane().add(button3); } public static void main(String[] args)
{
test test=new test();
test.setVisible(true);
}
} class test_jButton1_actionAdapter implements ActionListener
{
private test adaptee;
test_jButton1_actionAdapter(test adaptee)
{
this.adaptee=adaptee;
}
public void actionPerformed(ActionEvent e)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e2)
{
e2.printStackTrace();
}
String platName=adaptee.platName.getText();
String platNumber=adaptee.platNumber.getText();
//adaptee.jt1.setText("您的用户名是:"+username+"您的输入密码是:"+String.valueOf(pwd));
String date=adaptee.date.getText();
String number=adaptee.number.getText();
String tec=adaptee.tec.getText();
try
{
ExampleForHbase.insertRow("Test", "1", "platName", "", platName);
ExampleForHbase.insertRow("Test", "1", "platNumber", "", platNumber);
ExampleForHbase.insertRow("Test", "1", "date", "", date);
ExampleForHbase.insertRow("Test", "1", "number", "", number);
ExampleForHbase.insertRow("Test", "1", "tec", "", tec);
JOptionPane.showMessageDialog(adaptee,"插入成功");
}
catch (IOException e)
{
e.printStackTrace();
}
} });
}
}
//delete
class test_jButton2_actionAdapter implements ActionListener
{
private test adaptee;
test_jButton2_actionAdapter(test adaptee)
{
this.adaptee=adaptee;
}
public void actionPerformed(ActionEvent e)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e2)
{
e2.printStackTrace();
}
String str=JOptionPane.showInputDialog("请输入要删除的平台编号");
try
{
ExampleForHbase.deleteRow("Test", "1", "", "");
JOptionPane.showMessageDialog(adaptee,"删除成功");
}
catch (IOException e)
{
e.printStackTrace();
}
} });
}
}
//update
class test_jButton3_actionAdapter implements ActionListener
{
private test adaptee;
test_jButton3_actionAdapter(test adaptee)
{
this.adaptee=adaptee;
}
public void actionPerformed(ActionEvent e)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e2)
{
e2.printStackTrace();
}
String str=JOptionPane.showInputDialog("请输入要修改的平台编号");
try
{
if(ExampleForHbase.getData("Test", "1", "platName", "")!=null)
{
ExampleForHbase.deleteRow("Test", "1", "", "");
String str1=JOptionPane.showInputDialog("请输入要修改的平台编号");
String str2=JOptionPane.showInputDialog("请输入要修改的平台名称");
String str3=JOptionPane.showInputDialog("请输入要修改的批准年月");
String str4=JOptionPane.showInputDialog("请输入要修改的批准文号");
String str5=JOptionPane.showInputDialog("请输入要修改的技术领域");
ExampleForHbase.insertRow("Test", "1", "platName", "", str1);
ExampleForHbase.insertRow("Test", "1", "platNumber", "", str2);
ExampleForHbase.insertRow("Test", "1", "date", "", str3);
ExampleForHbase.insertRow("Test", "1", "number", "", str4);
ExampleForHbase.insertRow("Test", "1", "tec", "", str5);
JOptionPane.showMessageDialog(adaptee,"修改成功");
}
else
{
JOptionPane.showMessageDialog(adaptee,"所要修改的不存在");
}
}
catch (IOException e)
{
e.printStackTrace();
}
} });
}
}
//select
class test_jButton4_actionAdapter implements ActionListener
{
private test adaptee;
test_jButton4_actionAdapter(test adaptee)
{
this.adaptee=adaptee;
}
public void actionPerformed(ActionEvent e)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e2)
{
e2.printStackTrace();
}
try
{
String str=JOptionPane.showInputDialog("请输入要查询的平台编号"); String platName=ExampleForHbase.getData("Test", "1", "platName", "");
String platNumber=ExampleForHbase.getData("Test", "1", "platNumber", "");
String date=ExampleForHbase.getData("Test", "1", "date", "");
String number=ExampleForHbase.getData("Test", "1", "number", "");
String tec=ExampleForHbase.getData("Test", "1", "tec", "");
if(platName==null)
{
JOptionPane.showMessageDialog(adaptee,"查询为空");
}
else
{
JOptionPane.showMessageDialog(adaptee,"平台名称:"+platName+"\n平台编号:"+platNumber+"\n批准年月:"+date+"\n批准文号:"+number+"\n技术领域:"+tec);
}
}
catch (IOException e)
{
e.printStackTrace();
}
} });
}
}
package shangke;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import java.io.IOException; public class ExampleForHbase{
public static Configuration configuration;
public static Connection connection;
public static Admin admin; //主函数中的语句请逐句执行,只需删除其前的//即可,如:执行insertRow时请将其他语句注释
public static void main(String[] args)throws IOException{
//创建一个表,表名为Score,列族为sname,course
//createTable("Test",new String[]{"platName","platNumber","date","number","tec"}); //在Score表中插入一条数据,其行键为95001,sname为Mary(因为sname列族下没有子列所以第四个参数为空)
//等价命令:put 'Score','95001','sname','Mary'
//insertRow("Score", "95001", "sname", "", "Mary");
//在Score表中插入一条数据,其行键为95001,course:Math为88(course为列族,Math为course下的子列)
//等价命令:put 'Score','95001','score:Math','88'
//insertRow("Score", "95001", "course", "Math", "88");
//在Score表中插入一条数据,其行键为95001,course:English为85(course为列族,English为course下的子列)
//等价命令:put 'Score','95001','score:English','85'
//insertRow("Score", "95001", "course", "English", "85"); //1、删除Score表中指定列数据,其行键为95001,列族为course,列为Math
//执行这句代码前请deleteRow方法的定义中,将删除指定列数据的代码取消注释注释,将删除制定列族的代码注释
//等价命令:delete 'Score','95001','score:Math'
//deleteRow("Score", "95001", "course", "Math"); //2、删除Score表中指定列族数据,其行键为95001,列族为course(95001的Math和English的值都会被删除)
//执行这句代码前请deleteRow方法的定义中,将删除指定列数据的代码注释,将删除制定列族的代码取消注释
//等价命令:delete 'Score','95001','score'
//deleteRow("Score", "95001", "course", ""); //3、删除Score表中指定行数据,其行键为95001
//执行这句代码前请deleteRow方法的定义中,将删除指定列数据的代码注释,以及将删除制定列族的代码注释
//等价命令:deleteall 'Score','95001'
//deleteRow("Score", "95001", "", ""); //查询Score表中,行键为95001,列族为course,列为Math的值
//getData("Score", "95001", "course", "Math");
//查询Score表中,行键为95001,列族为sname的值(因为sname列族下没有子列所以第四个参数为空)
getData("Test", "1", "tec", ""); //删除Score表
//deleteTable("Score");
} //建立连接
public static void init(){
configuration = HBaseConfiguration.create();
configuration.set("hbase.rootdir","hdfs://192.168.180.128:9000/hbase");
try{
connection = ConnectionFactory.createConnection(configuration);
admin = connection.getAdmin();
}catch (IOException e){
e.printStackTrace();
}
}
//关闭连接
public static void close(){
try{
if(admin != null){
admin.close();
}
if(null != connection){
connection.close();
}
}catch (IOException e){
e.printStackTrace();
}
} /**
* 建表。HBase的表中会有一个系统默认的属性作为主键,主键无需自行创建,默认为put命令操作中表名后第一个数据,因此此处无需创建id列
* @param myTableName 表名
* @param colFamily 列族名
* @throws IOException
*/
public static void createTable(String myTableName,String[] colFamily) throws IOException { init();
TableName tableName = TableName.valueOf(myTableName); if(admin.tableExists(tableName)){
System.out.println("talbe is exists!");
}else {
HTableDescriptor hTableDescriptor = new HTableDescriptor(tableName);
for(String str:colFamily){
HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(str);
hTableDescriptor.addFamily(hColumnDescriptor);
}
admin.createTable(hTableDescriptor);
System.out.println("create table success");
}
close();
}
/**
* 删除指定表
* @param tableName 表名
* @throws IOException
*/
public static void deleteTable(String tableName) throws IOException {
init();
TableName tn = TableName.valueOf(tableName);
if (admin.tableExists(tn)) {
admin.disableTable(tn);
admin.deleteTable(tn);
}
close();
} /**
* 查看已有表
* @throws IOException
*/
public static void listTables() throws IOException {
init();
HTableDescriptor hTableDescriptors[] = admin.listTables();
for(HTableDescriptor hTableDescriptor :hTableDescriptors){
System.out.println(hTableDescriptor.getNameAsString());
}
close();
}
/**
* 向某一行的某一列插入数据
* @param tableName 表名
* @param rowKey 行键
* @param colFamily 列族名
* @param col 列名(如果其列族下没有子列,此参数可为空)
* @param val 值
* @throws IOException
*/
public static void insertRow(String tableName,String rowKey,String colFamily,String col,String val) throws IOException {
init();
Table table = connection.getTable(TableName.valueOf(tableName));
Put put = new Put(rowKey.getBytes());
put.addColumn(colFamily.getBytes(), col.getBytes(), val.getBytes());
table.put(put);
table.close();
close();
} /**
* 删除数据
* @param tableName 表名
* @param rowKey 行键
* @param colFamily 列族名
* @param col 列名
* @throws IOException
*/
public static void deleteRow(String tableName,String rowKey,String colFamily,String col) throws IOException {
init();
Table table = connection.getTable(TableName.valueOf(tableName));
Delete delete = new Delete(rowKey.getBytes());
//删除指定列族的所有数据
//delete.addFamily(colFamily.getBytes());
//删除指定列的数据
//delete.addColumn(colFamily.getBytes(), col.getBytes()); table.delete(delete);
table.close();
close();
}
/**
* 根据行键rowkey查找数据
* @param tableName 表名
* @param rowKey 行键
* @param colFamily 列族名
* @param col 列名
* @throws IOException
*/
public static String getData(String tableName,String rowKey,String colFamily,String col)throws IOException{
String str = null;
init();
Table table = connection.getTable(TableName.valueOf(tableName));
Get get = new Get(rowKey.getBytes());
get.addColumn(colFamily.getBytes(),col.getBytes());
Result result = table.get(get);
showCell(result);
Cell[] cells = result.rawCells();
for(Cell cell:cells)
{
str=new String(CellUtil.cloneValue(cell),"UTF-8");
}
table.close();
close();
return str;
}
/**
* 格式化输出
* @param result
*/
public static void showCell(Result result)
{
Cell[] cells = result.rawCells();
for(Cell cell:cells){
System.out.println(new String(CellUtil.cloneValue(cell))+" ");
}
}
}

简单窗口与hbase数据库相连的更多相关文章

  1. HBase数据库集群配置

    0,HBase简介 HBase是Apache Hadoop中的一个子项目,是一个HBase是一个开源的.分布式的.多版本的.面向列的.非关系(NoSQL)的.可伸缩性分布式数据存储模型,Hbase依托 ...

  2. pyqt5之简单窗口的创建

    在学完tkinter后,发现tkinter在布局方面特别的不方便(Tkinter资料:http://effbot.org/tkinterbook/tkinter-index.htm),因此学习pyqt ...

  3. HBase数据库相关基本知识

    HBase数据库相关知识 1. HBase相关概念模型 l  表(table),与关系型数据库一样就是有行和列的表 l  行(row),在表里数据按行存储.行由行键(rowkey)唯一标识,没有数据类 ...

  4. HBase数据库集群配置【转】

    https://www.cnblogs.com/ejiyuan/p/5591613.html HBase简介 HBase是Apache Hadoop中的一个子项目,是一个HBase是一个开源的.分布式 ...

  5. 一文让您全面了解清楚HBase数据库的所有知识点,值得收藏!

    一.HBase基本概念:列式数据库 在Hadoop生态体系结构中,HBase位于HDFS(Hadoop分布式文件系统)的上一层,不依赖于MapReduce,那么如果没有HBase这种Nosql数据库会 ...

  6. 【转载】HBase 数据库检索性能优化策略

    转自:http://www.ibm.com/developerworks/cn/java/j-lo-HBase/index.html 高性能 HBase 数据库 本文首先介绍了 HBase 数据库基本 ...

  7. HBase 数据库检索性能优化策略--转

    https://www.ibm.com/developerworks/cn/java/j-lo-HBase/index.html HBase 数据表介绍 HBase 数据库是一个基于分布式的.面向列的 ...

  8. php框架中的phalcon框架的安装,及初步认识,从表单提交简单的数据到数据库中

    php框架中的phalcon框架的安装,及初步认识,从表单提交简单的数据到数据库中 1.phalcon框架的安装: phalcon框架在windows本地安装可以利用wamp软件,安装之后可以查看对应 ...

  9. HBase数据库增删改查常用命令操作

    最近测试用到了Hbase数据库,新建一个学生表,对表进行增删改查操作,把常用命令贴出来分享给大家~ 官方API:https://hbase.apache.org/book.html#quickstar ...

随机推荐

  1. xampp 安装以及相关问题

    1.安装xampp   说明:xampp集成了mysql,Apache,php,360软件里面就有 2.mysql端口被占用.              如果电脑上已安装MySql数据库,还想用XAM ...

  2. axure--中继器

    *****中继器-repeater*****1.结构:类似于MVC(增删查改)1)中继器数据集:可包括图片.文字.网址(页面)(右键添加,列名尽量使用英 文或拼音) 2)中继器格式:横向.纵向(是否换 ...

  3. SQL Server控制执行计划

    为了提高性能,可以使用提示(hints)特性,包含以下三类: 查询提示:(query hints)告知优化器在整个查询过程中都应用某个提示 关联提示:(join hints)告知优化器在查询的特定部分 ...

  4. java.net.ConnectException: Call From slaver1/192.168.19.128 to slaver1:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org

    1:练习spark的时候,操作大概如我读取hdfs上面的文件,然后spark懒加载以后,我读取详细信息出现如下所示的错误,错误虽然不大,我感觉有必要记录一下,因为错误的起因是对命令的不熟悉造成的,错误 ...

  5. Ansible playbook 部署filebeat

    - hosts: all tasks: - name: Copy Package copy: src=/usr/local/filebeat--linux-x86_64.tar.gz dest=/us ...

  6. DBEntityEntry类

    DBEntityEntry是一个重要的类,可用于检索有关实体的各种信息.您可以使用DBContext的Entry方法获取特定实体的DBEntityEntry实例. DBEntityEntry允许您访问 ...

  7. Unicode字符编码表

    十进制 十六进制  字符数 编码分类(中文) 编码分类(英文) 起始 终止 起始 终止 (个)     0 127 0000 007F 128 C0控制符及基本拉丁文 C0 Control and B ...

  8. 彻底明确怎样设置minSdkVersion和targetSdkVersion

    minSdkVersion和targetSdkVersion相信非常多人都不太理解.我在网上也看了很多关于这两者差别的文章,感觉说的都非常模糊.直到我在stackOverFlow看到Android M ...

  9. 经典平衡二叉树(AVL树)

    二叉查找树(BSTree)中进行查找.插入和删除操作的时间复杂度都是O(h),其中h为树的高度.BST的高度直接影响到操作实现的性能,最坏情况下,二叉查找树会退化成一个单链表,比如插入的节点序列本身就 ...

  10. 最长k可重区间集问题&&最长k可重线段集问题

    题解: 洛谷上这两题的题意都是有问题的 按照标程题意不应该是开区间而是左开右闭区间 然后连边比较巧妙 我们可以看成选k条不相交的路径,其中i-i+1中有k条边 所以建图i-i+1流量为k,权值为0 l ...