Example usage for org.apache.ibatis.session SqlSession commit

List of usage examples for org.apache.ibatis.session SqlSession commit

Introduction

In this page you can find the example usage for org.apache.ibatis.session SqlSession commit.

Prototype

void commit();

Source Link

Document

Flushes batch statements and commits database connection.

Usage

From source file:net.k3rnel.arena.server.database.DatabaseManager.java

License:Open Source License

/**
 * Upgrades the database. Use sparingly.
 * @return//  w  w w  .j a v  a  2s . c o m
 */
public void onUpgrade(int version) {
    System.out.println("Upgrading Database...");
    System.out.println("Current version: " + version);
    System.out.println("Latest version: " + DATABASE_VERSION + "\n");
    while (version < DATABASE_VERSION) {
        version++;
        switch (version) {
        case 1: {
            onCreate();
            break;
        }
        case 2: {
            System.out.println("Upgrading to version 2");
            SqlSession session = DataConnection.openSession();
            try {
                DatabaseMapper dMapper = session.getMapper(DatabaseMapper.class);
                dMapper.create_table_items();
                dMapper.create_table_bag();
                session.commit();
            } catch (Exception e) {
                System.out.println("Failed to upgrade to version 2!");
                System.out.println(e.getMessage());
            } finally {
                session.close();
            }
            setDbVersion(2);
            break;
        }
        }
    }
    setDbVersion(DATABASE_VERSION);
}

From source file:net.landora.animeinfo.anidb.AnimeCategoryParser.java

License:Open Source License

public void parseAnimeCategory(InputStream is) {
    SqlSession session = null;

    try {/*  ww w .j a  va 2 s  .c o m*/
        session = AnimeDataManager.getInstance().openSession();
        AnimeMapper mapper = session.getMapper(AnimeMapper.class);

        XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(is);

        reader.nextTag();
        reader.require(XMLStreamReader.START_ELEMENT, null, "categorylist");

        Map<Integer, AnimeCategory> categories = new HashMap<Integer, AnimeCategory>();
        Map<Integer, Integer> parentCategories = new HashMap<Integer, Integer>();

        int t1;
        while ((t1 = reader.nextTag()) != XMLStreamReader.END_ELEMENT) {
            reader.require(XMLStreamReader.START_ELEMENT, null, "category");

            int categoryId = Integer.parseInt(reader.getAttributeValue(null, "id"));
            int parentCategoryId = Integer.parseInt(reader.getAttributeValue(null, "parentid"));

            AnimeCategory category = new AnimeCategory();
            category.setId(categoryId);
            category.setHentai(Boolean.parseBoolean(reader.getAttributeValue(null, "ishentai")));

            int t2;
            while ((t2 = reader.nextTag()) != XMLStreamReader.END_ELEMENT) {
                if (reader.getLocalName().equals("name")) {
                    category.setName(XMLUtilities.nextString(reader).trim());
                } else if (reader.getLocalName().equals("description")) {
                    category.setDescription(XMLUtilities.nextString(reader).trim());
                }
            }

            if (categoryId > 0) {
                if (mapper.updateCategory(category) == 0) {
                    mapper.insertCategory(category);
                }

                categories.put(categoryId, category);

                if (parentCategoryId > 0) {
                    parentCategories.put(categoryId, parentCategoryId);
                }
            }
        }
        reader.close();

        for (Map.Entry<Integer, Integer> entry : parentCategories.entrySet()) {
            AnimeCategory c1 = categories.get(entry.getKey());
            c1.setParentCategory(categories.get(entry.getValue()));
            mapper.updateCategory(c1);
        }

        session.commit();
    } catch (Exception e) {
        session.rollback();
        log.error("Error saving anime categories.", e);
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:net.landora.animeinfo.anidb.AnimeTitleParser.java

License:Open Source License

public void parseAnimeTitle(InputStream is) {
    SqlSession session = null;

    try {//from   w w  w.j  a va 2 s .c o  m
        session = AnimeDataManager.getInstance().openSession();
        AnimeNameLookupMapper mapper = session.getMapper(AnimeNameLookupMapper.class);

        mapper.deleteAnimeNames();

        XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(is);

        reader.nextTag();
        reader.require(XMLStreamReader.START_ELEMENT, null, "animetitles");

        int t1;
        while ((t1 = reader.nextTag()) != XMLStreamReader.END_ELEMENT) {
            reader.require(XMLStreamReader.START_ELEMENT, null, "anime");

            int animeId = Integer.parseInt(reader.getAttributeValue(null, "aid"));

            AnimeNameLookupSummary anime = new AnimeNameLookupSummary();
            anime.setAnimeId(animeId);

            List<AnimeNameLookup> newNames = new ArrayList<AnimeNameLookup>();

            int t2;
            while ((t2 = reader.nextTag()) != XMLStreamReader.END_ELEMENT) {
                reader.require(XMLStreamReader.START_ELEMENT, null, "title");

                AnimeNameLookup name = new AnimeNameLookup();
                for (int i = 0; i < reader.getAttributeCount(); i++) {
                    String aname = reader.getAttributeLocalName(i);
                    if (aname.equals("type")) {
                        name.setType(reader.getAttributeValue(i));
                    } else if (aname.equals("lang")) {
                        name.setLanguage(reader.getAttributeValue(i));
                    }

                }

                name.setName(XMLUtilities.nextString(reader));
                name.setAnime(anime);
                newNames.add(name);
            }

            for (AnimeNameLookup name : newNames) {
                if (name.getType().equalsIgnoreCase("main")) {
                    anime.setNameMain(name.getName());
                } else if (name.getType().equalsIgnoreCase("official")
                        && name.getLanguage().equalsIgnoreCase("en")) {
                    anime.setNameEnglish(name.getName());
                }
            }

            mapper.insertAnime(anime);
            for (AnimeNameLookup name : newNames) {
                mapper.insertAnimeName(name);
            }

        }
        reader.close();

        mapper.updateExistingAnimeMainName();
        mapper.deleteCoreAnimeNames();
        mapper.insertExistingAnimeMainName();

        session.commit();
    } catch (Exception e) {
        session.rollback();
        log.error("Error saving anime titles.", e);
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:net.landora.animeinfo.data.AnimeDBA.java

License:Open Source License

public static void saveAnimeWithNames(Anime anime) {
    SqlSession session = null;

    try {/* ww  w  .j a va2s. c  o m*/
        session = AnimeDataManager.getInstance().openSession();
        AnimeMapper mapper = session.getMapper(AnimeMapper.class);

        int rows = mapper.updateAnime(anime);
        if (rows == 0) {
            mapper.insertAnime(anime);
        } else {
            mapper.deleteAnimeNames(anime);
            mapper.deleteAnimeCategoryWeight(anime);
            mapper.deleteAnimeRelations(anime);
        }

        for (AnimeName name : anime.getNames()) {
            mapper.insertAnimeName(name);
        }
        for (AnimeCategoryWeight category : anime.getCategories()) {
            mapper.insertAnimeCategoryWeight(category);
        }
        for (AnimeRelation relation : anime.getRelations()) {
            mapper.insertAnimeRelation(relation);
        }

        session.commit();

        animeCache.put(anime.getAnimeId(), anime);
    } catch (Exception e) {
        session.rollback();
        log.error("Error saving anime.", e);
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:net.landora.animeinfo.data.AnimeDBA.java

License:Open Source License

public static void saveEpisode(AnimeEpisode episode) {
    SqlSession session = null;

    try {// w  ww.java  2  s. com
        session = AnimeDataManager.getInstance().openSession();
        AnimeMapper mapper = session.getMapper(AnimeMapper.class);

        int rows = mapper.updateEpisode(episode);
        if (rows == 0) {
            mapper.insertEpisode(episode);
        }

        session.commit();
    } catch (Exception e) {
        session.rollback();
        log.error("Error saving anime.", e);
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:net.landora.animeinfo.data.AnimeDBA.java

License:Open Source License

public static void saveGroup(AnimeGroup group) {
    SqlSession session = null;

    try {/*from  ww w.  j a  v a2 s. c  om*/
        session = AnimeDataManager.getInstance().openSession();
        AnimeMapper mapper = session.getMapper(AnimeMapper.class);

        int rows = mapper.updateGroup(group);
        if (rows == 0) {
            mapper.insertGroup(group);
        }

        session.commit();
    } catch (Exception e) {
        session.rollback();
        log.error("Error saving group.", e);
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:net.landora.animeinfo.data.AnimeDBA.java

License:Open Source License

public static void saveFile(AnimeFile file) {
    SqlSession session = null;

    try {//from w  w w  .j a  va2  s  .  c  o m
        session = AnimeDataManager.getInstance().openSession();
        AnimeMapper mapper = session.getMapper(AnimeMapper.class);

        file.setCurrentSaveRevision(AnimeFile.SAVE_REVISION);

        int rows = mapper.updateFile(file);
        if (rows == 0) {
            mapper.insertFile(file);
        }

        session.commit();

        addToAnimeFileCache(file);

    } catch (Exception e) {
        session.rollback();
        log.error("Error saving file.", e);
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:net.landora.animeinfo.data.AnimeDBA.java

License:Open Source License

public static void addCachedED2K(String ed2k, long size, int episodeId) {
    if (size == 0) {
        return;/*from   w  ww .  j  a  v  a  2s .  co  m*/
    }

    SqlSession session = null;

    try {
        session = AnimeDataManager.getInstance().openSession();
        AnimeMapper mapper = session.getMapper(AnimeMapper.class);

        mapper.addCachedED2K(ed2k, size, episodeId);

        session.commit();
    } catch (Exception e) {
        session.rollback();
        log.error("Error saving file.", e);
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:net.landora.animeinfo.data.AnimeDBA.java

License:Open Source License

public static void addCachedED2KFileFailure(String ed2k, long size) {
    if (size == 0) {
        return;/*from  w w  w.  j  a  v  a  2 s .co m*/
    }

    SqlSession session = null;

    try {
        session = AnimeDataManager.getInstance().openSession();
        AnimeMapper mapper = session.getMapper(AnimeMapper.class);

        mapper.addCachedED2KFileFailure(ed2k, size);

        session.commit();
    } catch (Exception e) {
        session.rollback();
        log.error("Error saving file.", e);
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:net.landora.animeinfo.data.AnimeDBA.java

License:Open Source License

public static boolean checkForCachedED2KFileFailure(String ed2k, long size) {
    if (size == 0) {
        return false;
    }//ww  w .j  a v a 2 s.c o m

    SqlSession session = null;

    try {
        session = AnimeDataManager.getInstance().openSession();
        AnimeMapper mapper = session.getMapper(AnimeMapper.class);

        Calendar cal = Calendar.getInstance();
        cal.add(ED2K_FILE_CACHE_AGE_UNITS, -ED2K_FILE_CACHE_AGE);
        mapper.clearOldCachedED2KFileFailure(Collections.singletonMap("date", cal));

        int entries = mapper.findCachedED2KFileFailure(ed2k, size);

        session.commit();

        return entries > 0;

    } catch (Exception e) {
        session.rollback();
        log.error("Error checking for ed2k failure.", e);
        return false;
    } finally {
        if (session != null) {
            session.close();
        }
    }
}