📄 querytest.java
字号:
package com.oreilly.hh;import net.sf.hibernate.*;import net.sf.hibernate.cfg.Configuration;import java.sql.Time;import java.util.*;/** * Retrieve data as objects */public class QueryTest { /** * Retrieve any tracks that fit in the specified amount of time. * * @param length the maximum playing time for tracks to be returned. * @param session the Hibernate session that can retrieve data. * @return a list of {@link Track}s meeting the length restriction. * @throws HibernateException if there is a problem. */ public static List tracksNoLongerThan(Time length, Session session) throws HibernateException { Query query = session.getNamedQuery( "com.oreilly.hh.tracksNoLongerThan"); query.setTime("length", length); return query.list(); } /** * Build a parenthetical, comma-separated list of artist names. * @param artists the artists whose names are to be displayed. * @return formatted list, or an empty string if the set was empty. */ public static String listArtistNames(Set artists) { StringBuffer result = new StringBuffer(); for (Iterator iter = artists.iterator(); iter.hasNext(); ) { Artist artist = (Artist)iter.next(); result.append((result.length() == 0) ? "(" : ", "); result.append(artist.getName()); } if (result.length() > 0) { result.append(") "); } return result.toString(); } /** * Look up and print some tracks when invoked from the command line. */ public static void main(String args[]) throws Exception { // Create a configuration based on the properties file we've put // in the standard place. Configuration config = new Configuration(); // Tell it about the classes we want mapped, taking advantage of // the way we've named their mapping documents. config.addClass(Track.class).addClass(Artist.class); // Get the session factory we can use for persistence SessionFactory sessionFactory = config.buildSessionFactory(); // Ask for a session using the JDBC information we've configured Session session = sessionFactory.openSession(); try { // Print the tracks that will fit in seven minutes List tracks = tracksNoLongerThan(Time.valueOf("00:07:00"), session); for (ListIterator iter = tracks.listIterator() ; iter.hasNext() ; ) { Track aTrack = (Track)iter.next(); System.out.println("Track: \"" + aTrack.getTitle() + "\" " + listArtistNames(aTrack.getArtists()) + aTrack.getPlayTime()); for (Iterator comIter = aTrack.getComments().iterator() ; comIter.hasNext() ; ) { System.out.println(" Comment: " + comIter.next()); } } } finally { // No matter what, close the session session.close(); } // Clean up after ourselves sessionFactory.close(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -