2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
5 package yukihane.nicovideo;
7 import java.util.HashMap;
9 import java.util.logging.Level;
10 import java.util.logging.Logger;
11 import javax.persistence.EntityManager;
12 import javax.persistence.EntityManagerFactory;
13 import javax.persistence.Persistence;
14 import javax.persistence.Query;
15 import nicobrowser.Config;
16 import nicobrowser.entity.NicoContent;
17 import org.apache.commons.io.FilenameUtils;
23 public class NicoDBFinder {
24 private static final NicoDBFinder instance = new NicoDBFinder();
25 private final EntityManagerFactory factory;
27 private NicoDBFinder() {
29 Config config = Config.getInstance();
30 HashMap<String, String> map = new HashMap<String, String>();
31 map.put("toplink.jdbc.url", "jdbc:h2:" + config.getDbFile());
32 factory = Persistence.createEntityManagerFactory("NicoBrowserPU", map);
35 public static NicoDBFinder getInstance() {
39 *
\83t
\83@
\83C
\83\8b\96¼
\82©
\82çDB
\82ð
\8c\9f\8dõ
\82·
\82é.
40 * @param fileName
\83t
\83@
\83C
\83\8b\96¼.
41 * @return
\83R
\83\93\83e
\83\93\83c
\8fî
\95ñ.
\88ê
\92v
\82·
\82é
\82à
\82Ì
\82ª
\96³
\82¯
\82ê
\82Înull.
43 public NicoContent findNicoContent(String fileName) {
44 EntityManager manager = factory.createEntityManager();
46 String baseName = FilenameUtils.getBaseName(fileName);
47 Query query = manager.createQuery("SELECT cont FROM NicoContent AS cont " + "WHERE ?1 = cont.fileName").
48 setParameter(1, baseName);
49 List<NicoContent> results = query.getResultList();
50 if (results.size() > 1) {
51 Logger.getLogger(getClass().getName()).log(Level.WARNING, "
\93¯
\88ê
\83t
\83@
\83C
\83\8b\96¼
\82Ì
\83t
\83@
\83C
\83\8b\82ª
\95¡
\90\94\82 \82è
\82Ü
\82µ
\82½");
54 if (results.isEmpty()) {
57 return results.get(results.size() - 1);