Hibernate配置和对象详解

    xiaoxiao2021-03-25  112

    Hibernate.cfg.xml常用配置

    属性名含义hibernate.show_sql是否把Hibernate运行时的SQL语句输出到控制台,编码阶段便于测试。hibernate.format_sql输出到控制台的SQL语句是否进行排版,便于阅读。建议设置为true。hbm2ddl.auto可以帮助有java代码生成数据库脚本,进而生成具体的表结构。create/update/create-drop/validatehibernate.default_schema默认的数据库hibernate.dialect配置Hibernate数据库方言,Hibernate可针对特殊的数据库进行优化

    注:hibernate的前缀可以省略,即:hibernate.dialect等于dialect

    session简介

    hibernate的执行流程: 操作数据库的对象session与connection是多对一的关系,每个session都有一个与之对应的connection,一个connection不同时刻可以供多个session使用session的方法:save()、update()、delete()、createQuery()等

    transaction简介

    hibernate对数据的操作都是封装字事务当中,并且默认是非自动提交的方式,所以用session保存对象时,如果不开启事务,并且手动提交事务,对象并不会真正保存在数据库中如果想让hibernate像jdbc那样自动提交事务,必须调用session对象的doWork()方法,获得jdbc的connection后,设置其为自动提交事务模式(通常不推荐这样做) session.doWork(new Work(){ public void execute(Connection connection) throws SQLException{ connection.setAutoCommit(true); } }) session.save(对象实例); session.flush();

    session详解

    如何获得session对象 openSessiongetCurrentSession(单例模式) 如果使用getCurrentSession需要在hibernate.cfg.xml文件中进行配置:如果是本地事务(jdbc事务):

    hbm配置文件常用设置

    <hibernate-mapping schema="schemaName" //设置模式名字 catalog="catalogName" //设置目录名称 default-cascade="cascade_style" //级联风格 default-access="field|property|ClassName" //访问策略 default-lazy="true|false" //加载策略 package="packagename" //设置默认包名 /> <class name="ClassName" //映射到哪个类 table="tableName" //映射到哪张表 batch-size="N" //抓取策略,一次抓取多少条记录 where="condition" //抓取条件 entity-name="EntityName" //支持一个实体类映射到多张表 /> <id //id表示主键 name="propertyName" //映射到哪个属性 type="typename" //数据类型 column="column_name"//数据库中字段名 length="length" //数据长度 <generaotr class="generatorClass"/> //主键生成策略 /> 常见主键生成策略
    转载请注明原文地址: https://ju.6miu.com/read-6834.html

    最新回复(0)