📄 tutorial.html
字号:
<!-- Enable Hibernate's automatic session context management --> <property name="current_session_context_class">thread</property> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <!-- Drop and re-create the database schema on startup --> <property name="hbm2ddl.auto">create</property> <mapping resource="events/Event.hbm.xml"/> </session-factory></hibernate-configuration></pre><p> 注意这个XML配置使用了一个不同的DTD。在这里,我们配置了Hibernate的<tt class="literal">SessionFactory</tt>-一个关联于特定数据库全局的工厂(factory)。如果你要使用多个数据库,就要用多个的<tt class="literal"><session-factory></tt>,通常把它们放在多个配置文件中(为了更容易启动)。 </p><p> 最开始的4个<tt class="literal">property</tt>元素包含必要的JDBC连接信息。方言(dialect)的<tt class="literal">property</tt>元素指明Hibernate 生成的特定SQL变量。你很快会看到,Hibernate对持久化上下文的自动session管理就会派上用场。 打开<tt class="literal">hbm2ddl.auto</tt>选项将自动生成数据库模式(schema)- 直接加入数据库中。当然这个选项也可以被关闭(通过去除这个配置选项)或者通过Ant任务<tt class="literal">SchemaExport</tt>的帮助来把数据库schema重定向到文件中。最后,在配置中为持久化类加入映射文件。 </p><p> 把这个文件拷贝到源代码目录下面,这样它就位于classpath的根目录的最后。Hibernate在启动时会自动在classpath的根目录查找名为<tt class="literal">hibernate.cfg.xml</tt>的配置文件。 </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="tutorial-firstapp-ant"></a>1.2.4. 用Ant构建 </h3></div></div><div></div></div><p> 现在我们用Ant来构建应用程序。你必须先安装Ant-可以从<a href="http://ant.apache.org/bindownload.cgi" target="_top">Ant 下载页面</a>得到它。怎样安装Ant就不在这里介绍了,请参考<a href="http://ant.apache.org/manual/index.html" target="_top">Ant 用户手册</a>。当你安装完了Ant,就可以开始创建<tt class="literal">build.xml</tt>文件,把它直接放在开发目录下面。 </p><p> 一个简单的build文件看起来像这样: </p><pre class="programlisting"><project name="hibernate-tutorial" default="compile"> <property name="sourcedir" value="${basedir}/src"/> <property name="targetdir" value="${basedir}/bin"/> <property name="librarydir" value="${basedir}/lib"/> <path id="libraries"> <fileset dir="${librarydir}"> <include name="*.jar"/> </fileset> </path> <target name="clean"> <delete dir="${targetdir}"/> <mkdir dir="${targetdir}"/> </target> <target name="compile" depends="clean, copy-resources"> <javac srcdir="${sourcedir}" destdir="${targetdir}" classpathref="libraries"/> </target> <target name="copy-resources"> <copy todir="${targetdir}"> <fileset dir="${sourcedir}"> <exclude name="**/*.java"/> </fileset> </copy> </target></project></pre><p> 这将告诉Ant把所有在lib目录下以<tt class="literal">.jar</tt>结尾的文件拷贝到classpath中以供编译之用。它也把所有的非Java源代码文件,例如配置和Hibernate映射文件,拷贝到目标目录。如果你现在运行Ant,会得到以下输出: </p><pre class="programlisting">C:\hibernateTutorial\>antBuildfile: build.xmlcopy-resources: [copy] Copying 2 files to C:\hibernateTutorial\bincompile: [javac] Compiling 1 source file to C:\hibernateTutorial\binBUILD SUCCESSFULTotal time: 1 second </pre></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="tutorial-firstapp-helpers"></a>1.2.5. 启动和辅助类 </h3></div></div><div></div></div><p> 是时候来加载和储存一些<tt class="literal">Event</tt>对象了,但首先我们得编写一些基础的代码以完成设置。我们必须启动Hibernate,此过程包括创建一个全局的<tt class="literal">SessoinFactory</tt>,并把它储存在应用程序代码容易访问的地方。<tt class="literal">SessionFactory</tt>可以创建并打开新的<tt class="literal">Session</tt>。一个<tt class="literal">Session</tt>代表一个单线程的单元操作,<tt class="literal">SessionFactory</tt>则是个线程安全的全局对象,只需要被实例化一次。 </p><p> 我们将创建一个<tt class="literal">HibernateUtil</tt>辅助类(helper class)来负责启动Hibernate和更方便地操作<tt class="literal">SessionFactory</tt>。让我们来看一下它的实现: </p><pre class="programlisting">package util;import org.hibernate.*;import org.hibernate.cfg.*;public class HibernateUtil { private static final SessionFactory sessionFactory; static { try { // Create the SessionFactory from hibernate.cfg.xml sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -