Hibernate基本概念和CRUD2
1、初始化代码(只做一次)
Configuration cfg= new Configuration();
cfg.configure(“config.cfg.xml”);
也可以通过cfg.setProperty设置属性。
SessionFactory sessionFactory =cfg.buildSessionFactory()
2、模板代码
Session session =null;Transaction tx = null;
try{
session = sessionFactory.openSession();
tx = session.beginTransaction();
//…你的代码save,delete,update,get…
tx.commit();
}catch(Exception e){
if(tx !=null)tx.rollback();throw e;
}finally{
if(session != null)session.close();
}
3、 Session的几个主要方法
1、save保存数据
2、delete,删除对象
3、update,更新对象,如果数据库中没有记录,会出现异常。
4、get,根据ID查,会立刻访问数据库。
5、Load,根据ID查,(返回的是代理,不会立即访问数据库)。
6、saveOrUpdate (根据ID和version的值来确定是save或update
4、主键生成机制
表示符生成器 | 描述 |
Increment | 由hibernate自动以递增的方式生成标识符,每次增量为1 |
Identity | 由底层数据库生成标识符。条件是数据库支持自动增长数据类型。 |
Sequence | Hibernate根据底层数据库序列生成标识符。条件是数据库支持序列。 |
Native | 根据底层数据库对自动生成表示符的能力来选择identity、sequence、hilo |
Uuid.hex | Hibernate采用128位的UUID算法来生成标识符。该算法 能够在网络环境中生成唯一的字符串标识符,这种策略并不流行,因为字符串类型的主键比整数类型的主键占用更多的数据库空间。 |
assigned | 适用于自然主键。由java程序负责生成标识符。不能把setID()方法声明为 Private的。尽量避免使用自然主键。 |
foreign | 使用另外一个相关联的对象的标示符,常和<one-to-one>联合使用 |