|
W tym artykule znajdują się przykłady oraz opisy najczęściej wykorzystywanych funkcjonalności Hibernate. Nie znajdziesz tu wszystkich możliwości biblioteki! Jeżeli potrzebujesz więcej informacji na ten temat zapraszam do odwiedzenia oficjalnej strony https://www.hibernate.org/. Zapis do bazy danych: Praca na wcześniej przygotowanej klasie ObjectInBase. Session h_session = h_factory.openSession(); Transaction h_transaction = h_session.beginTransaction(); ObjectInBase ob = new ObjectInBase(); ob.setStatus(2); ob.setNazwa("Sznurek 15m"); ob.setPrice(150); h_session.save(ob); h_transaction.commit(); h_session.close(); gdzie: h_factory jest fabryką sesji zbudowaną po skonfigurowaniu połączenia z bazą, h_transaction odpowiada za transakcje z bazą danych a funkcja commit() zapisuje do bazy danych zmiany dokonane w czasie trwania sesji h_session. Czytanie z bazy danych: Criteria criteria = h_session.createCriteria(ObjectInBase.class); criteria.add(Restrictions.like("nazwa","Sznurek%")); criteria.add(Restrictions.ilike("nazwa", "Sznurek%")); criteria.add(Restrictions.eq("status",2)); criteria.add(Restrictions.ne("status",0)); criteria.add(Restrictions.between("price",100,200)); criteria.addOrder(Order.asc("nick")); List<User>list_rows = criteria.list(); gdzie: h_session jest wcześniej utworzoną sesją Hibernate, list_rows jest listą wynikową zapytania. SORTOWANIE: Order.asc - od największej do najmniejszej, Order.desc - odwrotność Order.asc. WARUNKI: Restriction.ilike - zawierający frazę, Restriction.eq - równy wartości (obiektowi), Restriction.ne - różny od wartości (obiektu), Restriction.gt - większy (>), Restriction.ge - większy lub równy (>=), Restriction.lt - mniejszy (<), Restriction.le - mniejszy lub równy (<=), Restriction.between - zawarty pomiędzy. NATYWNE QUERY: String query = "select ID as id, IN_YEAR as year, NEXT_NUMBER_IN_YEAR as nextNumberInYear from BDS_PRODUCTION_CONKRET_ORDER_LINE order by ID limit 10"; Query q = session.createSQLQuery(query) .addScalar("id", new LongType()) .addScalar("year") .addScalar("nextNumberInYear") .setResultTransformer(Transformers .aliasToBean(ConkretOrderLineData1.class)); List<ConkretOrderLineData1> l = q.list();
|