Hibernate基础介绍

来源:互联网 发布:绿茶软件园源码 编辑:程序博客网 时间:2024/06/16 06:49

Hibernate:

是Java领域的一款ORM框架的技术;

是对JDBC进行非常轻量级的封装;

     在Eclipse中配置Hibernate Tools:

Help—>Eclipse Markets Place —>在输入框中输入Hibernate-Tools—>Go—>JBoss Tools —>Install —>安装—>重新启动;

     Hibernate.cfg.xml常用配置:

show_sql:是否把Hibernate运行时的SQL语句输入到控制台;

format_sql:输入控制台的sql是否进行排版,便于阅读;

hbm2ddl.auto:可以帮助由Java代码生成数据库脚本,进而生成具体表结构,create、update、create-drop、validate;

default_schema:默认数据库;

dialect:配置数据库的方言,可以针对特殊的数据库进行优化;

    Session介绍:

configration:读取Hibernate.cfg.xml文件;

SessionFactory:对象映射关系文件 ,他的创建和销毁都是非常消耗资源的,通常一个数据库只创建一个;

session:类似于JDBC的connection,进行数据save、delete、update等;

不建议使用Jdbc的connection操作数据库路,而是使用Session操作数据库,Session和connection是多对一的关系,每一个Session都有与之对应的connection,一个connection不同时刻可以给多个Session使用;

transaction:Hibernate对数据的操作都是封装在事务当中的,并且是非自身的提交方式,所以在Session中保存对象,如果不手动提交事务,对象并不会保存在数据库中;

获取session:

1.SessionFactory的openSession;

2.getcurrentSession:如果使用这种方法需要在Hibernate.cfg.xml文件中进行配置;

本地事务:<property name="hibernate.current_session_context_class">thread<property>

全局事务:<property name="hibernate.current_session_context_class">jat<property>

openSession和getcurrentSession的区别:

1.getcurrentSession在事务提交或者回滚会自动关闭,而openSession需要自己手动关闭,如果多次使用openSession而没有手动关闭,会可能导致连接池溢出;

2.openSession会每次创建新的Session;getcurrentSession使用现有的Session(单例);

   hbm配置文件常用设置:

<hibernate-mapping

schema="模式的名字"

catalog="目录名字"

default-cascade="级联风格"

default-access="访问策略"

default-lazy="加载策略"

package="包名"

/>

<class 

name="类名"

table="表名"

batch-size="抓取多少条记录”

where="条件"

/>

<id

name="属性名"

type="数据类型'

column="字段名"

length="长度"

<generator class="主键生成策略"

/>

常用主键生成策略:

1.assigned 由Java应用程序负责生成;

2.native有底层数据库自动生成,mysql是autoincrement、Oracle是sequence



0 0
原创粉丝点击