zoukankan      html  css  js  c++  java
  • 完成在本机远程连接HBase进行数据增删改查

    1.进行hbase与本机远程连接测试连接

    1.1 修改虚拟机文件hbase-site.xml(cd/usr/local/hbase/conf)文件,把localhost换成你的虚拟机主机名字

    1.2修改虚拟机hosts文件,把以前的注释掉,并加上ip地址与主机名的映射关系

    1.3修改主机hosts文件 同上

    1.4 测试连接

    package model;
    
    import java.io.IOException;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.*;
    import org.apache.hadoop.hbase.Cell;
    import org.apache.hadoop.hbase.CellUtil;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.HColumnDescriptor;
    import org.apache.hadoop.hbase.HTableDescriptor;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.*;
    import org.apache.hadoop.hbase.client.Connection;
    import org.apache.hadoop.hbase.client.ConnectionFactory;
    import org.apache.hadoop.hbase.client.Put;
    import org.apache.hadoop.hbase.client.Scan;
    import org.apache.hadoop.hbase.client.Table;
    import org.apache.hadoop.hbase.util.Bytes;
    import org.apache.hadoop.io.IOUtils;
    import org.apache.hadoop.util.Progressable;
    public class HelloHBase {
         public static Configuration configuration;
         public static Connection connection;
         public static Admin admin;
         public static long ts;
         
         //建立连接
            public static void init(){
                configuration  = HBaseConfiguration.create();
                configuration.set("hbase.zookeeper.quorum","192.168.146.128"); 
                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 表名
             * @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();
            }
          
         public static void main(String [] args)throws IOException { 
             createTable("platform",new String[]{"article","PId","Pnum","approval_num","techField","PLevel","city","JJJGJ","Pform","faren_type","unite"});
             //在Score表中插入一条数据,其行键为95001,sname为Mary(因为sname列族下没有子列所以第四个参数为空)
             //等价命令:put 'Score','95001','sname','Mary'
             //insertRow("platform", "2", "Pname", "", "KYL");
             //在Score表中插入一条数据,其行键为95001,course:Math为88(course为列族,Math为course下的子列)
             //等价命令:put 'Score','95001','score:Math','88'
             //insertRow("platform", "2", "PId", "", "2");
             //在Score表中插入一条数据,其行键为95001,course:English为85(course为列族,English为course下的子列)
             //等价命令:put 'Score','95001','score:English','85'
             //insertRow("platform", "2", "Pnum", "", "2019-1-25");
             //insertRow("platform", "2", "approval_num", "", "123-456");
             //insertRow("platform", "2", "techField", "", "心理");
             //insertRow("platform", "2", "PLevel", "", "国家级");
             //insertRow("platform", "2", "city", "", "湖南长沙岳麓区");
             //insertRow("platform", "2", "JJJGJ", "", "是");
             //insertRow("platform", "2", "Pform", "", "内设机构相对独立");
             //insertRow("platform", "2", "faren_type", "", "事业法人");
             //insertRow("platform", "2", "unite", "", "多单位联合共建");
         }
    }

    成功会控制台输出 create table success

    2.Java api实例操作增删改查

    系统流程为:填表->根据平台编号查看平台相关信息->根据平台编号修改信息->根据平台编号删除信息

    遇到的问题见上个博客,一定要注意HBase与tomcat的包会有冲突

    还有几个值得注意的是:hbase的包在写web界面要放到WEB-INF/lib下

     几个界面截图如下:

    model包

    package model;
    
    import java.sql.Date;
    
    public class platform {
    	private String Pname;  //楠炲啿褰撮崥宥囆�
    	private String PId; //楠炲啿褰寸紓鏍у娇
    	private String Pnum;//閹电懓鍣�獮瀛樻箑
    	private String approval_num; //閹电懓鍣�弬鍥у娇
    	private String techField; //閹讹拷閺堫垶顣�崺锟�
    	private String PLevel; //楠炲啿褰寸痪褍鍩�
    	private String city;//閹碉拷閸︺劌绔堕崠锟�
    	private String JJJGJ;//娴滎剚瑙﹂崘锟介崗鍗炵紦
    	private String Pform;//楠炲啿褰寸紒鍕�矏瑜般垹绱�
    	private String faren_type;//濞夋洑姹夌猾璇茬��
    	private String unite; //閼辨柨鎮庨崗鍗炵紦
    	public platform(String Pname, String Pnum, String approval_num, String techField, String PLevel, String city, String Pform, String faren_type, String unite, String JJJGJ) {
    		this.Pname = Pname;
    		this.Pnum = Pnum;
    		this.approval_num = approval_num;
    		this.techField = techField;
    		this.PLevel = PLevel;
    		this.city = city;
    		this.JJJGJ = JJJGJ;
    		this.Pform = Pform;
    		this.faren_type = faren_type;
    		this.unite = unite;
    	}
    	public platform() {
    		
    	}
    	public String getPname() {
    		return Pname;
    	}
    	public void setPname(String pname) {
    		Pname = pname;
    	}
    	
    	
    	public String getPId() {
    		return PId;
    	}
    	public void setPId(String pId) {
    		PId = pId;
    	}
    	public String getPnum() {
    		return Pnum;
    	}
    	public void setPnum(String pnum) {
    		Pnum = pnum;
    	}
    	public String getApproval_num() {
    		return approval_num;
    	}
    	public void setApproval_num(String approval_num) {
    		this.approval_num = approval_num;
    	}
    	public String getTechField() {
    		return techField;
    	}
    	public void setTechField(String techField) {
    		this.techField = techField;
    	}
    	public String getCity() {
    		return city;
    	}
    	public void setCity(String city) {
    		this.city = city;
    	}
    	public String getPLevel() {
    		return PLevel;
    	}
    	public void setPLevel(String pLevel) {
    		PLevel = pLevel;
    	}
    	public String getJJJGJ() {
    		return JJJGJ;
    	}
    	public void setJJJGJ(String jJJGJ) {
    		JJJGJ = jJJGJ;
    	}
    	public String getPform() {
    		return Pform;
    	}
    	public void setPform(String pform) {
    		Pform = pform;
    	}
    	public String getFaren_type() {
    		return faren_type;
    	}
    	public void setFaren_type(String faren_type) {
    		this.faren_type = faren_type;
    	}
    	public String getUnite() {
    		return unite;
    	}
    	public void setUnite(String unite) {
    		this.unite = unite;
    	}
    	
    }
    

      

    dao层

    package dao;
    import java.io.IOException;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.*;
    import org.apache.hadoop.hbase.Cell;
    import org.apache.hadoop.hbase.CellUtil;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.HColumnDescriptor;
    import org.apache.hadoop.hbase.HTableDescriptor;
    import org.apache.hadoop.hbase.KeyValue;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.*;
    import org.apache.hadoop.hbase.util.Bytes;
    import org.apache.hadoop.io.IOUtils;
    import org.apache.hadoop.util.Progressable;
    
    
    import model.platform;
    public class PlatformDao {
    	 public static Configuration configuration;
    	 public static Connection connection;
    	 public static Admin admin;
    	 public static long ts;
    	 
    	 //建立连接
    	    public static void init(){
    	        configuration  = HBaseConfiguration.create();
    	        configuration.set("hbase.zookeeper.quorum","192.168.146.128"); 
    	        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();
    	        }
    	    }
    	  
    	    @SuppressWarnings("deprecation")
    		public  platform  get(String tableName,String rowKey) {
    	    	 init();
    	    	 Table table = null;
    	    	 platform platform = new platform();
    			try {
    				table = connection.getTable(TableName.valueOf(tableName));
    				 Get get = new Get(rowKey.getBytes());
    		         
    		         Result result = table.get(get);
    		         
    		         KeyValue[] raw = result.raw();
    		         platform.setPId(new String(raw[1].getValue()) );
    		         platform.setPname(new String(raw[4].getValue()) );
    		         platform.setPnum(new String(raw[5].getValue()) );
    		         platform.setApproval_num(new String(raw[6].getValue()) );
    		         platform.setTechField(new String(raw[9].getValue()) );
    		         platform.setPLevel(new String(raw[2].getValue()) );
    		         platform.setCity(new String(raw[7].getValue()) );
    		         platform.setJJJGJ(new String(raw[0].getValue()) );
    		         platform.setPform(new String(raw[3].getValue()) );
    		         platform.setFaren_type(new String(raw[8].getValue()) );
    		         platform.setUnite(new String(raw[10].getValue()) );
    		         System.out.println("平台编号:"+platform.getPId());
    		         System.out.println("平台姓名:"+platform.getPname());
    		         System.out.println("批准年月:"+platform.getPnum());
    		         System.out.println("批准文号:"+platform.getApproval_num());
    		         System.out.println("技术领域:"+platform.getTechField());
    		         System.out.println("平台等级:"+platform.getPLevel());
    		         System.out.println("所在市区:"+platform.getCity());
    		         System.out.println("京津冀共建:"+platform.getJJJGJ());
    		         System.out.println("平台组织形态:"+platform.getPform());
    		         System.out.println("法人类型:"+platform.getFaren_type());
    		         System.out.println("联合共建:"+platform.getUnite());
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}finally {
    				 try {
    					table.close();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    		         close();
    			}
    			return platform;
    			
    		}
    		
    	  
    	 public static void main(String [] args)throws IOException { 
    		 //createTable("platform",new String[]{"article","PId","Pnum","approval_num","techField","PLevel","city","JJJGJ","Pform","faren_type","unite"});
    		 //在Score表中插入一条数据,其行键为95001,sname为Mary(因为sname列族下没有子列所以第四个参数为空)
    	     //等价命令:put 'Score','95001','sname','Mary'
    	     //insertRow("platform", "2", "Pname", "", "KYL");
    	     //在Score表中插入一条数据,其行键为95001,course:Math为88(course为列族,Math为course下的子列)
    	     //等价命令:put 'Score','95001','score:Math','88'
    	     //insertRow("platform", "2", "PId", "", "2");
    	     //在Score表中插入一条数据,其行键为95001,course:English为85(course为列族,English为course下的子列)
    	     //等价命令:put 'Score','95001','score:English','85'
    	     //insertRow("platform", "2", "Pnum", "", "2019-1-25");
    	     //insertRow("platform", "2", "approval_num", "", "123-456");
    	     //insertRow("platform", "2", "techField", "", "心理");
    	     //insertRow("platform", "2", "PLevel", "", "国家级");
    	     //insertRow("platform", "2", "city", "", "湖南长沙岳麓区");
    	     //insertRow("platform", "2", "JJJGJ", "", "是");
    	     //insertRow("platform", "2", "Pform", "", "内设机构相对独立");
    	     //insertRow("platform", "2", "faren_type", "", "事业法人");
    	     //insertRow("platform", "2", "unite", "", "多单位联合共建");
    		//查询Score表中,行键为95001,列族为course,列为Math的值
    		 //PlatformDao platformDao = new PlatformDao();
    		 //platformDao.get("platform", "123456");
    	        //查询Score表中,行键为95001,列族为sname的值(因为sname列族下没有子列所以第四个参数为空)
    	        //getData("Score", "95001", "sname", "");
    	 }
    }
    

      

    servlet

    package servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Date;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.*;
    import org.apache.hadoop.hbase.Cell;
    import org.apache.hadoop.hbase.CellUtil;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.HColumnDescriptor;
    import org.apache.hadoop.hbase.HTableDescriptor;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.*;
    import org.apache.hadoop.hbase.util.Bytes;
    import org.apache.hadoop.io.IOUtils;
    import org.apache.hadoop.util.Progressable;
    
    
    
    @SuppressWarnings("serial")
    public class FillinServlet extends HttpServlet {
    	
    	 public static Configuration configuration;
    	 public static Connection connection;
    	 public static Admin admin;
    	 public static long ts;
    	 
    	 //建立连接
        public static void init1(){
            configuration  = HBaseConfiguration.create();
            configuration.set("hbase.zookeeper.quorum","192.168.146.128"); 
            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();
            }
        }
    	 
    	@Override
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		super.doGet(req, resp);
    	}
    	
    	@Override
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    
    		request.setCharacterEncoding("utf-8");
    		/**平台锟斤拷锟斤拷锟斤拷息*/
    		 String Pname = request.getParameter("Pname");//平台名称
    		 String PId = request.getParameter("PId");//平台编号
    		 String Pnum = request.getParameter("Pnum"); //批准年月
    		 String approval_num = request.getParameter("approval_num"); //批准文号
    		 String tech_field = request.getParameter("tech_field"); //技术领域
    		 String platform_grade = request.getParameter("platform_grade"); //平台级别
    	     String platform_province = request.getParameter("cmbProvince");            //省
    	     String platform_city = request.getParameter("cmbCity");                    //市
    	     String platform_district = request.getParameter("cmbArea");            //区
    	     String platform_form = request.getParameter("platform_form");           //平台组织形式
    	     String platform_faren_type = request.getParameter("faren_type");        //法人类型
    	     String platform_unite = request.getParameter("unite");                  //联合共建
    	     String platform_jjjgj = request.getParameter("jjjgj");                //京津冀共建
    	     /**
    	      * 锟斤拷锟斤拷锟斤拷锟捷匡拷
    	      */
    	    System.out.println(Pname);
    	    String city = platform_province+platform_city+platform_district;
    	    try {
    	             //等价命令:put 'Score','95001','sname','Mary'
    			     insertRow("platform", PId, "Pname", "", Pname);
    			     //在Score表中插入一条数据,其行键为95001,course:Math为88(course为列族,Math为course下的子列)
    			     //等价命令:put 'Score','95001','score:Math','88'
    			     insertRow("platform", PId, "PId", "", PId);
    			     //在Score表中插入一条数据,其行键为95001,course:English为85(course为列族,English为course下的子列)
    			     //等价命令:put 'Score','95001','score:English','85'
    			     insertRow("platform", PId, "Pnum", "", Pnum);
    			     insertRow("platform", PId, "approval_num", "", approval_num);
    			     insertRow("platform", PId, "techField", "", tech_field);
    			     insertRow("platform", PId, "PLevel", "", platform_grade);
    			     insertRow("platform", PId, "city", "",city );
    			     insertRow("platform", PId, "JJJGJ", "", platform_jjjgj);
    			     insertRow("platform", PId, "Pform", "", platform_form);
    			     insertRow("platform", PId, "faren_type", "", platform_faren_type);
    			     insertRow("platform", PId, "unite", "", platform_unite);
    	     }catch (IOException e) {
    	            e.printStackTrace();
    	     }
    		response.setCharacterEncoding("GBK");
    		PrintWriter out = response.getWriter();
    		out.println("<script language='javaScript'>alert("添加成功!");</script>");	
    		response.setHeader("refresh","1;url = /HBase/index.jsp");
    		Bytes.toBytes("Pname");
    		Bytes.toBytes("PId");
    		Bytes.toBytes("Pnum");
    		Bytes.toBytes("approval_num");
    		Bytes.toBytes("techField");
    		Bytes.toBytes("city");
    		Bytes.toBytes("JJJGJ");
    		Bytes.toBytes("Pform");
    		Bytes.toBytes("faren_type");
    		Bytes.toBytes("unite");
    	}
    	
    	/**
         * 向某一行的某一列插入数据
         * @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 {
            init1();
            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();
        }
    }
    

      

    package servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Date;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.*;
    import org.apache.hadoop.hbase.Cell;
    import org.apache.hadoop.hbase.CellUtil;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.HColumnDescriptor;
    import org.apache.hadoop.hbase.HTableDescriptor;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.*;
    import org.apache.hadoop.hbase.util.Bytes;
    import org.apache.hadoop.io.IOUtils;
    import org.apache.hadoop.util.Progressable;
    
    
    
    public class DeleteServlet extends HttpServlet {
    	
    	 public static Configuration configuration;
    	 public static Connection connection;
    	 public static Admin admin;
    	 public static long ts;
    	 
    	 //建立连接
        public static void init1(){
            configuration  = HBaseConfiguration.create();
            configuration.set("hbase.zookeeper.quorum","192.168.146.128"); 
            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();
            }
        }
    	 
    	@Override
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		
    	}
    	
    	@Override
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    
    		request.setCharacterEncoding("utf-8");
    		/**平台锟斤拷锟斤拷锟斤拷息*/
    		 String PId = request.getParameter("PId");//平台编号
    		
    	    
    	    try {
    	             //等价命令:put 'Score','95001','sname','Mary'
    			     deleteRow("platform", PId);
    			     //在Score表中插入一条数据,其行键为95001,course:Math为88(course为列族,Math为course下的子列)
    			     //等价命令:put 'Score','95001','score:Math','88'
    			     //deleteRow("platform", PId, "PId", "");
    			     //在Score表中插入一条数据,其行键为95001,course:English为85(course为列族,English为course下的子列)
    			     //等价命令:put 'Score','95001','score:English','85'
    			     //deleteRow("platform", PId, "Pnum", "");
    			     //deleteRow("platform", PId, "approval_num", "");
    			     //deleteRow("platform", PId, "techField", "");
    			    // deleteRow("platform", PId, "PLevel", "");
    			     //deleteRow("platform", PId, "city", "");
    			     //deleteRow("platform", PId, "JJJGJ", "");
    			     //deleteRow("platform", PId, "Pform", "");
    			     //deleteRow("platform", PId, "faren_type", "");
    			     //deleteRow("platform", PId, "unite", "");
    	     }catch (IOException e) {
    	            e.printStackTrace();
    	     }
    	    System.out.println("删除成功");
    		response.setCharacterEncoding("GBK");
    		PrintWriter out = response.getWriter();
    		out.println("<script language='javaScript'>alert("删除成功!");</script>");	
    		response.setHeader("refresh","1;url = /HBase/index.jsp");
    		
    	    //request.getRequestDispatcher("/index1.jsp").forward(request,response);
    	}
    	 public static void deleteRow(String tableName, String row) throws IOException {
    	        init1();
    	        Table table = connection.getTable(TableName.valueOf(tableName));
    	        Delete delete=new Delete(row.getBytes());
    	        table.delete(delete);
    	        System.out.println(6666);
    	        table.close();
    	        close();
    	    }
    	
    }
    

      

    package servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Date;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.*;
    import org.apache.hadoop.hbase.Cell;
    import org.apache.hadoop.hbase.CellUtil;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.HColumnDescriptor;
    import org.apache.hadoop.hbase.HTableDescriptor;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.*;
    import org.apache.hadoop.hbase.util.Bytes;
    import org.apache.hadoop.io.IOUtils;
    import org.apache.hadoop.util.Progressable;
    
    import dao.PlatformDao;
    import model.platform;
    
    
    
    @SuppressWarnings("serial")
    public class ModifyServlet extends HttpServlet {
    	
    	 public static Configuration configuration;
    	 public static Connection connection;
    	 public static Admin admin;
    	 public static long ts;
    	 
    	 //建立连接
        public static void init1(){
            configuration  = HBaseConfiguration.create();
            configuration.set("hbase.zookeeper.quorum","192.168.146.128"); 
            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();
            }
        }
    	 
    	@Override
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    
    	}
    	
    	@Override
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    
    		request.setCharacterEncoding("utf-8");
    		/**平台锟斤拷锟斤拷锟斤拷息*/
    		String PId = request.getParameter("PId");
    		//String condition = request.getParameter("Condition");
    	    String content = request.getParameter("content");
    	    System.out.println(PId);
    	    //System.out.println(condition);
    		System.out.println(content);
    	    
    	    try {
    	             //等价命令:put 'Score','95001','sname','Mary'
    			     //deleteRow("platform", PId);
    			     //在Score表中插入一条数据,其行键为95001,course:Math为88(course为列族,Math为course下的子列)
    			     //等价命令:put 'Score','95001','score:Math','88'
    			     //deleteRow("platform", PId, "PId", "");
    			     //在Score表中插入一条数据,其行键为95001,course:English为85(course为列族,English为course下的子列)
    			     //等价命令:put 'Score','95001','score:English','85'
    			     //deleteRow("platform", PId, "Pnum", "");
    			     //deleteRow("platform", PId, "approval_num", "");
    			     //deleteRow("platform", PId, "techField", "");
    			    // deleteRow("platform", PId, "PLevel", "");
    			     //deleteRow("platform", PId, "city", "");
    			     //deleteRow("platform", PId, "JJJGJ", "");
    			     //deleteRow("platform", PId, "Pform", "");
    			     //deleteRow("platform", PId, "faren_type", "");
    			     //deleteRow("platform", PId, "unite", "");
    	    	
    	    	insertRow("platform",PId,"approval_num","",content);
    	     }catch (IOException e) {
    	            e.printStackTrace();
    	     }
    		response.setCharacterEncoding("GBK");
    		PrintWriter out = response.getWriter();
    		out.println("<script language='javaScript'>alert("修改成功!");</script>");	
    		response.setHeader("refresh","1;url = /HBase/index.jsp");
    		
    	    //request.getRequestDispatcher("/index1.jsp").forward(request,response);
    	}
    	/**
         * 向某一行的某一列插入数据
         * @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 {
            init1();
            System.out.println("1"+rowKey);
            System.out.println("2"+colFamily);
            System.out.println("3"+col);
            System.out.println("4"+val);
            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();
        }
    	
    }
    

      

    package servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Date;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.*;
    import org.apache.hadoop.hbase.Cell;
    import org.apache.hadoop.hbase.CellUtil;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.HColumnDescriptor;
    import org.apache.hadoop.hbase.HTableDescriptor;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.*;
    import org.apache.hadoop.hbase.util.Bytes;
    import org.apache.hadoop.io.IOUtils;
    import org.apache.hadoop.util.Progressable;
    
    import dao.PlatformDao;
    import model.platform;
    
    
    
    @SuppressWarnings("serial")
    public class SearchServlet extends HttpServlet {
    	
    	 public static Configuration configuration;
    	 public static Connection connection;
    	 public static Admin admin;
    	 public static long ts;
    	 
    	 
    	@Override
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		
    	}
    	
    	@Override
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		request.setCharacterEncoding("utf-8");
    	    String PId = request.getParameter("PId");
    	    platform platform = new platform();
    	    PlatformDao platformDao = new PlatformDao();
    	    platform = platformDao.get("platform", PId);
    	    
    	    request.setAttribute("PId", platform.getPId());
    	    request.setAttribute("Pname", platform.getPname());
    	    request.setAttribute("Pnum", platform.getPnum());
    	    request.setAttribute("approval_num", platform.getApproval_num());
    	    request.setAttribute("techField", platform.getTechField());
    	    request.setAttribute("PLevel", platform.getTechField());
    	    request.setAttribute("city", platform.getCity());
    	    request.setAttribute("JJJGJ", platform.getJJJGJ());
    	    request.setAttribute("Pform", platform.getPform());
    	    request.setAttribute("faren_type", platform.getFaren_type());
    	    request.setAttribute("unite", platform.getUnite());
    	    System.out.println("平台编号:"+platform.getPId());
    	    
    	    request.getRequestDispatcher("/show.jsp").forward(request,response);
    		
    	}
    	
    }
    

      

    jsp

    modify.jsp

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>修改内容</title>
    </head>
    <body>
    	<form action="servlet/ModifyServlet" method="post">
    	请选择要修改的平台编号:<input type="text" name="PId">
    	请选择要修改的内容:<br>
    	<select name="Condition">
    		<option value="Approval_num">批准文号</option>
    		<option value="PLevel">平台级别</option>
    	</select>
    	<input type="text" name="content">
    	<button type="submit">提交</button>
    	</form>
    </body>
    </html>
    

      Fill_in.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <form action="servlet/SearchServlet" method="post">
    	<div>
    		<input type="text" name="PId">
    		<button type="submit">提交</button>
    	</div>
    </form>
    
    </body>
    </html>
    

      show.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <% String PId = (String)request.getAttribute("PId");%>
    <% String Pname = (String)request.getAttribute("Pname");%>
    <% String Pnum = (String)request.getAttribute("Pnum");%>
    <% String approval_num = (String)request.getAttribute("approval_num");%>
    <% String techField = (String)request.getAttribute("techField");%>
    <% String PLevel = (String)request.getAttribute("PLevel");%>
    <% String city = (String)request.getAttribute("city");%>
    <% String JJJGJ = (String)request.getAttribute("JJJGJ");%>
    <% String Pform = (String)request.getAttribute("Pform");%>
    <% String faren_type = (String)request.getAttribute("faren_type");%>
    <% String unite = (String)request.getAttribute("unite");%>
     
    <%="平台编号为:"+PId %> <br><br>
    <%="平台名称为:"+Pname %> <br><br>
    <%="批准年月为:"+Pnum %> <br><br>
    <%="批准文号为:"+approval_num %> <br><br>
    <%="平台编号为:"+techField %> <br><br>
    <%="平台编号为:"+PLevel %> <br><br>
    <%="平台编号为:"+city %> <br><br>
    <%="平台编号为:"+JJJGJ %> <br><br>
    <%="平台编号为:"+Pform %> <br><br>
    <%="平台编号为:"+faren_type %> <br><br>
    <%="平台编号为:"+unite %> <br><br>
    <button type="submit"><a href="index.jsp">回到首页</a></button>
    </body>
    </html>
    

      delete.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <form action="servlet/DeleteServlet" method="post">
    	<div>
    		<input type="text" name="PId">
    		<button type="submit">提交</button>
    	</div>
    </form>
    
    </body>
    </html>
    

      

  • 相关阅读:
    hihoCoder #1062 : 最近公共祖先·一
    hihoCoder #1050 : 树中的最长路
    hihoCoder #1049 : 后序遍历
    108 Convert Sorted Array to Binary Search Tree 将有序数组转换为二叉搜索树
    107 Binary Tree Level Order Traversal II 二叉树的层次遍历 II
    106 Construct Binary Tree from Inorder and Postorder Traversal 从中序与后序遍历序列构造二叉树
    105 Construct Binary Tree from Preorder and Inorder Traversal 从前序与中序遍历序列构造二叉树
    104 Maximum Depth of Binary Tree 二叉树的最大深度
    102 Binary Tree Level Order Traversal 二叉树的层次遍历
    101 Symmetric Tree 判断一颗二叉树是否是镜像二叉树
  • 原文地址:https://www.cnblogs.com/-2016/p/10325839.html
Copyright © 2011-2022 走看看