|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Session.createQuery(“from Company”)
Интерфейс Query имеет следующие методы: list() -выполняет запрос, результат возвращается в коллекции List; session.createQuery(“from Company”).list(); executeUpdate() – для выполнения удалений, изменений, применяемых к многочисленным объектам; session.createQuery(“delete from Company where status =’closed’”).executeUpdate(); setString(int index, String value), setDate() и т. д. – session.createQuery(“delete from Company where status =?”).setString(0, ‘closed’).executeUpdate(); также можно установить параметр по имени: session.createQuery(“delete from Company where status =:stat”).setString(‘stat’, ‘closed’).executeUpdate(); iterate() - возвращает Iterator по результатам запроса Iterator it = createQuery(“from Company”).iterate(); Долгоживущие Объекты и Коллекции (Persistent Objects and Collections) – это однопоточные, короткоживущие объекты, содержащие сохраняемое состояние Временные Объекты и Коллекции (Transient Objects and Collections) – это экземпляры долгоживущих классов, которые в данный момент не ассоциированы Транзакция net.sf.hibernate.Transaction – однопоточный, короткоживущий объект, используемый приложением для указания атомарной единицы выполняемой работы. Он абстрагирует приложение от нижележащих JDBC, JTA или CORBA транзакций. В некоторых случаях одна сессия (Session) может породить несколько транзакций: commit() – фиксирует транзакцию базы данных; rollback() – принуждает транзакцию возвращаться обратно. Интерфейс net.sf.hibernate.connection.ConnectionProvider –поставщик соединений, фабрика и пул для JDBC-соединений. Абстрагирует приложение от нижележащих объектов Datasource или DriverManager. Внутренний объект Hibernate недоступен для приложения, но может быть расширен или реализован разработчиком. Методы: close() – освобождает все ресурсы, занимаемые поставщиком соединения; closeConnection(Connection conn) – закрывает используемое соединение; configure(Properties props) – инициализирует поставщика соединений из переданных свойств. Фабрика транзакций net.sf.hibernate.TransactionFactory – фабрика для экземпляров класса Transaction. Внутренний объект Hibernate недоступен для приложения, но также может быть расширен или реализован разработчиком. beginTransaction(SessionImplementor session) – начинает транзакцию и возвращает ее объект. Простейшее применение объявленных выше классов при добавлении /* пример # 5: простейшее применение hibernate: MainServlet.java */ package courses.servlet; import net.sf.hibernate.cfg.Configuration; import net.sf.hibernate.tool.hbm2ddl.SchemaExport; import net.sf.hibernate.MappingException; import net.sf.hibernate.HibernateException; import net.sf.hibernate.Session; import net.sf.hibernate.SessionFactory;
import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException; import java.io.IOException; import java.util.List; import java.util.Properties;
public class MainServlet extends HttpServlet { public static SessionFactory factory; static{ factory = new Configuration().configure().buildSessionFactory(); } private String ACTION_SHOW = "show"; private String ACTION_GENERATE = "generate";
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { performTask(req, resp); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { performTask(req, resp); } private void performTask(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String action = req.getParameter("action");
if (action.equals(ACTION_SHOW)) { try {
Session session = factory.openSession();
List courses = session.createQuery( "from Course").list(); req.setAttribute("courses", courses); List students = session.createQuery( "from Student").list(); req.setAttribute("students", students);
resp.sendRedirect("show.jsp"); req.getRequestDispatcher("show.jsp").forward(resp, req); session.close(); } catch (Exception e) { throw new RuntimeException(e); } } else if (action.equals(ACTION_GENERATE)) { try { Configuration configuration = new Configuration(); //или createConfiguration();
Properties properties = createProperties(); generateAndExecuteCreationScript( configuration.configure(), properties); resp.sendRedirect("generated.jsp"); } catch (Exception e) { throw new RuntimeException(e); } } } } <!-- пример # 6: отображение информации, извлеченной из БД: show.jsp --> <%@ page import="java.util.List, Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.) |