⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 querytest2.java

📁 Hiberante程序高手秘籍的源代码
💻 JAVA
字号:
package com.oreilly.hh;import net.sf.hibernate.*;import net.sf.hibernate.cfg.Configuration;import java.sql.Time;import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;/** * Provide a user interface to enter artist names and see their tracks. */public class QueryTest2 extends JPanel {    JList list;  // Will contain tracks associated with current artist    DefaultListModel model; // Lets us manipulate the list contents    /**     * Build the panel containing UI elements     */    public QueryTest2() {        setLayout(new BorderLayout());        model = new DefaultListModel();        list = new JList(model);        add(new JScrollPane(list), BorderLayout.SOUTH);        final JTextField artistField = new JTextField(30);        artistField.addKeyListener(new KeyAdapter() {                public void keyTyped(KeyEvent e) {                    SwingUtilities.invokeLater(new Runnable() {                            public void run() {                                updateTracks(artistField.getText());                            }                        });                }            });        add(artistField, BorderLayout.EAST);        add(new JLabel("Artist: "), BorderLayout.WEST);    }    /**     * Update the list to contain the tracks associated with an artist     */    private void updateTracks(String name) {        model.removeAllElements();  // Clear out previous tracks        if (name.length() < 1) return;   // Nothing to do        try {            // Ask for a session using the JDBC information we've configured            Session session = sessionFactory.openSession();            try {                Artist artist = CreateTest.getArtist(name, false, session);                if (artist == null) {  // Unknown artist                    model.addElement("Artist not found");                    return;                }                // List the tracks associated with the artist                for (Iterator iter = artist.getTracks().iterator() ;                     iter.hasNext() ; ) {                    Track aTrack = (Track)iter.next();                    model.addElement("Track: \"" + aTrack.getTitle() +                                     "\", " + aTrack.getPlayTime());                }            } finally {                // No matter what, close the session                session.close();            }        } catch (Exception e) {            System.err.println("Problem updating tracks:" + e);            e.printStackTrace();        }    }    private static SessionFactory sessionFactory;  // Used to talk to Hibernate    /**     * Set up Hibernate, then build and display the user interface.     */    public static void main(String args[]) throws Exception {        // Load configuration properties, read mappings for persistent classes.        Configuration config = new Configuration();        config.addClass(Track.class).addClass(Artist.class);        // Get the session factory we can use for persistence        sessionFactory = config.buildSessionFactory();        // Set up the UI        JFrame frame = new JFrame("Artist Track Lookup");        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        frame.setContentPane(new QueryTest2());        frame.setSize(400, 180);        frame.setVisible(true);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -