-
获得session对象 (1)openSessionion (2)getCurrentSession 如果使用getCurrentSession需要在hibernate.cfg.xml文件中进行配置: 如果是本地事务(jdbc事务) <property name="hibernate.current_session_context_class">thread</property> 如果是全局事务(jta事务) <property name="hibernate.current_session_context_class">jta</property> openSession 每次使用都是打开一个新的session,使用完需要调用close方法关闭session; getCurrentSession 是获取当前session对象,连续使用多次时,得到的session都是同一个对象,这就是与openSession的区别之一; 一般在实际开发中,往往使用getCurrentSession多,因为一般是处理同一个事务,所以在一般情况下比较少使用openSession;查看全部
-
1、Hibernate对数据的操作都是封装在事务当中,并且默认是非自动提交的方式。所以用session保存对象时,如果不开启事务,并且手工提交事务,对象并不会真正保存在数据库中。 2、如果不开启事务,并想让Hibernate像jdbc那样自动提交事务,必须调用session对象的doWork()方法,获得jdbc的connection后,设置其为自动提交事务模式。(注意:通常并不推荐这样做) Ps:在session.save();前操作doWork(new Work(){conn.setAutoCommit(true);});时,记得在session.save();后调用session.flush();否则对象不会保存到数据库中。查看全部
-
configuration:读取配置文档 sessionFactory:对象关系映射文件 session:操作数据库的对象,类似于JDBC中的connection session的方法:save,delete,update,createQuery() Transaction:commit session和connection:多对一关系,一个connection服务多个session,每个session都有与之对应的connection 1.不建议直接使用jdbc的connection操作数据库,而是通过session操作数据库。 2.session可以理解为操作数据库的对象,操作数据库之前必须先获取session的实例 3.session与connection,是多对一关系,每个session都有一个与之对应的connection,一个connection不同时刻可以供多个session使用。 4.把对象保存到关系数据库中需要调用session的各种方法:save(),update(),delete(),createQuery查看全部
-
<property name="show_sql">true</property> <property name="format_sql">true</property> <property name="hibernate.default_schema">hibernate</property>//设置前提在hbm.xml里没有设置schema="dbo" catalog="hibernatedb";否则无效,hbm.xml设置会优先。 <property name="hbm2ddl.auto">create</property> 1、create:先删除原有的表,然后重新生成。 2、update:不会删除原有的表,在原有的基础上继续操作。查看全部
-
//创建初始化 @Before Configuration config=new Configuration().configure();//创建配置对象 //创建服务注册对象 ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(config.getProperties).buildServiceRegistry(); sessionFactory=config.buildSessionFactory(serviceRegistry);//创建会话工厂 session=sessionFactory.openSession();//打开会话 transaction=session.beginTransaction();//打开事务 transaction.commit();//提交事务 session.close();//关闭会话 sessionFactory.close();//关闭会话工厂查看全部
-
使用 junit 测试: @Test 测试注释标签 @Before 初始化方法 @After 释放资源查看全部
-
hibernate持久化类的设计原则,和JavaBeans一样,遵循4个设计原则: 1.是公有的类 2.提供公有的不带参数的默认的构造方法 3.属性私有 4.属性setter/getter封装查看全部
-
<property name="connection.username">root</property> <property name="connection.password">123456</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql:///hibernate?useUnicode=true&characterEncoding=UTF-8</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">true</property> <property name="format_sql">true</property> <property name="hbm2ddl.auto">create</property>查看全部
-
@什么是Hibernate Hibernate是java领域的一块开源的ORM框架技术。 Hibernate对JDBC进行了非常轻量级的对象封装。 @其它主流的ORM框架技术: 1、MyBatis:前身就是著名的iBatis。 2、Toplink:后被Oracle收购,并重新包装为Oracle AS TopLink。 3、EJB:本身是JAVAEE的规范。查看全部
-
太多数据库语句的缺点: (1)不同数据库使用的SQL语法不同 eg:PL/SQL与T/SQL (2)同样的功能在不同的数据库中有不同的实现方式。 eg:分页SQL (3)程序过分依赖SQL对程序的移植及扩展,维护等带来很大的麻烦查看全部
-
ORM:Object/Relationship Mapping查看全部
-
单表crud查看全部
-
区别2:当查询对象不存在时 get返回null load返回ObjectNotFound异常查看全部
-
session.get()和session.load()的区别查看全部
-
组件属性查看全部
举报
0/150
提交
取消