在真正接触到Hibernate之前,我对它的理解是,Hibernate是一个可以使程序员在编程的时候不用关心SQL语句是什么东西。也不需
要关心sql语句怎么写,或者担心会写错。当我今天自己调通了我的第一个Hibernate程序之后,我庆幸之前的理解是正确的。但这些
远远不是强大的Hibernate的功能所在。的确,在实际的编程过程中,我们的确不用再过多的关心sql语句。但是如果一个连基本
的sql语句都不会的程序员,想要去用Hibernate的话,那简直就是空中楼阁。当然应该没有哪个程序员不会sql语句的,哪怕是基本
的增删改查。不多说了,还是来说说我调通第一个Hibernate程序后的一点点小收获吧。
对于Hibernate来说,在我今天的感觉下就是它大体包含了四大类:Hibernate配置文件,持久化类,对象关系映射,还有就是我自己
的测试类。对于Hibernate.cfg.xml它主要的作用就是提供了关于数据库的相关信息,包括了数据库的驱动,连接url,用户名,密码
。还有就是关于各个数据库的方言。当然对于Hibernate3来说,已经包含了几乎所有的数据库方言。这也就保证了Hibernate程序在
更换数据库时的灵活性。在Hibernate配置文件中还有一个比较重要的就是关于用户关系的映射。通过其中的<mapping>的指向对象关
系映射文件,从而实现了关联。这就引出了对象关系映射文件,在这个文件中主要包含了对象关系的一些映射。比如说在数据库中的
login表中有一个属性为userName,通过这个关系映射文件将其于类一个属性名,如name映射起来后,在我们的程序中就象操纵对象一样的操纵数据库中相关信息。当然,这个只是我对它的理解。我觉得还不是很成熟,高手要多多指点啊~~谢过。对于持久化类和测试类的理解。我还在继续学习中。关于学习方法,还望大家多多指点。
下面我简述下我今天的程序。首先在MySQL数据库中建立相关的数据库Hibernate,其中表为login,然后编写了一个简单的持久化类UserInfo,然后就是关系映射文件UserInfo.hbm.xml和HIbernate配置文件Hibernate.cfg.xml的编写。然后就是测试类的编写。下面我仅仅贴出我的两个xml文件
<?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 package="com.myhibernate">
<class name="UserInfo" table="login">
<id name="id" type="integer">
<column name="id"/>
<generator class="identity"/>
</id>
<property name="userName" type="string">
<column name="name" length="100"/>
</property>
<property name="password" type="string">
<column name="password" length="100"/>
</property>
</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>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/Hibernate</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">asus</property>
<property name="hibernate.connection.pool_size">20</property>
<property name="hibernate.show_sql">true</property>
<property name="jdbc.fetch_size">50</property>
<property name="jdbc.batch_size">25</property>
<property name="jdbc.use_scrollable_resultset">false</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="com/myhibernate/UserInfo.hbm.xml"/>
</session-factory>
</hibernate-configuration>
我的程序调通后的截图: