发表于: 2018-03-28 11:13:42

2 782


eleventh day



今日任务:


1. Hibernate Tutorial    https://www.tutorialspoint.com/hibernate/index.htm

2. XML 学习(配置 Hibernate 受挫,我要找个东西虐虐)

3. Java 解析 XML 


学习轨迹:


模块一: Hibernate

模块二:XML

模块三:JAVA 解析 XML 


第一模块: Hibernate 课程


昨天学习了ORM之一的Hibernate的综述部分。ORM是对象和关系型数据库映射的一个服务,Hibernate是一个实现这个服务的框架。


1. Hibernate Architecture


Hibernate 提供的分层结构将底层的API隐藏,这样用户开发的时候只需要关心业务就OK了。Hibernate 通过数据库和数据配置向应用提供数据持久化服务

思想汇报。

 Hibernate 应用框架结构:

最上层是: Java 应用,下面是持久化对象,再下面就是 Hibernate 框架的内容了 —包括属性和XML映射,最底下是数据库。

Hibernate 详细架构:

比上面的结构更加精细,将Hibernate中的具体模块全部列出来了:配置、会话工厂、会话、事务、查询和 Criteria(条件,标准)

Hibernate 使用多种已经存在的Java API,比如JDBC,JTA(Java Transaction API, java 事务api),以及JNDI(Java Naming and Dirctory API)。JDBC是对关系数据库操作的基本抽象API,Hibernate 可以访问任何使用了JDBC驱动的数据库。 JNDI 和 JTA 的加入让Hibernate可以集成到J2EE应用服务中。


接下来对Hibernate应用架构中的每个类做一个简单的介绍:


1. Configuration Object(配置类或者叫配置对象)

        在创建Hibernate应用中,Configuration Object 是第一个需要创建的Hibernate对象,通常是在应用初始化的时候创建一次。它代表了Hibernate的配置或者属性文件。

Configuration Object 提供了两个关键组件:

     a. Database Connection(数据库连接): 这个组件通过对 hibernate.properties 和 hibernate.xml 文件的处理来支持Hibernate

     b. Class Mapping Setup(类映射关系的建立):这个组件在 java 类和数据库表之间建立了连接(Connection)


2. SessionFactory Object(会话工厂对象)

        Configuration Object 被用来创建一个 SessionFactory Object(它通过文件对Hibernate进行配置,并且允许 Session Object 被创建)。 SessionFactory Object 是线程安全的,并且可以被应用中任何一个线程使用。


       SessionFactory 是一个重量级对象,一般在工程启动的使用创建并且保存以便后面使用。一个数据库对应一个SessionFactory Object,通过一个分开的配置文件实现。所以,如果你的应用中使用了多个数据库,那么久应该创建多个SessionFactory Object.


3. Session Object (会话对象)

一个 Session 就是一个数据库的物理连接。Session Object 是轻量级的,每次与数据库进行交互的时候都会被初始化一次。 Persistent objects 每次被保存到数据库和从数据库中取出都是通过 Session Object 来完成的。

Session Object 是线程不安全的,因此这个对象不应该存在太长时间。使用的时候创建,不适用的时候销毁,就可以了。


4. Transaction Object(事务对象)

一个 Transaction 代表了一组对数据库的操作,绝大多数数据库都支持事务功能。事务在 Hibernate 中是由底层的transaction manager 和 transaction (来自:JDBC和JTA)管理的。

这是一个可选对象,Hibernate 应用可以选择不使用这个接口而通过自己工程里的代码来管理事务。


5. Query Object(查询对象)

Query Object 通过 SQL 或者 HQ(Hibernate Query Language)字符串的方式从数据库中获取数据并且创建对象。一个查询实例通常被绑定上查询参数,限制结果集的条数,最终执行查询操作。


6. Criteria Object(标准对象)

Criteria Objects 被用来执行标准的查询来获取对象。

 

这一节整体上介绍了 Hibernate 的结构以及每一模块的作用,非常nice,高屋建瓴。


2. Hibernate - Environment (环境)

正如题目所示,这一节是关于一款Hibernate应用的环境搭建的,使用的是MySQl,所以在进行之前首先要安装好MySQL数据库(https://www.tutorialspoint.com/mysql/index.htm)。


。。。 配置Hibernate环境无果 ... ... 炒鸡复杂的感觉


第二模块: XML


为什么是 XML 呢? XML我看你不顺眼好久了,因为和HTML长的很像,每次看到都感觉很多余 ... ...

这次在学习Java的过程中,不止一次的出现了XML这个东西,所以有必要好好看一下,认识一下XML到底是什么东西。记得以前还糊里糊涂的解析过XML,不过也没有细看到底是什么,只是去除其中的内容就完事了。


1.了解XML

      XML 是可扩展的标记语言;

      XML 被设计用来传输和存储数据;

      XML 不显示任何数据

2. XML 用途: 简化数据共享,简化数据传输,简化平台变更

3. 没想到 RSS 竟然和 XML 有关系,而且竟然有专门的RSS课程(https://www.w3cschool.cn/rss/rss-intro.html

4. XML 是树结构的,标签之间以父子和兄弟相称,标签内容自己定义

5. 语法:

  5.1 XML 元素都必须有一个关闭标签;

  5.2 XML 标签大小写敏感
  5.3 XML 标签必须正确嵌套
  5.4 XML 标签必须有根元素
  5.5 XML 标签属性必须加引号

  5.6 实体引用

  5.7 XML 注释 <!-- This is a comment -->

  5.8 XML 变迁中,空格会被保留
  5.9 XML 以 LF 存储换行

6. XML  元素: 从开始标签直到结束标签部分为一个元素。

7. 尽量使用元素而不使用属性


通过IDEA就可以了创建 XML 文件:

到此 XML 已经基本上认识了, 现在再看到XML不再陌生了:


<!-- https://mvnrepository.com/artifact/org.actframework/act -->

<dependency>

    <groupId>org.actframework</groupId>

    <artifactId>act</artifactId>

    <version>1.8.4</version>

    <scope>provided</scope>

</dependency>


当然还有一个DTD没有看,这个又是另一个方面,估计有JS和HTML这方面的知识看了会轻松些,暂时一放。


第三模块: Java 解析 XML  


我猜想,既然这些框架的配置都是有xml,那么这些框架一定使用了xml解析库,从网上查到有四种方式:

1. JDOM

2. DOM

3. SAX

4. DOM4J, 这个我在Hibernate配置环境的时候看到过,它有可能有的是这个做的解析

  

   总结:


1. 博客只是用来查一些知识点,但是不系统,系统的话还是要通过课程和项目来巩固。课程介绍了一体化的方法,而项目则是对课程中知识的练习与验证。

2. 知识广度还是不够,慢慢来吧,今天看到了Java对数据的操作方式差不多三种: 

2.1 JDBC 这是基石

2.3 Hibernate,这个是正在学习的,感觉有一定的难度掌握起来,主要应该是配置比较麻烦,今天就死在这里了 ...

2.4 mybatis,这个暂时还没看

3. 自学一个东西,第一要实时查一些不知道的概念,并且做好记录,同时,要实时提醒自己总结,前后关联


明日计划:

1. XML 解析

2. Hibernate 继续配置

3. 如果Hibernate搞定,就看看JDBC,好好练习下,为后面学习mybatis做准备

4. 继续设计我的薪资系统

5. 还有一个JDBCTemplate .... 


DONE!!!


返回列表 返回列表
评论

    分享到