扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)
专注于为中小企业提供成都网站制作、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业西青免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
对象关系映射,是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。
从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。如今已有很多免费和付费的ORM产品,而有些程序员更倾向于创建自己的ORM工具。ORM相当于中继数据,对象关系映射成功运用在不同的面向对象持久层产品中。
ORM框架
常见的ORM框架有:Hibernate、iBatis 等。Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL的自动生成和执行。
Mybatis:主要着力点在于 POJO 与 SQL 之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定 POJO 。
相对Hibernate“O/R”而言,Mybatis 是一种“Sql Mapping”的ORM实现。
以上内容参考:百度百科-对象关系映射
1、Spring
Spring是于2003 年兴起的一个轻量级的Java开发框架,是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。
2、SpringBoot
Spring Boot是由Pivotal团队提供的框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
3、Thymeleaf
Thymeleaf是面向Web和独立环境的现代服务器端Java模板引擎,能够处理HTML,XML,JavaScript,CSS甚至纯文本。
4、Druid
Druid是阿里的一个开源高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到Druid后立即可查,同时数据是几乎是不可变。通常是基于时序的事实事件,事实发生后进入Druid,外部系统就可以对该事实进行查询。
5、mybatis
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
6、Hybernate
Hibernate是一个开放源代码的对象关系映射框架(Object_Relative DateBase-Mapping 简称ORM),它对JDBC进行了轻量级的对象封装,它将POJO与数据库表建立映射关系。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。
Java三大框架:Struts,Spring,Hibernate。
1. Struts在项目中的作用
Struts 在项目主要起控制作用,只要用于web层(即视图层和控制层)
Struts本身是使用典型的MVC结构实现的,项目中使用了struts之后就等于项目也是一个MVC结构,使项目结构更清晰,分工更明细。
Struts在项目中主要负责视图层、控制层,在视图层提供了大量的标签库,提高视图层的开发速度。在控制层使用中央控制器(Actionsupport)和配置文件(struts.xml),实现拦截用户请求、封装请求参数及页面导航。
2. Spring在项目中的作用
Spring是一个全方位的整合框架,在项目中对hibernate和struts进行整合,解决层与层之间的耦合问题。
Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合。
Spring的IoC来实现组件之间的依赖关系注入,上层框架不会渗透到下层组件,提高组件移植性和重用性,使得程序更灵活,上层框架不依赖实现而是依赖于抽象(委托接口)、使得实现类的变化不会影响上层组件,解决了层与层之间的藕合带来的维护或升级困难
SpringAOP 是面向方面编程,实现事务处理、日志服务等与业务无关的系统服务,实现插件式编程。
3. Hibernate在项目中的作用
Hibernate应用于数据持久化层,是对JDBC的轻量级封装。是一种对象、关系的映射工具, 提供了从 Java类到数据表的映射,也提供了数据查询和恢复等机制, 大大减少数据访问的复杂度。把对数据库的直接操作 , 转换为对持久对象的操作。
在项目中的主要作用就是1、解决程序与数据库的依赖,即使用了Hibernate之后,以后更改数据库不需要更改代码,因为Hibernate会根据数据库方言来生成对应的SQL语句;2、是对JDBC的轻量级封装,简化持久层的代码,提高开发速度。
我有一个微信公众号,经常会分享一些Java技术相关的干货,还有一些Java学习资源。
如果你喜欢我的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。
网站架构按照制作步骤分为硬架构和软架构。
一、硬架构
1、机房:在选择机房的时候,根据网站用户的地域分布,可以选择网通、电信等单机房或双机房。
2、带宽:预估网站每天的访问量,根据访问量选择合适的带宽,计算带宽大小主要涉及峰值流量和页面大小两个指标。
3、服务器:选择需要的服务器,如图片服务器,页面服务器,数据库服务器,应用服务器,日志服务器,对于访问量大点的网站而言,分离单独的图片服务器和页面服务器相当必要。
二、软架构
1、网站的框架:现在的PHP框架有很多选择,比如:CakePHP,Symfony,Zend Framework,根据创作团队对各个框架熟悉程度选择。
2、逻辑的分层
1)表现层:所有和表现相关的逻辑都应该被纳入表现层的范畴。
2)应用层:主要作用是定义用户可以做什么,并把操作结果反馈给表现层。
3)领域层:包含领域逻辑的层,就是告诉用户具体的操作流程的。
4)持久层:即数据库,保存领域模型保存到数据库,包含网站的架构和逻辑关系等。
扩展资料
网站的分类
1、根据网站所用编程语言分类:例如asp网站、php网站、jsp网站、Asp. net网站等;
2、根据网站的用途分类:例如门户网站(综合网站)、行业网站、娱乐网站等;
3、根据网站的功能分类:例如单一网站(企业网站)、多功能网站(网络商城)等等。
4、根据网站的持有者分类:例如个人网站、商业网站、政府网站、教育网站等。
5、根据网站的商业目的分类:营利型网站(行业网站、论坛)、非营利性型网站(企业网站、政府网站、教育网站)。
参考资料来源:百度百科—网站架构
参考资料来源:百度百科—网站
1、专注的领域不同
java是纯面向对象开发,功能强大,分支众多,没有java不能做的软件。C/S也好B/S也好。从功能上讲,没有语言可以和java相比。但其优势也是其劣势,具体参考后面的瓶颈解释。
PHP属于后起之秀,吸收了java和c以及perl等语言优点,专注互联网领域。在WEB领域中PHP拥有得天独厚的优势,WEB领域没有语言可以和PHP相比。
2、数据库访问上不同
Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库。访问数据库的接口比较统一。
PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。例如:用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改。而PHP则需要做大量的修改工作。
3、系统技术架构上不同
Java语言有着完备的MVC框架,包括视图层、业务控制层和持久层,在Spring框架中,我们可以通过IOC和AOP降低编码过程中的高耦合,也就是说Java中的这些框架可以让开发者有更广阔的空间去设计科学合理的架构,也体现着Java多层架构的特点。
相比Java而言,PHP留给开发者的空间并不多,但PHP近些年也在改进,迎合电子商务的需要,引入MVC设计模式,但成熟性和稳定性上与Java还是有着不小的差距。不得不提的是PHP可兼容MySQL开发,这使得在考虑成本因素的前提下,PHP变得小而精,收到了一些中小型网站的青睐。
4、安全性上不同
在同是开源和跨平台的java面前,php丢掉了很多的优势,在代码的安全性上尤为突出。
php的开发程序在别人拿到代码后,可以很容易的进行修改。而java开发的程序由于无法看到完整的源代码,只能看到一些编译好的类文件,所以安全性较高。
5、开发成本上的不同
PHP最经典的组合就是:PHP + MySQL + Apache。非常适合开发中小型的Web应用,开发的速度比较快。而且所有的软件都是开源免费的,可以减少投入。
Java的Web应用服务器有免费Tomcat、JBoss等,如果需要更好的商业化的服务有:Web Sphere和 Web lo
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流