-
session详解: 1、如何获取session对象? (1)openSession方法(2)getCurrentSession方法 他们都是来自于SessionFactory,如果使用getCurrentSession方法则需要在hibernate.cfg.xml文件中进行配置: 如果是本地事务(jdbc事务) <propertyname="hibernate.current_session_context_class">thread</property> 如果是全局事务(jta事务) <propertyname="hibernate.current_session_context_class">jta</property>查看全部
-
session:hibernate是对jdbc的封装,不建议使用jdbc的connect操作数据库,而是通过session对象操作,即session可以理解为操作数据库的对象。在使用hibernate操作数据库时就必须要获取一个Session的实例对象,session与Connection对象,是多对一关系,每一个session都有一个与之对应的Connection对象,一个Connection对象不同时刻可以提供对个session使用。要想把对象保存到关系数据库中需要调用session的各种方法,如save()、update()、delete()、createQuery()等。查看全部
-
hibernate的执行流程: 1.首先创建一个配置对象叫configuration用于读取配置文档hibernate.cfg.xml Configuration config=new Configuration().configure(); 2.目的是用于创建sessionFactory对象 SessionFactory sessionFactory=config.buildSessionFactory(); 创建sessionFactory对象时就会读取相应的关系映射文件Students.hbm.xml 3.获得sessionfactory对象后就可以创建session对象 Session session=sessionFactory.openSession(); 类似于jdbc中的Connection对象,获得一个session对象就相当于获取到一个数据库链接对象,我们就可以执行session的功能save、delete、update、get等功能 4.在执行session的某个方法是必须要开启一个事务 Transaction transaction=session.beginTransaction(); 因为方法需要封装在事务当中,在执行完方法<session.save(s);>后要提交事务<transaction.commit();>,然后关闭session <session.close();>。查看全部
-
hbm2ddl.auto若设置成create,表示删除原有的表结构,包括里面原有的数据,创建新的表结构,并插入新的数据。 update,表示在原有表结构的基础上进行更新,保留原有的数据,对表结构进行更新,并插入新的数据。 create-drop,表示先创建,后删除。 validate,表示对原有的表结构进行验证,如果现有的表结构与原有的不一致则不对表结构进行更新。查看全部
-
hibernate.cfg.xml常用配置:查看全部
-
单表操作curd: get与load的区别:1、在不考虑缓存的情况下,get方法在调用之后立即向数据库发出SQL语句,返回持久化对象。load方法会在调用后返回一个代理对象。该代理对象只保存了实例对象的ID,直到使用对象的非主键属性时才会发出SQL语句。2、查询数据库中不存在的数据时,get方法返回null,load方法抛出异常org.hibernate.objectNotFountException查看全部
-
hbm配置文件常用设置 <hibernate—mapping schema="schemaName"//表示模式的名字 cataog="catalogName"//表示目录的名称 default-cascade="cascde_atyle"//级联风格 default-acess="field|property|ClassName"//访问策略 default-lazy="true|false"//加载策略 package="packagename" /> <class name="ClassName"//对象关系映射映射的是哪一个类 table="tableName"//表示把这个类映射为数据库的那张表 batch-size="N"//抓取策略 where="condition"//设置抓取的条件 entity-name="EntityNmae"//表示同一个类可以映射为多个表 /> <id name="propertyNmae"//表示映射的属性名 type="typeName"//表示映射属性的类型 column="length"//表示映射属性在数据表中的名称 length="length"//表示指定长度 <generator class="generatorClass"/>//表示逐渐生成策略 /> 主键生成策略: 1、increment:适用于代理主键,由hibernate自动以递增方式生效。 2、identity:适用于代理主键,由数据库生成标识。 3、sequence:适用于代理主键,hibernate根据地层数据库的序列生成的标识,这要求地层数据库支持序列。 4、Hilo:使用代理主键,hibernate分局high/low算法生成标识。 5、seqhilo:适用于代理主键,使用一个高/低位算法来高效的生成long,short或者int 类型的标识符。 6、native:适用于代理主键,根据底层数据库对自动查看全部
-
openSession与getCurrentSession的区别? 1、getCurrentSession在事务提交或回滚之后会自动关闭,而openSession需要你手动关闭。如果使用openSession而没有手动关闭,多次后会导致链接此池溢出。 2、openSession 每次创建新的Session对象,而getCurrentSession使用现有的Session对象。查看全部
-
session详解: 1、如何获取session对象? 通过openSession方法和getCurrentSession方法他们都是来自与SessionFactory方法,如果使用getCurrentSession需要在hibernate.cfg.xml文件中进行配置: 如果是本地事务(jdbc事务) <propertyname="hibernate.current_session_context_class">thread</property> 如果是全局事务(jta事务) <propertyname="hibernate.current_session_context_class">jta</property>查看全部
-
transaction(事务)简介; 1、hibernate对数据的操作都是封装在事务当中,并且默认是非自动提交方式。所以用session保存对象时,如果不开启事务,并且手工提交事务,对象并不会真正保存在数据库中。 2、如果你想让hibernate像jdbc那样自动提交事务,必须调用session对象的doWork()方法,获得jdbc的Connection后,设置其为自动提交模式(注意:通常并不推荐这样做)在session保存后,通过session.flush()输出SQL语句。查看全部
-
session简介: 1、hibernate的执行流程:首先创建一个配置对象叫configuration用于读取配置文档hibernate.cfg.xml,目的是用于创建sessionFactory对象,创建sessionFactory对象时就会读取相应的关系映射文件User.hbm.xml,获得sessionfactory对象后就可以创建session对象,类似于jdbc中的Connection对象,获得一个session对象就相当于获取到一个数据库链接对象,我们就可以执行session的功能save、delete、update、get等功能,在执行session的某个方法是必须要开启一个事务,因为方法需要封装在事务当中,在执行完方法后年要提交事务,然后关闭session。 session:hibernate是对jdbc的封装,不建议使用jdbc的connect操作数据库,而是通过session对象操作,即session可以理解为操作数据库的对象。在使用hibernate操作数据库时就必须要获取一个Session的实例对象,session与Connection,是多对一关系,每一个session都有一个与之对应的Connection,一个Connection不同时刻可以提供对个session使用。要想把对象保存到关系数据库中需要调用session的各种方法,如save()、update()、delete()、createQuery()等。查看全部
-
hibernate.cfg.xml常用配置 1、hibernate.show_sql:表示是否把hibernate运行时的SQL语句输出到控制台,编码阶段便于测试。 2、hibernate.format_sql:表示输出到控制台的SQL语句是否进行排版,便于阅读。建议设置为TRUE。 3、hbm2ddl.auto:可以帮助由Java代码生成数据库脚本,进而生成具体的表结构。create|update|create-drop|validate. 4、hibernate.default_schema:默认的数据库。 5、hibernate.dialect:配置hibernate数据库方言,hibernate可针对特殊的数据库进行优化。查看全部
-
通过hibernate API 编写访问数据库代码: //创建配置对象。 Configuration config=new Configuration().configure(); //创建服务注册对象 ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(config.getProperties())。buildServiceRegistry(); //创建会话工厂对象 sessionFactory=Config.buildSessionFactory(serviceRegistry); //打开会话 session =sessionFactory.openSession(); //打开事物 transaction=session.beginTransaction();查看全部
-
使用Junit进行测试 要使用到的标签: @Test:要测试的方法。 @Before:初始化方法(表示在测试前会先执行before方法进行初始化)。 @After:释放资源。 执行次序:@before标签下的方法——>@test方法——>@after释放资源。查看全部
-
创建对象关系映射文件和数据库: 1、创建students.hbm.xml文档,把实体类映射为数据库中的标,并把属性映射为数据空 库中的表中的字段。 创建好队形关系映射文件后,将文件添加到配置文档当中(<mapping resource="students.hbm.xml"/>)查看全部
举报
0/150
提交
取消