使用Java创建和访问redis数据库

问题描述

美好的一天, 我有一个项目要做,我必须使用 Redis 位图数据类型创建一个数据库,并编写 Java 代码以使用 GUI 下拉菜单访问数据库。我能够使用排序的集合命令来实现代码,但是我得到的规范是位图数据类型和命令。根据我的理解,位图对字符串进行操作。请问我该怎么办?请在下面找到我的项目和 gui 图像。

/*
 * To change this license header,choose License Headers in Project Properties.
 * To change this template file,choose Tools | Templates
 * and open the template in the editor.
 */
//MAIN PROJECT
package cen414dat;
import java.util.HashMap;
import java.util.Map;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;

import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import javax.swing.Icon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.Tuple;

/**
 *
 * @author ariel
 */
public class CEN414Dat {
    static HashMap<Double,String> redisData = new HashMap<Double,String>();
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // Todo code application logic here
        Jedis jedis = new Jedis("localhost");
        Info igr= new Info();
        
         if (jedis.zcard("igr") == null || jedis.zcard("igr") == 0) {
            jedis.zadd("igr",(Map) Info.map);}
         
         for(Tuple t: jedis.zrangeByscoreWithscores("igr",100)){
        System.out.println(t.getscore());
        redisData.put(t.getscore(),t.getElement());
        }
         
        ArrayList<String> states = new ArrayList<String>();
         for (Map.Entry m : redisData.entrySet()) {
             states.add((String)m.getValue());
         }
         
         String[] statesArray = new String[states.size()];
         states.toArray(statesArray);

        

        JComboBox<String> stateList = new JComboBox<>(statesArray);
        stateList.addItemListener(new Handler());
        
        // stateList.addItemListener(null);

// add to the parent container (e.g. a JFrame):
        JFrame jframe = new JFrame();
        JLabel item1 = new JLabel("IGR STATISTICS FOR H1 2020");
        item1.setToolTipText("Done by AJ");
        jframe.add(item1);
        jframe.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
        jframe.setLayout(new FlowLayout());
        jframe.setSize(275,180);
        jframe.setVisible(true);
        
        jframe.add(stateList);
        
        

// get the selected item:
       // String selectedBook = (String) stateList.getSelectedItem();
       

        // check whether the server is running or not
        System.out.println("Server is running: " + jedis.ping());
        //getting the percentage for each state
       
//        
        // storing the data into redis database
        System.out.println(jedis.zrange("igr",100));
        
        for (Map.Entry m : Info.map.entrySet()) {
            System.out.println(m.getKey() + " " + m.getValue());

            //jedis.zadd("outofschool",M)
        }
    }
    private static class Handler implements ItemListener{
//
//        @Override
//        public void actionPerformed(ActionEvent e) {
//           JOptionPane.showMessageDialog(null,String.format("%s",e.getActionCommand()));
//        }

        @Override
        public void itemStateChanged(ItemEvent e) {
             for (Map.Entry m : redisData.entrySet()) {
                 if(e.getItem().toString() == m.getValue()&& e.getStateChange() == 1){
                     
                     JOptionPane.showMessageDialog(null,m.getKey(),"Value in billions",1);
                     System.out.println(m.getKey());
                     break;
                     
         
        }
   
        }
        
    }
        
        
        
    }
    
}
/*
 * To change this license header,choose Tools | Templates
 * and open the template in the editor.
 */
package cen414dat;
import static com.sun.org.apache.xalan.internal.lib.ExsltDynamic.map;
import java.util.HashMap;

/**
 *
 * @author ariel
 */
//Info project
public class Info {
    public static HashMap<Double,String> map = new HashMap<Double,String>();
    public Info(){
    
    // IGR statistics in each state
    map.put(4.27,"Q1 Abia");
    map.put(1.92,"Q2 Abia");
    map.put(1.63,"Q1 Adamawa");
    map.put(2.12,"Q2 Adamawa");
    map.put(12.00,"Q1 Akwa-Ibom");
    map.put(4.26,"Q2 Akwa-Ibom");
    map.put(4.53,"Q1 Anambra");
    map.put(5.01,"Q2 Anambra");
    map.put(4.39,"Q1 Bauchi");
    map.put(1.37,"Q2 Bauchi");
    map.put(2.88,"Q1 Bayelsa");
    map.put(2.51,"Q2 Bayelsa");
    map.put(3.62,"Q1 Benue");
    map.put(1.73,"Q2 Benue");
    map.put(3.59,"Q1 Borno");
    map.put(1.79,"Q2 Borno");
    map.put(3.99,"Q1 CrossRiver");
    map.put(4.06,"Q2 CrossRiver");
    map.put(19.3,"Q1 Delta");
    map.put(11.5,"Q2 Delta");
    map.put(4.65,"Q1 Ebonyi");
    map.put(1.69,"Q2 Ebonyi");
    map.put(9.51,"Q1 Edo");
    map.put(4.50,"Q2 Edo");
    map.put(1.65,"Q1 Ekiti");
    map.put(1.55,"Q2 Ekiti");
    map.put(5.95,"Q1 Enugu");
    map.put(6.31,"Q2 Enugu");
    map.put(20.7,"Q1 FCT");
    map.put(14.5,"Q2 FCT");
    map.put(11.1,"Q1 Gombe");
    map.put(2.68,"Q2 Gombe");
    map.put(3.08,"Q1 Imo");
    map.put(4.65,"Q2 Imo");
    map.put(1.91,"Q1 Jigawa");
    map.put(1.10,"Q2 Jigawa");
    map.put(10.2,"Q1 Kaduna");
    map.put(4.36,"Q2 Kaduna");
    map.put(7.85,"Q1 Kano");
    map.put(9.66,"Q2 Kano");
    map.put(2.10,"Q1 Katsina");
    map.put(3.44,"Q2 Katsina");
    map.put(2.21,"Q1 Kebbi");
    map.put(2.18,"Q2 Kebbi");
    map.put(5.42,"Q1 Kogi");
    map.put(2.01,"Q2 Kogi");
    map.put(7.22,"Q1 Kwara");
    map.put(2.14,"Q2 Kwara");
    map.put(114.00,"Q1 Lagos");
    map.put(90.5,"Q2 Lagos");
    map.put(3.03,"Q1 Nasawara");
    map.put(2.87,"Q2 Nasawara");
    map.put(1.90,"Q1 Niger");
    map.put(2.12,"Q2 Niger");
    map.put(14.6,"Q1 Ogun");
    map.put(9.07,"Q2 Ogun");
    map.put(8.16,"Q1 Ondo");
    map.put(5.42,"Q2 Ondo ");
    map.put(7.02,"Q1 Osun");
    map.put(1.94,"Q2 Osun");
    map.put(7.35,"Q1 Oyo");
    map.put(10.4,"Q2 Oyo");
    map.put(7.20,"Q1 Plateau");
    map.put(2.20,"Q2 Plateau");
    map.put(36.6,"Q1 Rivers");
    map.put(27.9,"Q2 Rivers");
    map.put(1.58,"Q1 Sokoto");
    map.put(3.02,"Q2 Sokoto");
    map.put(2.35,"Q1 Taraba");
    map.put(1.71,"Q2 Taraba");
    map.put(1.96,"Q1 Yobe");
    map.put(1.96,"Q2 Yobe");
    map.put(3.57,"Q1 Zamfara");
    map.put(3.52,"Q2 Zamfara");
  
}
}

Picture of the expected gui

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)