【问题标题】:How can I get value in database to jlist with hibernate?如何使用休眠将数据库中的值获取到 jlist?
【发布时间】:2014-05-04 11:16:05
【问题描述】:

我在这里获得了教室名称,但我无法使用 Jlist 获取教室 ID。 我怎样才能得到教室ID?我想在 jlist 中显示教室名称,但同时,我想获取它的教室 ID。请帮助解决这个问题。

    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    session.beginTransaction();
    Query query2 = session.createQuery("FROM Senior.entity.Classroom CL ");
    List<Classroom> results2 = query2.list();
    ////////List_2 için if /////////////////////
    if (results2.size() > 0) {
        Iterator iterate = results2.iterator();
        final Classroom resultAccoun2t = (Classroom) iterate.next();
        list_2.removeAll();
        for (Classroom inv : results2) {

            my problem is here, i didnt take classrroomId like this;

            //list2.add(new ListItem(inv.getClassromId(),inv.getClassroomName()));
            defaultListModel2.addElement(inv.getClassroomName());
        }
    }
    ////////My class//


    class ListItem{
private int classroom_id;
private String classroomname;

public ListItem(int classroom_id, String classroom_name) {
    this.classroom_id = classroom_id;
    this.classroomname = classroom_name;
}

public int getClassroom_id() {
    return classroom_id;
}

public void setClassroom_id(int classroom_id) {
    this.classroom_id = classroom_id;
}

public String getClassroomname() {
    return classroomname;
}

public void setClassroomname(String classroom_name) {
    this.classroomname = classroomname;
}

@Override
public String toString() {
    return  classroomname ;
}

}

【问题讨论】:

  • 向我们展示您的尝试,我们会尝试找出为什么它不起作用... 交易?
  • 您如何编辑您的问题,而不是试图将代码放入无法阅读的评论中,解释什么是无效的以及您遇到问题的地方
  • 我没有拿教室 id 我在 jlsit 中选择的教室名称
  • 编辑您的帖子,并将您的代码放在那里。然后删除无用的cmets。如果我要以这种注释格式向您展示代码,您认为 可以调试/更不用说阅读了吗?

标签: java database swing hibernate jlist


【解决方案1】:

不需要多余的ListItem。只需覆盖 ClassRoom 中的 toString() 并将 ClassRoom 对象添加到列表中即可。

class ClassRoom {

    private String name;
    private int id;

    @Override
    public String toString() {
        return "Id: " + id + " , Name: " + name;
    }
}
...
for (ClassRoom cls : classes) {
    model.addElement(cls);
}

例子

import java.util.ArrayList;
import java.util.List;
import javax.swing.*;

public class TestClassroomList {

    public TestClassroomList() {
        List<ClassRoom> classes = createList();
        DefaultListModel model = createModel(classes);
        JList list = new JList(model);

        JFrame frame = new JFrame();
        frame.add(new JScrollPane(list));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    private List<ClassRoom> createList() {
        List<ClassRoom> classes = new ArrayList<>();
        classes.add(new ClassRoom(1, "Biology"));
        classes.add(new ClassRoom(2, "History"));
        classes.add(new ClassRoom(3, "Calculus"));
        classes.add(new ClassRoom(4, "Programming"));
        classes.add(new ClassRoom(5, "Data Structures"));
        classes.add(new ClassRoom(6, "Sociology"));
        return classes;
    }

    private DefaultListModel createModel(List<ClassRoom> classes) {
        DefaultListModel model = new DefaultListModel();
        for (ClassRoom cls : classes) {
            model.addElement(cls);
        }
        return model;
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new TestClassroomList();
            }
        });
    }

    class ClassRoom {

        private String name;
        private int id;

        public ClassRoom(int id, String name) {
            this.id = id;
            this.name = name;
        }

        @Override
        public String toString() {
            return "Id: " + id + " , Name: " + name;
        }
    }
}

【讨论】:

  • 感谢您的回答。我正在使用休眠。我该如何转换它。我的意思是我想从数据库中获取值和 id 到 jlist。
  • 您的查询返回List&lt;ClassRoom&gt;。只需将ClassRoomtoString() 覆盖为您想要的输出即可。然后只需将所有 ClassRoom 对象添加到列表中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
  • 2016-07-24
相关资源
最近更新 更多