📄 tutorial.html
字号:
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="connection.driver_class">org.hsqldb.jdbcDriver</property> <property name="connection.url">jdbc:hsqldb:data/tutorial</property> <property name="connection.username">sa</property> <property name="connection.password"></property> <!-- JDBC connection pool (use the built-in) --> <property name="connection.pool_size">1</property> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.HSQLDialect</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="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语句。<tt class="literal">hbm2ddl.auto</tt>选项将自动生成数据库表定义(schema)- 直接插入数据库中。当然这个选项也可以被关闭(通过去除这个选项)或者通过Ant任务<tt class="literal">SchemaExport</tt>来把数据库表定义导入一个文件中进行优化。 最后,为持久化类加入映射文件。 </p><p> 把这个文件拷贝到源代码目录下面,这样它就位于classpath的root路径上。Hibernate在启动时会自动 在它的根目录开始寻找名为<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>2.2.4. 用Ant编译 </h3></div></div><div></div></div><p> 在这个教程里面,我们将用Ant来编译程序。你必须先安装Ant-可以从<a href="http://ant.apache.org/bindownload.cgi" target="_top">Ant download page</a> 下载它。怎样安装Ant不是这个教程的内容,请参考<a href="http://ant.apache.org/manual/index.html" target="_top">Ant manual</a>。 当你安装完了Ant,我们就可以开始创建编译脚本,它的文件名是<tt class="literal">build.xml</tt>,把它直接放在开发目录下面。 </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"> 完善Ant </h3><p> 注意Ant的分发版通常功能都是不完整的(就像Ant FAQ里面说得那样),所以你常常不得不需要自己动手来完善Ant。 例如:如果你希望在你的build文件里面使用JUnit功能。为了让JUnit任务被激活(这个教程里面我们并不需要这个任务), 你必须拷贝junit.jar到<tt class="literal">ANT_HOME/lib</tt>目录下或者删除<tt class="literal">ANT_HOME/lib/ant-junit.jar</tt>这个插件。 </p></div><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>2.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">Session</tt>变得容易。这个帮助类将使用被称为<span class="emphasis"><em>ThreadLocal Session</em></span> 的模式来保证当前的单元操作和当前线程相关联。让我们来看一眼它的实现: </p><pre class="programlisting">import org.hibernate.*;import org.hibernate.cfg.*;public class HibernateUtil { public static final SessionFactory sessionFactory; static { try { // Create the SessionFactory from hibernate.cfg.xml sessionFactory = new Configuration().configure().buildSessionFactory();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -