Hibernate session API
来源:互联网 发布:海尔java web start 编辑:程序博客网 时间:2024/06/04 18:20
Hibernate Session 常用数据库操作API
[Object] get(class, key)
调用后直接查询数据库,如果一级缓存或二级缓存中存在数据,则从缓存中取。
[Object] load(class, key)
调用后先返回对象代理,当对象被使用时,从数据库或缓存中查找数据。
[Serializable] save(Object)
保存数据,同一个事务对同一个对象使用多次save,后面的save会用update语句操作。
void update(Object)
更新指定数据,对象必须是永久状态或托管状态,瞬时状态对象更新会抛异常。
void delete(Object)
删除指定数据,对象必须是永久状态或托管状态,瞬时状态不会异常但无意义。
void saveOrUpdate(Object)
判断数据是否存在,存在的话做更新操作,会先执行查询语句,再执行更新或插入语句,
主键不能自增,否则不能判断为重复,参数会从瞬时状态或托管状态变成永久状态。
[Object] merge(Object)
与saveOrUpdate相似,唯一不同的是参数对象不会变为永久状态,返回对象是永久状态。
------------------------------
session的创建
SessionFactory sessionFactory = new [Configuration/AnnotationConfiguration]()
.configure().buildSessionFactory();
Session session = sessionFactory.openSession(); // 永远都创建一个新session,资源消耗大,不推荐使用
Session session = sessionFactory.getCurrentSession(); // 获得当前线程的session,一个线程一个session,
// 无需关闭资,源推荐使用
Transaction trans = session.beginTransaction();
...
session.flash(); //刷新session缓存适用于更新操作后使用
trans.commit();
catch()... trans.rollback();
finally ... session.close(); // 使用getCurrentSession方法获得的session会自动关闭事务,无需手动关闭
------------------------------
SchemaExport 工具创建表
Configuration conf= new Configuration(); //XML
AnnotationConfiguration annConf = new AnnotationConfiguration(); //Annotation
// 指定要创建的实体类对应的表
conf/annConf.addClass(类.class);
conf.Configure(); // 加载配置定义的类
SchemaExport se = new SchemaExport(conf/annConf);
se.create(true/*是否打印dllSQL数据*/, true/*是否根据映射文件创建表*/);
[Object] get(class, key)
调用后直接查询数据库,如果一级缓存或二级缓存中存在数据,则从缓存中取。
[Object] load(class, key)
调用后先返回对象代理,当对象被使用时,从数据库或缓存中查找数据。
[Serializable] save(Object)
保存数据,同一个事务对同一个对象使用多次save,后面的save会用update语句操作。
void update(Object)
更新指定数据,对象必须是永久状态或托管状态,瞬时状态对象更新会抛异常。
void delete(Object)
删除指定数据,对象必须是永久状态或托管状态,瞬时状态不会异常但无意义。
void saveOrUpdate(Object)
判断数据是否存在,存在的话做更新操作,会先执行查询语句,再执行更新或插入语句,
主键不能自增,否则不能判断为重复,参数会从瞬时状态或托管状态变成永久状态。
[Object] merge(Object)
与saveOrUpdate相似,唯一不同的是参数对象不会变为永久状态,返回对象是永久状态。
------------------------------
session的创建
SessionFactory sessionFactory = new [Configuration/AnnotationConfiguration]()
.configure().buildSessionFactory();
Session session = sessionFactory.openSession(); // 永远都创建一个新session,资源消耗大,不推荐使用
Session session = sessionFactory.getCurrentSession(); // 获得当前线程的session,一个线程一个session,
// 无需关闭资,源推荐使用
Transaction trans = session.beginTransaction();
...
session.flash(); //刷新session缓存适用于更新操作后使用
trans.commit();
catch()... trans.rollback();
finally ... session.close(); // 使用getCurrentSession方法获得的session会自动关闭事务,无需手动关闭
------------------------------
SchemaExport 工具创建表
Configuration conf= new Configuration(); //XML
AnnotationConfiguration annConf = new AnnotationConfiguration(); //Annotation
// 指定要创建的实体类对应的表
conf/annConf.addClass(类.class);
conf.Configure(); // 加载配置定义的类
SchemaExport se = new SchemaExport(conf/annConf);
se.create(true/*是否打印dllSQL数据*/, true/*是否根据映射文件创建表*/);
- Hibernate Session Api
- Hibernate session API
- Hibernate Session API
- Hibernate绑定session以及api的使用
- Hibernate学习07---Hibernate的Session-API实现CRUD
- session API
- Hibernate session
- Hibernate Session
- Hibernate Session
- Hibernate Session
- Hibernate Session
- Hibernate Session
- Hibernate Session
- hibernate session
- Hibernate Session
- Hibernate--Session
- Hibernate-Session
- Hibernate-Session
- Is Best Buy’s ‘Buy Back’ Program a Good Buy? Read more: http://business.time.com/2011/02/11/is-best
- Why You Shouldn’t Be Worried About Surging Oil Prices
- IT 术语
- Hibernate3配置文件
- 首尾相连数组的最大子数组和
- Hibernate session API
- Hibernate ORM
- 飘逸的python - 简明gzip模块压缩教程
- //Sticks Time Limit: 1000MS Memory Limit: 10000K POJ//
- Hibernate缓存
- Hibernate锁
- Hibernate HQL
- 创业成功者必须具有的三大特质
- Hibernate抓取策略