Hibernate框架之关系映射



关系映射(通过一个xxx.hbm.xml文件把java模型类和数据库表对应起来)的介绍,以一个java工程为例



Hibernate----开源的ORM框架技术


ORM:对象(Object)关系(Relationship)映射(Mapping)
其他著名的ORM技术:MyBatis、TopLink、EJB(重量级)


一、MyEclipse的工程添加Hibernate框架

1、建立一个web project或者java Project,项目右击->MyEclipse->add Hibernate Capabilities



2、默认选择即可,点击next.



默认选择,点击下一步

3、



4、
至此,Hibernate框架已经添加进工程中


二、根据数据库表的字段,编写java模型类,getter和setter方法自动生成,以防出错。



三、编写test类

public class StudentTest {
    public static void main(String[] args) {
        Student s=new Student();
        s.setName("Daming");
        s.setAge(22);
        Configuration conf=new Configuration().configure();
        SessionFactory sf=conf.buildSessionFactory();
        Session session=sf.openSession();
        Transaction tran=session.beginTransaction();
        session.save(s);
        tran.commit();
        session.close();
        sf.close();
    }
}


四、配置hibernate.cfg.xml文件和xxx.hbm.xml文件

创建好两个文件之后,文件中的配置代码寥寥无几。建议从HibernateAPI中粘贴配置代码,并且在此基础上进行修改

hibernate.cfg.xml:

<session-factory>
        <!-- Database connection settings -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/hibernatedemo</property>
        <property name="connection.username">root</property>
        <property name="connection.password">123456</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- Echo all executed SQL to stdout
                                    若执行成功,打印出SQL语句    -->
        <property name="show_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl">update</property>

        <mapping resource="model/Student.hbm.xml"/>

    </session-factory>

xxx.hbm.xml:

<hibernate-mapping> 
   <class name="model.Student" table="student" catalog="hibernatedemo"> 数据库名:hibernatedemo;表名:student
     <id name="id"/> 
        <property name="name" /> 
        <property name="age" /> 
    </class>
</hibernate-mapping> 

运行:


推荐阅读更多精彩内容