本文共 3947 字,大约阅读时间需要 13 分钟。
1: 文件命名:
src: 类路径(**一定要遵循命名规范) 文件的名称固定: hibernate.cfg.xml2:核心:
xml声明部分: 引入了一个dtd文件:配置的内容: 必须参数: 连接数据的四大参数: driver_class url username password dialect : 方言:
可选参数:
show_sql : 运行的时候, 在控制台上打印sql 语句: format_sql : 打印sql 的时候, 带有格式: hbm2ddl.auto : Hibernate是否生成ddl语句:引入映射文件 :
resource =“Customer.hbm.xml” // 引入文件存在的位置: 案例: user/com/mrzhang/domain/Customer.hbm.xml 整个xml代码如下:com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/Hibernate001 root root org.hibernate.dialect.MySQL5Dialect true true create org.hibernate.connection.C3P0ConnectionProvider 5 20 120 3000
就是上面代码中的这个部分:
<xml dtd 部分> (直接复制即可)<hibernate-mappding name》(csdnbug,尖括号会报错打不出来): 实体类的全路径名称:
table: 对应数据库当中的表: 如果table 和 表名和 实体类的名称相同, table 可以省略。 catalog ="" 指定了数据库的名称: 可以省略: name: 类当中属性的名称: column: 数据库当中的主键字段: 如果属性的名称和字段相对应, 就省略 length:指定了数据库当中列的长度。 可以不指定。 默认情况是255: type: 指定数据当中的类型: 使用默认值: type的值有三种表示形式: 可以使用java当中的类型: java.lang.String 可以指定数据库当中的类型: varchar 可以使用Hibernate自带类型: string管理主键字段: 主键的生成策略:
name:
column: length: type: 以上四个字段和id的一致: not-null: 字段是否为空: false true unique: 设置值是否为一: false true :
1: Configuration对象:
Configuration : 配置对象, Hibernate工作通过该对象, 读取配置文件。 configure() ;只能直接读取src 下的 hibernate.cfg.xml 文件, 名称固定 configure(String path); 可以读取指定位置的配置文件。 addResource(“String path”);如果Hibernate的核心配置文件, 是一个Properties文件, 不能自动加载映射。 需要手动加载。 buildSessionFactory();获得一个会话工厂:2: SessionFactory : 工厂类:
1:作用: a: 获得session: openSession(); b: 不是轻量级的对象, 一个项目只需要一个工厂。 线程安全的对象。 c: SessionFactory 是一个缓存对象, 负责Hibernate当中的二级缓存。 二级缓存, 不能直接使用, 如果需要使用, 需要配置。 在实际的开发过程当中, 已经被Redis数据库取代。 d: 内部维护了一个连接池: 使用步骤: (1)引入外部数据源的jar包: (2)Hibernate.cfg.xml当中进行配置: 整个文件代码:com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/Hibernate001 root root org.hibernate.dialect.MySQL5Dialect true true create org.hibernate.connection.C3P0ConnectionProvider 5 20 120 3000
(3)通过控制台的初始化信息可以查询
例子如下:
package com.yidongxueyuan.test;import java.io.Serializable;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.Test;import com.yidongxueyuan.domain.Customer;public class HibernateTest01 { @Test public void testAdd() throws Exception { /* * 1: 第一步: 读取Hibernate的核心配置文件: * 2:第三步: 获得一个会话工厂: * 3: 使用工厂获得一个session对象: */ //创建一个对象, 用来读取核心的配置文件: /* * 对象: 创建配置对象, 并且调用方法的时候, 并没有直接指定读取的配置文件。 默认读取的是类路径下的 * 名称为:hibernate.cfg.xml 的配置文件: */ Configuration config = new Configuration().configure(); //获得一个会话工厂: SessionFactory factory = config.buildSessionFactory(); //3:使用工厂获得一个session对象: 类似之前的connnection : Session session = factory.openSession(); // 4: 开启事务: Transaction tx = session.beginTransaction(); //====================中间进行增删改查操作: //操作实体bean: Customer cust = new Customer(); cust.setCust_name("军哥"); cust.setCust_phone("18811307278"); Serializable id = session.save(cust);//主键字段: // 事务的提交: tx.commit(); //关闭session: session.close();// close : session对象换回到池子当中。 //关闭SessionFactory: factory.close();//显示关闭sessionFactory 。 }}
转载地址:http://ogmen.baihongyu.com/