Hiernate是用来实现连接数据库、操作数据库记录的框架,因此Hibbernate框架首先需要配置连接数据库的信息。Hibernate框架使用连接池(Connection Pool)获得数据库连接,其发布包中提供了多个第三方开元连接池,也可以使用Hibernate内置的连接池。连接池的信息在Hibernate属性文件中配置,可以是hibernate.properties文件,也可以是hibernat.cfg.xml文件,它的创建位置为在src目录下直接创建:
<?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">
<htbernate-configuration>
<session-factroy>
<property name="connection.username">root</property>
<property name="connection.url">jdbc:mysql://localhost:3306/costomer</property>
<property name="connection.password"></property>
<property name="connection.characterEncoding">utf8</property>
<property name="hibernate.c3p0.max_size">2</property>
<property name="hibernate.c3p0.min_size">2</property>
<property name="hibernate.c3p0.timeout">120</property>
<property name="hibernate.c3p0.max_statements">100</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.c3p0.acquire_increment">2</property>
<property name="hibernate.c3p0.validate">false</property>
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="show_sql">true</property>
<property name="connection.driver_class">com.mysql.jdbs.Driver</property>
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
<property name="hibernate.cache.use_query_cache">true</property>
</session-factroy>
</htbernate-configuration>
上述配置文件中配置了数据库连接值所需的连接信息,包括访问数据库的用户名、密码、驱动类、连接串等,其中hibernate.c3p0.max_size规定了连接池中最大连接数。dialect称为方言,Hibernate框架为每种不同的数据库提供了特定的方眼类,可以针对不同的数据库生成优化的SQL语句
在映射文件中配置映射信息
持久化映射数据库表,类的属性映射表的字段,起对应关系需要在映射文件中配置。映射文件往往包含持久类所在包中,名字与持久类相同,后缀为.hbm.xml,Customer类对应的映射文件为Customer.hbm.xml。他的创建位置与类在同一个包内。Customer的配置信息如下:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="dao.Customer" table="customer" catalog="costomer">
<id name="custname" column="custname">
<generator class="assigned" />
</id>
<property name="pwd" column="pwd" />
<property name="age" column="age"/>
<property name="address" column="address" />
<many-to-one name="user" column="usersid" class="User" />
</class>
</hibernate-mapping>
通过class节点配置类与表的映射关系,clss元素主要有两种元素,即id和property,id定义了与表的主见对应的属性,上述例子中标的主见为custname字段,类Customer中与之对应的属性是custname,在映射文件使用id进行了配置,除了主见字段外,其他字段与类属性的映射关系都是用property袁术来定义,所有的hbm.xml文件必须在hibernate.cfg.xml中进行配置方能使用:
<mapping rescource="dao/Customer.hbm.xml" />