1. 首页
  2. 资讯

hibernate反射

Java新手如何学习Spring、Struts、Hibernate三大框架?Spring、Struts、Hibernate基本上算是从事JavaWeb后台开发人员必学的三个基本框架,是web应用中的三剑客,使用这三个框架构

Java新手如何学习Spring、Struts、Hibernate三大框架?

Spring、Struts、Hibernate基本上算是从事JavaWeb后台开发人员必学的三个基本框架,是web应用中的三剑客,使用这三个框架构成了我们常说的MVC编程模式,能够满足一般企业开发的业务需求。

学习这三个框架前,首先要了解这些框架的作用,使用框架后能给我们的web开发带来什么便利。如果没有好处,我们程序员就不必要去学习它了,不是吗?

其实,学习框架需要知道怎么样去配置框架的运行环境。

接着,了解框架的知识体系,根据学习路线攻破各个知识点。

最后,做一个小项目练练手。

如此这般,相信初学的你能够很快初步掌握了。

Spring

Spring的作用是解耦,降低代码之间的耦合度。

什么是耦合度?耦合度就是子程序间的相关性,或者说是类和类之间的联系性,如果类之间的联系太紧密,会给后期的修改维护带来麻烦,所以耦合度高的程序设计是不可取的。

那么Spring是如何降低耦合度的呢?

系统中的代码分为 主业务代码与系统级业务逻辑两类。Spring根据代码的功能特点,将 降低耦合度的方式分为两类:Ioc和Aop 。

IOC,通俗的讲,就是对象的创建不是由程序员去new,而是由Spring 框架来帮我们完成,我们从容器中获取这个对象。

AOP,是面向切面编程,即把日志、安全、事务管理等服务剥离出来形成一个“切面” ,以期复用,然后将“切面”动态的“织入”到业务逻辑中 。

Spring的核心知识点就是围绕IOC和AOP展开的。

hibernate

hibernate是一个持久化框架,什么是持久化?持久化就是将数据(比如内存中的对象),保存到存储设备中(数据库)。

hibernate还是一个ORM框架,什么是ORM?ORM,对象关系映射,即将关系数据库中的业务数据在Java程序中用对象的形式表现出来,数据表的关系对应的就是Java中类与类的关系。我们在hibernate配置文件中配置的就是这个关系,记住一句话:类到表的映射,属性到字段的映射。

以下是hibernate的技术要点:

Struts

Struts是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts作为控制器(Controller)来建立模型与视图的数据交互。

Struts分为Struts1和Struts2,这是两个功能实现上有很大不同的框架,初学者现在只要掌握Struts2就可以了,Struts1现在用的不多。

使用Struts2首先要知道应用程序后台和页面前端是如何进行数据交互的。

常用功能的实现:

Struts特有的标签库:


以上内容就是学习Spring、hibernate、Struts的学习思路和学习路线,内容太多,这里就不一 一展开赘述,感兴趣的朋友可以关注我的头条号:一张图学Java。分享Java的技术干货,让初学者少走弯路,让老鸟回顾知识体系,欢迎来交流!

大一点的公司是用hibernate多还是用mybatis多一些啊?

一、个人的观点

工作以来一直是使用 Hibernate 和 Mybatis以及Spring Data JPA 。总结下来一般传统公司Hibernate、个人开发喜欢用Spring Data JPA ,互联网公司更青睐于 Mybatis 。

二、分析其缘由:

选择哪种ORM工具,都是由公司开发迭代模式决定的。

1、 Hibernate特点

(1)对象化。Hibernate可以让开发人员以面相对象的思想来操作数据库。
(2)更好的移植性。对于不同的数据库,开发者只需要使用相同的数据操作即可,开发者无需关心数据库之间的差异。
(3)开发效率高。Hibernate 提供了大量的封装,很多数据操作以及关联关系等都被封装的很好,开发者不需写大量的sql语句,这就极大的提高了开发者的开发效率。
(4)缓存机制的使用。Hibernate 提供了缓存机制(session缓存,二级缓存,查询缓存),对于那些改动不大且经常使用的数据,可以将它们放到缓存中,不必在每次使用时都去查询数据库,缓存机制对提升性能大有裨益。

2、Mybatis特点

(1) 与JDBC相比,减少了50%以上的代码量。
(2)MyBatis是最简单的持久化框架,小巧并且简单易学。
(3)MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,并可重用。

(4)提供XML标签,支持编写动态SQL语句。提供映射标签,支持对象与数据库的ORM字段关系映射。

三、小结

传统公司需求迭代速度慢,项目改动。hibernate可以帮他们做到一劳永逸;
互联网公司追求快速迭代,需求快速变更,灵活的 mybatis 修改起来更加方便,而且一般每一次的改动不会带来性能上的下降,Hibernate 经常因为添加关联关系或者开发者不了解优化导致项目越来越糟糕(本来开始也是性能很好的),而MyBatis 使用简单,数据的可靠性、完整性的瓶颈便更多依赖于程序员对sql的使用水平上了。

个人的项目,因为项目并不是那么大,也不需要做很复杂,或者要做到多灵活,那我当然是选择Spring Data Jpa 了,简单方便,而且不用配置大量的配置,而且不用写xml文件,集成即可开启使用。


当然,这个只是做一个比较客观的比较,如果大家有什么不同的看法,可以在评论区留言,说说自己的观点。
我是souvc,在互联网公司做研发,专注于技术的研究,欢迎关注我,了解更多的技术细节,了解最新的动态。

如何理解java中的反射?

反射就是为了程序运行中的时候通过反射获取类的方法和属性,可以进行修改,现在大众都知道的spring框架里面的IOC就是应用了反射创建类,当业务需要的时候可以直接注入,不需要自己去创建

hibernate中执行hql和sql哪个效率更高?

效率高不高还是要看写出来的 sql.如果对于相同的语句,个人觉得纯粹的SQL是比HQL高的,起码省去了把HQL转化为SQL的时间。不过HQL可以将结果封装成对象,而SQL不行,因此但就查询来讲纯粹的SQL效率高了(前提是SQL本身就很高效)。

本文来自投稿,不代表本站立场,如若转载,请注明出处。