发表于: 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!!!
评论