数据库语言分类:
下边是实体类的基本配置
<!-- 在实体类所在的目录下创建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的方法默认是延迟,可以通过修改配置的方式改为立即加载