Hibernate 语法:
Hibernate的所有的操作都是通过Session完成的.
基本步骤如下:
1:通过配置文件得到SessionFactory:
SessionFactory sessionFactory=new Configuration().configure().buildSessionFactory();
2:通过SessionFactory 得到一个Session
Session session=sessionFactory.openSession();
3:通过session进行插入,删除,修改以及查询.
插入例子:(
1)声明一个事务;(2)Session执行save()操作;(3)事务提交;(4)关闭Session,可选.
public void insert(Person p){
Transaction tran=session.beginTransaction();
session.save(p);
tran.commit();
// session.close();
}
修改例子:(
1)声明一个事务;(2)Session执行update()操作;(3)事务提交;(4)关闭Session,可选.
public void update(Person p){
Transaction tran=session.beginTransaction();
session.update(p);
tran.commit();
// session.close();
}
删除例子(主键删除,推荐使用):(
1) 声明删除的SQl语句;(2)创建session的Query对象;(3)设置Query对象的参数;(4)执行Query的executeUpdate()操作;(5)Session事务提交
public void delete(int id){
String hql="delete Person as p where p.id=?";
Query query=session.createQuery(hql);
query.setInteger(0,id);
query.executeUpdate();
session.beginTransaction().commit();
}
删除例子(对象删除)
:(1)声明一个事务;(2)Session执行delete()操作;(3)事务提交;(4)关闭Session,可选.
public void delete(Person p){
Transaction tran = session.beginTransaction();
session.delete(p);
tran.commit();
session.close();
}
查询例子:(跟删除差不多) 查询语句不需要事务提交
(1) 声明删除的SQl语句;(2)创建session的Query对象;(3)设置Query对象的参数;
public Persion queryById(int id){
String hql="from Person as p where p.id=?";
Query query=session.createQuery();
query.setInteger(0,id);
List rsList=query.list();
iterator it=rsList.iterator();
Person person=null;
while(it.haseNext()){
person=(Person)it.next();
}
return person;
}
相关推荐
批处理是 Hibernate 中一种提高性能的方法,特别是在进行大量数据的插入、更新或删除时尤为明显。 - **默认行为** - 默认情况下,Hibernate 每次执行一条 SQL 语句后都会自动提交事务。 - **批量处理** - 可以...
1. **SQL日志**:p6spy能够详细记录SQL语句的执行,包括查询、更新、插入和删除等,这对于调试和性能分析非常有帮助。 2. **性能分析**:p6spy可以记录每个SQL语句的执行时间,帮助我们找出数据库性能瓶颈。 3. **...
Hibernate会自动执行相应的删除SQL语句。 4. **更新(AttachDirty)** `attachDirty()`方法用于更新已存在的数据库记录。当传递给此方法的实体对象已经存在于数据库中但属性有所更改时,Hibernate会识别这些变化并...
1. **对象状态检查**:Hibernate会检查Session中的所有对象,判断它们是否需要被更新、插入或删除。这包括对持久化对象的脏检查,即比较对象的当前状态和上次持久化时的状态。 2. **生成SQL语句**:根据对象的状态...
原生SQL查询(Native SQL Queries)部分讲解了如何在Hibernate中执行原生SQL语句,并且如何处理查询结果。 空间查询(Spatial)描述了如何在Hibernate中处理空间数据和执行空间查询。 多租户(Multitenancy)讨论...
使用HQL(Hibernate Query Language)编写SQL查询语句,例如`"FROM Person as p WHERE p.id = ?"`。设置参数,`q.setString(0, id)`,执行查询并获取结果列表。遍历结果集,将第一个元素转换为`Person`对象并返回。...
- **批量更新/删除**:使用SQL语句或HQL进行批量操作。 #### 5.3 懒加载与立即加载 - **懒加载**:默认情况下,Hibernate在需要时才加载关联对象的数据。 - **立即加载**:在加载当前对象时立即加载其关联对象的...
- 编写INSERT语句来插入新的记录。 - **3.2.4 修改** - 使用UPDATE语句来修改现有的记录。 - **3.2.5 删除** - 通过DELETE语句删除记录。 - **3.3 使用HQL** - **3.3.1 HQL是什么** - HQL(Hibernate Query ...
Hibernate是一个强大的Java持久层框架,它提供了对象关系映射(ORM)功能,使得开发者可以使用面向对象的方式来操作数据库,避免了繁琐的SQL语句编写。在Java应用中,Hibernate极大地简化了数据库操作,使得开发更加...
**Hibernate 简单入门讲解一:简单的数据插入讲解** Hibernate 是一款强大的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了Java应用程序中的数据库操作。在这个简单入门讲解...
Hibernate也提供了一个名为Criteria API的查询方式,它是一个面向对象的查询接口,允许开发者通过编码的方式构建查询,而不是写字符串形式的查询语句,这使得 Criteria API成为类型安全的查询构建方式。 在实际的...
首先,我们需要从数据库中获取到要删除的对象,然后调用delete()方法,Hibernate会自动执行对应的DELETE SQL语句。 **4. 修改(Update)** 更新数据则通过Session的update()方法完成。当我们修改了一个持久化对象的...
Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务,使得开发人员可以避免编写大量的SQL语句,从而更加专注于业务逻辑。通过Hibernate,我们可以将Java对象与数据库中的表...
然后,使用`createQuery`方法执行一个HQL(Hibernate Query Language)查询语句,其中`from Info where id=:id`指定了查询条件,即从`Info`表中查找`id`为1的记录。通过`setInteger`方法设置查询参数,然后调用`list...
2. **对象状态的跟踪**:ORM框架会跟踪对象的状态变化,如新增、修改或删除,并自动执行相应的数据库操作。 3. **事务管理**:ORM框架通常提供了内置的事务管理功能,以确保数据操作的完整性和一致性。 #### 五、...
- 执行操作:在Session中执行CRUD操作,包括查询、插入、更新和删除。 - 提交事务:对数据库的所有更改进行提交或回滚。 6. Hibernate的其他功能: - HQL(Hibernate Query Language):面向对象的查询语言,...
通过阅读源码,我们可以了解到Hibernate如何处理中间表的插入、更新和删除操作。 六、工具支持 在开发过程中,IDE如IntelliJ IDEA和Eclipse提供了很好的Hibernate支持,可以自动生成关联映射代码和SQL语句,帮助...
- **修改持久对象**: 直接修改对象的状态,Hibernate会自动同步到数据库。 - **修改脱管(DETACHED)对象**: 需要重新加载或使用Session的persist方法将其变为持久状态。 - **自动状态检测**: Hibernate能够自动检测...
- **本地SQL**:直接使用数据库的SQL语句进行查询。这种方式适用于那些HQL或QBC无法满足的复杂查询场景。 #### 2. `load()`和`get()`的区别 - **`load()`**:此方法主要用于加载对象。如果数据库中不存在指定ID的...