hibernate的API
2024-08-30 04:52:19
程序源码:
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import pers.zhb.domain.Student; class HinernateTest{ public static void testAdd() { //(1)加载hibernate核心配置文件 //src目录下的配置文件名称是固定的:hibernate.cfg.xml Configuration configuration= new Configuration(); configuration.configure(); //(2)读取hibernate核心配置文件的内容,创建sessionFactory对象,根据映射关系创建相应的表 SessionFactory sessionFactory=configuration.buildSessionFactory(); //(3)利用sessionFactory对象创建session对象 //类似于创建连接 Session session=sessionFactory.openSession(); //(4)开启事务 Transaction transaction=session.beginTransaction(); //(5)具体操作 Student student=new Student(); student.setSname("zzzz"); student.setSex("男"); student.setBirthday("2019-11-11"); student.setClassno("201911"); student.setPoint(111); student.setPhone("1873496511"); student.setEmail("20171514@qq.com"); session.save(student); //(6)提交事务 transaction.commit(); //(7)关闭资源 session.close(); sessionFactory.close(); } public static void main(String []args){ HinernateTest hinernateTest=new HinernateTest(); hinernateTest.testAdd(); } }
1、configuration对象:
Configuration configuration= new Configuration(); configuration.configure();
创建时调用空参构造方法,加载src目录下的hibernate.cfg.xml文件。
2、sessionFactory对象(用于创建操作数据库的session对象的工厂):
SessionFactory sessionFactory=configuration.buildSessionFactory();
根据配置信息,创建sessionFactory对象。
特点:
(1)负责保存和使用所有配置信息,消耗的内存资源比较大。
(2)线程安全。
根据sessionFactory对象的特点,应该尽量只创建一个sessionFactory对象。
3、session对象:
Session session=sessionFactory.openSession();
类似于JDBC中的创建连接。
4、transaction对象:
Transaction transaction=session.beginTransaction();
开启事务并获得操作事务的transaction对象。
5、提交事务:
transaction.commit();
6、回滚事务:
transaction.rollback();
7、释放资源:
session.close(); sessionFactory.close();
最新文章
- JVM-操作码助记符
- 洛谷P1196 银河英雄传说[带权并查集]
- 解析html并使用canvas进行渲染
- [转]IIS添加MIME扩展类型及常用的MIME类型列表
- WampServer 给电脑搭建apache服务器和php环境
- PHP访问数据,增删改
- [原]Unity3D深入浅出 - 物理引擎之碰撞体(Colliders)
- 领域驱动设计和实践(转:http://kb.cnblogs.com/page/112298/)
- cocos2d-x 3.6版连连看载入资源
- 移除UIView上面的所有控件
- windows tcp端口映射或端口转发
- Linux IO控制命令生成
- sql server 高可用故障转移(3)
- cmd中mysql主键id自增,在添加信息时发生错误,再次成功添加时,id已经跳过错误的信息继续自增。
- 关于pycharm中使用charts无法显示图表的问题(属于个人粗心问题)
- pThreads线程(一) 基本API
- 由n个元素组成的数组,n-2个数出现了偶数次,两个数出现了奇数次,且这两个数不相等,如何用O(1)的空间复杂度,找出这两个数
- 利用图片中的exif元数据批量查找图片中所包含的GPS信息
- Python: 读文件,写文件
- 基于AppDomain的";插件式";开发