Hibernate笔记
2009-12-16 19:17
1.根据javabean的property建立配置文件Xxx.hbm.xml
<hibernate-mapping>
<class name="xxx" table="com_xxx">
<id name="id" column="id">//映射表的主键
<generator class="native">//根据配置的数据库方言自动选择最佳的标识符生成策略
</id>
<property name="date" type="timestamp" column="">
<property name="username">其中type属性可以没有 hibernate可以自动获取到
</class>
</hibernate-mapping>
2.建立hibernate的配置文件hibernate.cfg.xml
<property name="connection.driver_class">xxxxxx</property>
<property name="connection.url">xxxxxxxx//localhost</property>
<property name="connection.username">xxxxx</property>
<property name="connection.password">xxxxx</property> JDBC连接信息
<property name="dialect">xxxx</property> 数据库方言
<mapping resource="xxx.hbm.xml"/>添加表的映射文件
3.建立一个辅助类启动和建立一个全局的SessionFactory工厂,并且把代码放到static代码块中只执行一次。
static{
SesssionFactory sessionFactory=Configuration.configure().buildSessionFactory();
}
4.处理Session和Transaction
Session session=sessionFactory.getCurrentSession();获得一个工作单元
Transaction ts= session.bigintransaction();//开始事务
List results=session.createQuery("from xxx").list();//获得查询结果
session.update(XXX);
session.save(XXX);
session.delete(session.get("id"));
session.get("id");
ts.commit();
session.close();
return result;
5.数据关联(难点和重点)
1.多对多的关系(many-to-many)这是一个xxx到yyy 就是把关联的字段放进一个新的关联表中
----- yyy.hbm.xml
<set name="xxx" table="xxx_yyy">
<key column="yyy_id"/>yyy与xxx_yyy表的关联字段
<many-to-many column="xxx_id" class="xxx">
</set>
2.一对多的关系:(one-to-many)这是一个xxx一对多yyy
<set name="yyy">
<key column="xxx_id" ></key>
<one-to-many class="yyy的javabean"/>
</set>
3.多对一的关系:(many-to-one)xxx多对一yyy
<many-to-one name="yyy" column="yyy_id"></many-to-one>
4.一对一的关系:(one-to-one) xxx一对一yyy
<one-to-one name="yyy" constrained="true"></one-to-one>