千山万水之Hibernate(三)——基本映射

Hibernate主要完成了实体类与数据库表的映射,但中间这道映射到底是通过何种方式进行的实现、对应呢,今天就开始一点点的来学习,本篇文章主要介绍Hibernate中最最基本的映射文件的写法,介绍一些常用的标签、属性等,通过与系统配置文件的结合,达到最终映射的效果。

Hibernate映射基本规则

   1. (实体)类映射成表,标签使用class
   2. 普通属性(不包括集合、自定义类和数组)映射成表字段,标签使用property

为了能让Hibernate操作我们的实体类,实体类的设计也要遵循一定的原则:

  1. 实现无参默认构造函数(这里可以对比我们在学习Servlet是也要提供同样的构造函数)

  2. 提供标识符,对应数据库的主键字段

  3. 不要使用final修饰

  4. 建议为实体类生成getter和setter方法

常用标签、属性

Hibernate中用于基本映射的标签、属性总结如下图所示
千山万水之Hibernate(三)——基本映射_第1张图片
上图中,hibernate-mapping、Class、Id/composite-id、Property是我们在使用Hibernate映射文件时经常看到、用到的几个标签,他们分别表示映射文件的根节点、实体类对应表配置、标识符、普通属性。图中它们四个节点下面分别列出了其下的常用属性,通过这个图我们可以看出:我们一般情况下用到的属性并不是很多,另外这些节点中属性都非常“见名知意”而对于Id、Property标签下的属性,很多都是相同的(Id节点下的属性),就是通过这些配置的作用,我们可以实现使用Hibernate达到隔离数据库,更加面向对象的效果。

示例:我们要完成一个用户的单个实体映射,映射文件可以这样写

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.tgb.hibernate.User">
        <id name="id">
            <generator class="native"></generator>
        </id>
        <composite-id></composite-id>
        <property name="name" />
        <many-to-one name="group" column="groupId"></many-to-one>
    </class>
</hibernate-mapping>

当然,为了要与项目管理起来,我们需要在hibernate的主(系统)配置文件中加入相应的引入映射文件的配置

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory name="foo">
        <!-- 连接数据库的相关配置 -->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_many2one</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">123456</property>
        <!-- 方言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 执行数据库操作时,控制台打印sql语句 -->
        <property name="hibernate.show_sql">true</property>

        <!-- 引入映射文件 -->
        <mapping resource="com/tgb/hibernate/User.hbm.xml" />
    </session-factory>
</hibernate-configuration>

至此,我们便可以通过hibernate提供的一些核心对象进行面向对象的数据库操作了。

小结

在了解了Hibernate的一些基本的设计原则以及其中的映射属性后,我们可以更能够理解为Hibernate是通过怎样的一种灵活配置来达到隔离数据库的效果,虽然打开Hibernate的介绍文档,其中的属性很多,但我们只要学习、掌握一些常用的属性,其他的在用到的时候再去查就好,这也算是学习、应用计算机一个重要的原则:内容多的说不清,但用到的时候有方向能查出来就是不错的!

你可能感兴趣的:(Hibernate,基本映射)