|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Установка1. Загрузить и установить сервер баз данных MySQL с сервера http://dev.mysql.com/ 2. Загрузить и подключить Hibernate с сервера http://hibernate.org/ 3. Загрузить и подключить JDBC-драйвер, используемой базы данных Библиотека hibernate3.1.3.jar является основной. Кроме нее, устанавливается еще целый ряд необходимых библиотек из дистрибутива Hibernate, cglib.jar, commons-collections.jar, commons-logging.jar, jta.jar, dom4j.jar, log4j.jar, а также библиотеки antlr.jar, asm.jar, asm-attrs.jar для запуска приложения из-под Apache Ant. dom4j.jar – отвечает за разбор файлов XML-настроек и файла XML-mapping метаданных; CGLIB (cglib.jar) – эта библиотека используется для генерации кода для расширения классов во время исполнения; commons-collections.jar – вспомогательная библиотека из проекта Apache Jakarta Commons; commons-logging.jar – вспомогательная библиотека для журналирования событий из проекта Apache Jakarta Commons; ODMG4 (odmg.jar) – пакет, необходимый для mapping-коллекций; EHCache (ehcache.jar) – кэш-провайдер второго уровня; ANother Tool for Language (antlr.jar) – инструмент, позволяющий создавать трансляторы, компиляторы и распознаватели для текстов, содержащие Java, C#, C++ или Python код; ASM (asm.jar, asm-attrs.jar) – библиотека, предназначенная для динамического создания классов, а также их динамической корректировки. Создание простейшего приложения Hibernate использует JDBC-соединения для вызова SQL-запросов к базе данных, поэтому необходимо указать настроенный пул JDBC-соединений либо использовать один из поддерживаемых пулов, встроенных в Hibernate (C3P0, Proxool). Tomcat настраивает и дает доступ к пулу соединений, используя встроенный DBCP пул, а Hibernate запрашивает данные соединения через интерфейс JNDI. Tomcat связывает пул соединений с JNDI, объявляя ресурс в свой основной конфигурационный файл Tomcat 5.5/conf/server.xml, в виде: <Context path="/test_db" docBase="test_db"> <Resource name="jdbc/test_db" scope="Shareable" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/test_db"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory </value> </parameter> <Context/> Далее следует настроить конфигурационный файл Hibernate на использование пула соединений. Этот файл должен располагаться в каталоге <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.datasource"> java:comp/env/jdbc/test_db</property> <property name="show_sql">true</property> <property name="dialect"> net.sf.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.password">pass</property> <property name="hibernate.connection.username">root</property>
<mapping resource="courses/hiber/Course.hbm.xml"/> <mapping resource="courses/hiber/Student.hbm.xml"/> </session-factory> </hibernate-configuration> Здесь указан способ получения JDBC-соединения, включено логирование команд SQL, настроен диалект SQL. Для настройки параметров работы Hibernate вместо конфигурационного XML-файла можно использовать файл hibernate.properties в WEB-INF/ classes (в случае, если приложение разбито по пакетам, необходимо это учитывать, чтобы данный файл был доступен): ##Данная директива позволяет делать автозамену значений ##полей класса в другие значения для удобства хранения hibernate.query.substitutions true 1, false 0, yes 'Y',
##Прописывается JDBC-драйвер для базы данных MySQL hibernate.dialect net.sf.hibernate.dialect.MySQLDialect hibernate.connection.driver_class com.mysql.jdbc.Driver
##Прописывается адрес для подсоединения к серверу ##баз данных ##Формат подключения следующий: ##hibernate.connection.url ##jdbc:mysql://АДРЕС_МАШИНЫ:НОМЕР_ПОРТА/ИМЯ_БАЗЫ_ДАННЫХ? ##autoReconnect=Автоматически переподключатся к базе данных ##или нет, при потере соединения. Этот параметр должен быть ##выставлен в true, т.к. отключение от БД происходит в ##случае 30-ти минутного простоя.
##Параметр useUnicode=true отвечает за использование ##кодировки unicode при работе с БД. ##Параметр characterEncoding=Cp1251 отвечает за кодировку ##при передаче данных в базу данных hibernate.connection.url jdbc:mysql://localhost:3306/test_db?autoReconnect =true&useUnicode=true&characterEncoding=Cp1251
##Имя пользователя при подключении к БД hibernate.connection.username root
##Пароль при подключении к БД hibernate.connection.password pass
##Размер пула соединений к БД ##Обычно используется значение в 50 соединений при ##создании реальных проектов hibernate.connection.pool_size 50
##Кеширование запросов. Кеш повышает быстродействие при ##использовании большого числа однотипных запросов к базе ##данных hibernate.statement_cache.size 20 ##Директива, которая используется при debug. Результатом ##является то, что все запросы, которые осуществляются hibernate.show_sql true Как еще одну альтернативу (не очень удачную) можно рассматривать метод, генерирующий объект java.util.Properties. Например, в виде: private Properties createProperties() { Properties properties = new Properties(); properties.setProperty( "hibernate.dialect", "net.sf.hibernate.dialect.MySQLDialect"); properties.setProperty( "hibernate.connection.driver_class", "com.mysql.jdbc.Driver"); properties.setProperty( "hibernate.connection.url", "jdbc:mysql://localhost/test_db"); properties.setProperty( "hibernate.connection.username", "root"); properties.setProperty( "hibernate.connection.password", "pass"); return properties; } Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.) |