Hibernate中Session增删改查操作详解
什么是Hibernate Session
Hibernate是一个优秀的ORM框架,其核心是由多个API组成,其中最重要的是Session
。Session是用于与数据库进行交互的主要接口之一,它提供了一系列的增删改查方法,这些方法需要依赖于Hibernate配置的实体类(Entity)的映射关系在数据库中完成对数据库记录的访问与操作。
SessionFactory的创建
在进行任何一个Hibernate操作之前,必须先创建一个SessionFactory
实例。一般情况下,SessionFactory
只需要在应用程序启动时创建一次即可。以下是一个SessionFactory的创建示例:
Configuration configuration = new Configuration().configure();
StandardServiceRegistryBuilder builder =
new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
SessionFactory sessionFactory = configuration.buildSessionFactory(builder.build());
增加数据
使用Hibernate增加数据时,需要创建一个实例对象并将其保存到数据库中。以下是一个增加数据的示例:
Session session = sessionFactory.getCurrentSession();
try {
session.getTransaction().begin();//开启事务
User user = new User("张三", "123456");
session.save(user);//保存User对象
session.getTransaction().commit();//提交事务
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();//回滚事务
}
删除数据
删除数据时,需要先查询到要删除的记录,之后再将其从数据库中删除。以下是一个删除数据的示例:
Session session = sessionFactory.getCurrentSession();
try {
session.getTransaction().begin();//开启事务
User user = session.get(User.class, 1);
session.delete(user);//删除User对象
session.getTransaction().commit();//提交事务
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();//回滚事务
}
修改数据
Hibernate修改数据时,也需要先查询到需要修改的记录,之后在修改其属性并提交事务。以下是一个修改数据的示例:
Session session = sessionFactory.getCurrentSession();
try {
session.getTransaction().begin();//开启事务
User user = session.get(User.class, 1);
user.setUserName("李四");
session.update(user);//更新User对象
session.getTransaction().commit();//提交事务
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();//回滚事务
}
查询数据
查询数据时可以使用session.get()
方法根据主键值获取一条记录,或者使用session.createQuery()
方法创建查询对象并执行查询。以下是一个查询数据的示例:
Session session = sessionFactory.getCurrentSession();
try {
session.getTransaction().begin();//开启事务
User user = session.get(User.class, 1);//根据主键获取User对象
List<User> users = session.createQuery("FROM User").list();//返回查询结果列表
session.getTransaction().commit();//提交事务
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();//回滚事务
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Hibernate中Session增删改查操作代码详解 - Python技术站