Hibernate 学习
*学习思路:
(1)Hibernate运行环境需要的最少jar包
(2)Hibernate.cfg.xml/Bean.hbm.xml/web.xml 基础配置方法
(3)创建SessionFactory,获得Session当前会话的方法
(4)get/load/save/update/delete基本HQL查询
(5)Hibernate高级配置(id、关联配置、继承配置)
(6)HQL高级查询以及复杂查询
*笔记:
1.基本概念了解:
ORM 对象关系映射
2.Hibernate必须的jar包:
- antlr-*.jar//其他工具辅助包
- commons-collection-*.jar//必须的集合类工具包
- dom4j-*.jar//hibernate靠其读写xml配置文件
- hibernate*.jar//核心包
- jta-*.jar//jta规范包
- db-connection-java-*.jar//数据库连接包
//以下的包hibernate版本不一样,存在差异
- javassist-*.jar//字节码增强包(更高版本已经换成[cglib.jar]+[asm.jar]+[asm-attrs.jar])
- slf4j-api-*.jar//
- slf4j-nop-*.jar//
3.实现Hibernate运行
1>.在src中新建hibernate.cfg.xml配置文件 //配置数据库连接参数,其可以在hibernate.properties中寻找
//hibernate.connection.url --- 访问数据库的url地址
//hibernate.connection.username --- 访问数据库的用户名
//hibernate.connection.password --- 访问数据库的密码
//hibernate.connection.driver_calss --- 访问数据库所需的驱动包
//hibernate.dialect --- 访问数据库的方言
<!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="show_sql">true</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://192.168.101.248/xcz</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="com/xcz/domain/Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
2>.Xxxx.hbm.xml 映射文件(例如com.xcz.domain.User)
将该文件以需要映射的类的类名.hbm.xml命名放在跟映射类同包中
加入映射配置
Class ---- table
属性(Attribute) ---- 列
对象 ---- 一条数据
hibernate中要求每个对象都应该有一个唯一性的标用作对应数据库中的主键
使用<id>映射主键,generator为主键生成策略(由hibernate已经写好)
<id name="id" column="id">
<generator class="uuid.hex" />
</id>
使用<property>来映射属性
<property name="username" length="20" />
配置写好后将该映射文件加入到hibernate的主配置中:
<mapping resource="com/chinasofti/domain/User.hbm.xml"/>
<?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="Calendar" table="t_calendar" catalog="db_personalkit">
<id name="id" type="java.lang.String">
<column name="id" length="36" />
<generator class="uuid.hex"></generator>
</id>
<many-to-one name="user" class="User" fetch="select">
<column name="planowner" length="36" />
</many-to-one>
<property name="planStartTm" type="java.util.Date">
<column name="planstarttm" length="19" />
</property>
<property name="planEndTm" type="java.util.Date">
<column name="planendtm" length="19" />
</property>
<property name="planTitle" type="java.lang.String">
<column name="plantitle" length="100" />
</property>
<property name="planContent" type="java.lang.String">
<column name="plancontent" length="500" />
</property>
<property name="planStatue" type="java.lang.Integer">
<column name="planstatue" />
</property>
</class>
</hibernate-mapping>
755

被折叠的 条评论
为什么被折叠?



