Hibernate学习笔记(一)
一、环境搭建;
???? 添加以下.jar文件:
???? 1、Hibernate3.3.2.jar
???? 2、lib/required目录下的全部jar
???? 3、另外还要单独去下载添加 slf4j-nop.jar;
????? 注:slf4j-nop.jar是slf4j-api.jar的实现,slf4j是用来输出日志信息的,Hibernate3里面是用它来输入日志的,所以我们要添加slf4j的实现。
?
二、hibernate.cfg.xml 配置;
<!--数据库连接信息--><property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property><property name="hibernate.connection.username">scott</property><property name="hibernate.connection.password">scott</property><property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property><property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property><!-- Enable Hibernate's automatic session context management 如果使用的是annotation,必须加上这个--><property name="current_session_context_class">thread</property>?<!--对象映射(class这种映射是配合annonation使用的,如果是resource则是配合.xml使用的)--><mapping /><mapping />
?
三、主键设置:
?? 1、xml:
?
<id name="id"> <!--class中填入你想要的生成策略--> <!--生成策略在下面有介绍过--> ?<generator class="native"></generator></id>
?? 2、Annotation:
??? 在属性的get()方法上面添加:@GeneratedValue,这是默认的写法,它完整的表示是:@GeneratedValue(strategy=GenerationType.AUTO),auto相当于xml形式中的native.其他都一样。
?
四、主键生成策略:
??? 1、identity :数据库自动生成,int类型,自增,适用mysql、mssql等数据库。
??? 2、sequence : 数据库自动生成,int类型,自增,适用oracle。
??? 3、uuid :由hibernate生成一个很不重复的ID。
??? 4、native: 根据数据类型,自动决定适用那种主键生成策略;例如:用mysql,则选择适用identiry生成策略,用oracle数据库,则选择适用sequence生成策略。
?