数据库语言分类:
下边是实体类的基本配置
<!-- 在实体类所在的目录下创建xml -->
<hibernate-mapping package="com.wbs.domain">
<class name="Customer" table="cust_customer">
<id name="cusID" column="cust_id">
<!-- generator是主键的生成方式,只能取固定的几种
native 含义是本地数据库的自增长能力
-->
<generator class="native"></generator>
</id>
<property name="cusname" column="cust_cusname"></property>
<property name="cusSource" column="cust_cusSource"></property>
<property name="cusIndustry" column="cust_cusIndustry"></property>
<property name="cusLevel" column="cust_cusLevel"></property>
<property name="cusAddress" column="cust_cusAddress"></property>
<property name="cusPhone" column="cust_cusPhone"></property>
</class>
</hibernate-mapping>
这是session factory的配置
<hibernate-configuration>
<!-- 配置session factory
sessionfactory的作用是创建session
session对象就是hibernate操作数据库的核心
1。创建数据库的信息
2.连接数据库的信息
3.hibernate的可选配置
-->
<session-factory>
<!--第一部分:数据库的链接配置 -->
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:ORCL</property>
<property name="hibernate.connection.username">system</property>
<property name="hibernate.connection.password">wbs19950305</property>
<property name="hibernate.dialectt">org.hibernate.dialect.Oracle8iDialec</property>
<!-- 第二部分:可选配置 -->
<property name="hibernate.show_sql">true</property><!-- 是否显示hibernate生成的sql语句 -->
<property name="hibernate.format_sql">true</property><!-- 是否使用格式化输出sql语句到控制台 -->
<!-- 配置hibernate使用何种语句生成DDL语句 -->
<property name="hibernate.hbm2ddl.auto">update</property><!-- uopdate表示检测实体类映射配置和表结构是否一致,如果不一致,更新表结构 -->
<!--第三部分:映射配置文件 -->
<mapping resource="com/wbs/domain/Customer.xml"/>
</session-factory>
</hibernate-configuration>
Configuration对象
Configuration cfg=new Configuration();//只是创建,并非加载xml文件
加载文件的方式有3种
1. cfg.configure();//加载默认位置的名称和配置文件
2. cfg.addResource("com/wbs/domain/Customer.xml");、、这样加载配置文件也可的
3. cfg.addClass(Customer.class);
SessionFactory对象
线程安全的
一个应用应该有一个sessionFactory,在应用加载时候创建,在应用卸载时候销毁
Session对象
负责操作数据库
一个线程只能有一个对象
Transaction对象
C3p0连接池的配置
需要在SessionFactory的配置中加入下边这句话:
<property name="hibernate.connection.provider_class">
org.hibernate.connection.C3P0ConnectionProvider</property>
这个配置在hibernate.properties这个配置文件中可以找到。
Hibernate一个查询的方法
* hibernate中查询的方法
* get方法
* get(Classclass,Serializable id)
* load方法
* load(Classclass,Serializable id)
* 共同点:
* 都是根据ID查询一个实体
* 区别:
* 1:查询的时机不一样,
* get的时机,每次调用get方法时候,马上发起查询, 立即加载
* load查询时机,每次真正使用的时候,发起查询,,延迟加载,懒加载,惰性加载
* 2:返回的结果不一样
* get方法返回的实体类类型
* load返回的结果是实体类类型的代理对象
* load的方法默认是延迟,可以通过修改配置的方式改为立即加载