我的Hibernate学习记录(二)

通过上一篇文章我的hibernate学习记录(一)基本上的入门了hibernate,但是,里面还有还多东西是通过迷迷糊糊的记忆,或者说copy直接弄进去的,所以这篇文章就需要对上篇的一些文件、对象进行说明。

hibernate配置文件

1.xxx.hbm.xml
  上一篇中有个文件是customer.hbm.xml,这是一个关于对象实体和表之间关系的配置文件

  • 根节点是hibernate-mapping 其中这里有一个属性package,package可能一看就知道是什么了,就是代表着一个包,写入的是包名,这个方便在里面的子元素以后凡是需要用到完整类名的都可以直接使用简单类名代替,例如:子元素class中有一个属性name,这是填入类名的,我们可以不用cn.lger.domain.Customer,而是可以直接使用Customer
  • 节点class元素, 这是实体与表之间的对应关系,其中name声明是哪个类,table声明是哪个表
    节点
  • 节点id是主键的映射属性,name是填写类中对应的属性名,colum填写的是表中对应的列名。id中的还有一个节点generator ,这是主键的生成策略,意思就是我们在表中id的值生成的方法,这里我使用了increment,它是代表在数据库中主键是自增长的,每每生成一个记录都会在原有的基础上id+1
  • 节点property 的应用很广,hibernate中是配置键值对的,相当于我们java中的Map,这里配置了字段名与实体属性之间的映射关系,当然这些都不是必须的,可以不写

2.xxx.cfg.xml
  这是hibernate的主配置文件,主要是通过该配置文件然后hibernate程序启动时解析该文件的信息,比如数据库连接信息,对象与数据库表之间的映射信息
  hibernate-configuration是根节点,节点中包含了session-factory session-factory是hibernate中SessionFactory对象的一个配置信息

hibernate对象

 1.Configuration对象
这个类我是简单的先理解为加载配置文件的工具类。
Configuration中有几个构造函数分别是:

//空参构造在内部实现的时候是调用了configure(String resource)
//它默认的加载了classpath下的hibernate.cfg.xml
public Configuration configure()

//通过字符串所代表的配置文件的路径加载
public Configuration configure(String resource)

//通过URL加载文件,读取的也是一个路径
public Configuration configure(URL url)

//File类,可以代表一个文件或者目录,所以这也是实现对文件的加载
public Configuration configure(File configFile)

 2.SessionFactory对象
SessionFactory是Session的工厂,里面包含了数据库的连接信息等
功能很单一,就是生产(创建)Session,它是通过Configuration生成的信息被创建的,所以Configuration的行动就是为了生成SessionFactory
 3.Session&Transaction对象
Session是操作数据库的一个对象,与数据库进行连接,相当于JDBC中Connection,但是Session比起Connection功能更加多,可以直接操作数据库
Transaction关于这个的理解,我也不是很到位,所以这里贴出一些别人的文章作为参考:

http://blog.csdn.net/leroy008/article/details/8594397
http://blog.csdn.net/qq_33442549/article/details/51824616
http://www.cnblogs.com/BigAngel/p/3498534.html

原文地址:https://www.cnblogs.com/lger/p/7531093.html