对象关系映射

SpringMVC框架之第一篇

限于喜欢 提交于 2019-12-01 07:19:55
2.SpringMVC介绍 2.1.SpringMVC是什么 SpringMVC是Spring组织下的一个表现层框架。和Struts2一样。它是Spring框架组织下的一部分。我们可以从Spring的整体结构中看得出来: 2.2.SpringMVC的作用 1.接收Web请求中的参数 2.把处理好的数据返回给页面 2.3.为什么要学习SpringMVC 技术是要更新换代的,可以说Springmvc是对Struts2的技术更新,Struts2太老了,许多设计已经过时,效率不符合现在业务(互联网)的需要,而且SpringMVC与Spring是一家的它们之间的衔接是无缝的,所以使用SpringMVC更方便和Spring进行整合。 更重要的一点是Struts2存在安全漏洞,之前的某些版本曾经造成过一些企业的损失,这也加速了Struts2的迅速老去。 那为什么之前还要学习Struts2呢?是因为今后工作中不一定都是从事新的系统开发,你有可能去维护一个已经上线的老系统,比如许多传统行业里面应用的系统Struts2的使用率仍然不小,因此从学习的角度Struts2也要学习掌握。 2.4.了解SpringMVC的处理流程 要想引入SpringMVC做表现层开发,最基本的需要完成两件事: 1. 配置好前端控制器DispatcherServlet。 2.

JAVA持久层框架的概述(ibatis>>mybatis)

纵然是瞬间 提交于 2019-12-01 07:00:46
现在主流的ORM映射框架有Hibernate、Apache OJB;这些基于Java的持久层框架都提供了全自动的对象–关系映射机制,能很好的实现从对象到关系数据的持久化操作。几乎不需要写任何的SQL语句(根据配置好的映射关系文件自动生成对应的 SQL 并调用 JDBC 接口加以执行),以面向对象的形式就能实现对数据库的操作。给我们的编程带来了很大的好处,不需要再接触底层的SQL语句,同时也避免了在书写SQL语句时带来的诸多问题。 但这些ORM框架也是有它的问题的,那就是对于复杂的SQL查询、多表的联合查询实现起来很麻烦,甚至某些业务方面用Hibernate无法实现。举个例子:假如有2张几乎相同的表(在实际的项目中这样的情况是存在的),现在需要把这2张表的数据全部查询出来在页面显示,使用Hibernate可能会这样操作,首先各执行一次findAll,然后在Service中循环,再存到一个List中,最后在页面显示。这样是能实现,但是很麻烦,那么简单的方法是什么呢?使用SQL语句中的union all 关键字,一个SQL语句就能实现,所以在这种情况下使用Hibernate就不是很合适了。面对这样的需求,再次举起 Hibernate 大刀,却发现刀锋不再锐利,甚至无法使用,奈何?恍惚之际,只好再摸出JDBC 准备拼死一搏,但JDBC也很麻烦,对于返回的ResultSet也需要处理

Hibernate 映射文件配置

随声附和 提交于 2019-12-01 03:19:51
对象关系的映射是用一个XML文档来说明的。映射文档可以使用工具来生成,如XDoclet,Middlegen和AndroMDA等。 下面从一个映射的例子开始讲解映射元素,映射文件的代码如下。 Java代码 <?xml version= "1.0" ?> <!-- 所有的XML映射文件都需要定义如下所示的DOCTYPE。 Hibernate会先在它的类路径(classptah)中搜索DTD文件。 --> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > <!-- hibernate-mapping有几个可选的属性: schema属性指明了这个映射的表所在的schema名称。 default -cascade属性指定了默认的级联风格 可取值有 none、save、update。 auto- import 属性默认让我们在查询语言中可以使用非全限定名的类名 可取值有 true 、 false 。 package 属性指定一个包前缀。 --> <hibernate-mapping schema= "schemaName" default -cascade=

必须知道的MyBatis实用知识点

丶灬走出姿态 提交于 2019-12-01 03:01:48
一、 MyBatis简介 MyBatis的前身是Apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。2013年11月迁移到GitHub,因此目前MyBatis是由GitHub维护的。 同样作为持久层框架的 Hibernate在前些年非常的火,它在配置了映射文件和数据库连接文件后就可以通过Session操作,它甚至提供了HQL去操作POJO进而操作数据库的数据,几乎可以使编程人员脱离sql语言。可是为什么MyBatis却越来越受欢迎呢?我们稍稍总结如下: Hibernate: 1.不方便的全表映射,比如更新时需要发送所有的字段; 2.无法根据不同的条件组装不同sql; 3.对多表关联和复制sql查询支持较差; 4.有HQL但性能较差,做不到sql优化; 5.不能有效支持存储过程; 在当今的大型互联网中,灵活、 sql优化,减少数据的传递是最基本的优化方法,但是Hibernate却无法满足我们的需求,而MyBatis提供了更灵活、更方便的方法。在MyBatis里,我们需要自己编写sql,虽然比Hibernate配置要多,但是是MyBatis可以配置动态sql,也可以优化sql,且支持存储过程,MyBatis几乎能做到 JDBC 所能做到的所有事情!凭借其高度灵活

一致性Hash算法

老子叫甜甜 提交于 2019-12-01 02:50:51
本文章比较好的说明了一致性Hash算法的概念 Hash算法一般分为除模求余和一致性Hash 1、 除模求余:当新增、删除机器时会导致大量key的移动 2、一致性Hash:当新增、删除机器时只会影响到附近的key,因为是环状结构 转载请说明出处: http://blog.csdn.net/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义: 1、平衡性(Balance):平衡性是指哈希的结果能够尽可能分布到所有的缓冲中去,这样可以使得所有的缓冲空间都得到利用。很多哈希算法都能够满足这一条件。 2、单调性(Monotonicity):单调性是指如果已经有一些内容通过哈希分派到了相应的缓冲中,又有新的缓冲加入到系统中。哈希的结果应能够保证原有已分配的内容可以被映射到原有的或者新的缓冲中去,而不会被映射到旧的缓冲集合中的其他缓冲区。 3、分散性(Spread):在分布式环境中,终端有可能看不到所有的缓冲

Mybatis

ぃ、小莉子 提交于 2019-12-01 01:21:02
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/a745233700/article/details/80977133 1、什么是Mybatis? (1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。 (2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 (3)通过xml 文件或注解的方式将要执行的各种 statement 配置起来,并通过java对象和 statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。(从执行sql到返回result的过程)。 2、Mybaits的优点: (1)基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。 (2

在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射

微笑、不失礼 提交于 2019-12-01 00:12:48
原文: 在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射 一、前言 #   在实际项目开发过程中,我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的 List<T> 集合中,因为我们最终想要在页面上展示的数据与数据库实体类之间可能存在很大的差异,所以这里更常见的方法是去创建一些对应于页面数据展示的 `视图模型` 类,通过对获取到的数据进行二次加工,从而满足实际页面显示的需要。   因此,如何更便捷的去实现 数据库持久化对象 与 视图对象 间的实体映射,避免我们在代码中去一次次的手工实现这一过程,就可以降低开发的工作量,而 AutoMapper 则是可以帮助我们便捷的实现实体转换这一过程的利器。所以,本章我们就来学习如何在 ASP.NET Core 项目中通过使用 AutoMapper 去完成实体间的映射。   当然,如果你习惯于从视图展现到持久化到数据库都采用数据库实体,那么本篇文章对你可能不会有任何的帮助。   代码仓储: https://github.com/Lanesra712/grapefruit-common/tree/master/sample/aspnetcore/aspnetcore-automapper-tutorial 二、Step by Step #   AutoMapper 是一个 OOM(Object

MyBatis学习笔记 初步

梦想与她 提交于 2019-11-30 23:07:14
1.框架: Def:它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题。 Mybatis解决的是持久层的问题 https://blog.csdn.net/ycgslh/article/details/80050025   使用框架的好处: 框架封装了很多的细节,使开发者可以使用极简的方式实现功能。大大提高开发效率。 2.三层架构 表现层:展示数据 类似JSP 业务层:处理业务需求 类似Service层 持久层:与数据库交互 类似DAO层 JDBC技术: Connection PreparedStatement ResultSet Spring的JdbcTemplate: Spring中对jdbc的简单封装 Apache的DBUtils: 它和Spring的jdbcTemplate很像,也是对jdbc的简单封装 以上这些都不是框架 JDBC是规范 Spring的JdbcTemplate和Apache的DBUtils都只是工具类 3.mybatis的概述 mybatis是一个持久层框架,用java编写的。 它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等繁杂过程 它使用了ORM思想实现了结果集的封装。 mybatis通过配置.xml或注解的方式将要执行的各种Statement配置起来

day18

假如想象 提交于 2019-11-30 22:39:26
一、增加一个接口:java.lang.Iterable接口 JDK1.5增加 它有一个抽象方法:Iterator iterator() 实现这个接口允许对象成为 "foreach" 语句的目标 Collection从JDK1.5之后开始继承Iterable接口。 二、java.util.Iterator接口在哪里实现的? //左边是Iterator接口,说明右边一定创建了一个Iterator接口的实现类对象,否则iterator调用方法是没有方法体可以执行 Iterator iterator = list.iterator(); 跟踪源代码:list.iterator() public Iterator<E> iterator() { return new Itr();//Itr是一个内部类 } 跟踪每一种Collection的集合发现,所有的集合在内部都一个内部类来实现java.util.Iterator接口。 为什么? (1)每一种集合的内部实现物理结构不一样,有的是数组有的是链表等,迭代方式不一样,无法给出统一的实现 (2)迭代的作用,为某个集合迭代,遍历元素,那么它只为某类集合服务,迭代时又需要访问集合的内部(private)的元素, 所以我们设计为内部类更合适。 Set:是Collection另一个子接口 一个不包含重复元素的 collection。 更确切地讲,set

MyBatis增啥改查

我们两清 提交于 2019-11-30 19:50:55
一. 什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。 MyBatis参考资料官网: https://mybatis.github.io/mybatis-3/zh/index.html 。 官网对Mybatis的介绍更加具有权威性: MyBatis 是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。 MyBatis 避免了几乎所有的 JDBC 代码和手工设置参数以及抽取结果集。 MyBatis 使用简单的 XML 或注解来配置和映射基本体,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 MyBatis优点: 1)、简单易学 mybatis本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。 2)、灵活