持久层

java中实体类的区别

若如初见. 提交于 2020-02-12 17:11:22
  经常会接触到 VO, DO, DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析。   得出的主要结论是:在项目应用中, VO对应于页面上需要显示的数据(表单), DO对应于数据库中存储的数据(数据表), DTO对应于除二者之外需要进行传递的数据。 一、实体类   百度百科中对于实体类的定义如下:   实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。   根据以上定义,我们可以了解到,实体类有两方面内容,存储数据和执行数据本身相关的操作。这两方面内容对应到实现上,最简单的实体类是 POJO类,含有属性及属性对应的 set和 get方法,实体类常见的方法还有用于输出自身数据的 toString方法。 二、领域模型中的实体类   领域模型中的实体类分为四种类型: VO、 DTO、 DO、 PO,各种实体类用于不同业务层次间的交互,并会在层次内实现实体类之间的转化。   业务分层为:视图层( VIEW+ACTION),服务层( SERVICE),持久层( DAO)   相应各层间实体的传递如下图   项目中我们并没有严格遵循这种传递关系,但这种和业务层次的关联对我们理解各实体类的作用是有帮助的。(我们没有接触到 PO的原因,我理解为 ORM对 PO进行了封装)  

java中的三层架构

倾然丶 夕夏残阳落幕 提交于 2020-02-12 04:26:46
  三层架构主要指java项目设计中的持久层,业务层,和表现层。一般的项目开发都遵循这样的设计思想。   持久层:用于完成内存数据和磁盘数据的转换。   业务层:完成业务处理,将表现层提供的数据处理完后,交由持久层完成数据的保存。   表现层:完成数据的提供和数据的展示,并提供给用户流程控制。   主要采用的实现方式如下:   持久层主要采用Dao模式,建立实体类和数据库的表之间的映射关系,也就是那个类映射那个表,那个属性映射哪个列,而持久层的目的就是完成对象数据和关系数据的转换。   业务层采用业务脚本模式,将一个业务中所有的操作封装成一个方法,保证这个方法的所有数据库更新操作同时成功同时失败,避免出现部分成功部分失败的问题,引起数据混乱的现象。   表现层采用了mvc模式:m即模型,也就是使用实体类封装数据并进行传输。v即视图,也就是窗体和GUI,用于数据的提供和数据的展示。c即控制,也就是事件,调用业务方法,以及业务流程的控制。 来源: https://www.cnblogs.com/Freebe/p/6853851.html

三层架构

南楼画角 提交于 2020-02-12 03:42:11
三层架构: 1,持久层 2,业务层; 3,表现层 持久层: 完成数据库相关的操作,建立实体类和数据库做映射;采用DAO 模式也就是哪个类对应哪个表,哪个列对应哪个属性,而持久层的目的就是完成对象数据和关系数据的转换; 业务层: 完成处理从表现层中得到的数据和相关的业务操作。采用事物脚本模式将当前业务中所有的操作封装成一个方法,保证这些操作同事成功或同时失败,不允许部分成功或失败,这样避免引起数据混乱的操作; 表现层: 完成数据的收集和展示。采用MVC模式                 M:模型,也就是实体类,用于封装和传输数据                V:视图,也就是GUI窗体,用于数据的展示                  C:控制,也就是事件,用于控制业务流程 层与层之间用接口做逻辑,(方便替换)做关联,耦合,当其中一个层的组件需要更换不会影响其它层的组件 持久层设计原则:一个实体类一个接口,该接口放置,该实体类中所有的数据库操作,一次数据库操作一个接口方法 接口隔离原则:使用专门的接口,比用统一接口要好,不要让用户面对自用不到的方法,便于分工,便于项目的管理; 业务层设计原则: 一个实体类一个接口,一次提交一个业务方法,业务方法的参数全部来自于表现层; 来源: https://www.cnblogs.com/cj28-27/p/5469849.html

三层架构

为君一笑 提交于 2020-02-12 03:38:16
1、持久层   完成数据库的相关操作,采用DAO模式,建立实体类和数据库做映射,也就是那个表对应那个类,哪个列对应哪个属性。而持久层的目的就是就是完成对象数据和关系数据的转换。 2、业务层   完成处理从表现层中得到的数据,和相关的业务操作。采用事物脚本模式,将当前业务中所有的操作封装成一个方法,保证这些操作同时成功或同时失败,不允许出现部分成功或部分失败,这样引起数据混乱的操作。 3、表现层   完成数据的展示和数据的收集,采用MVC模式。 M:模型,也就是实体类,用于封装和传输数据。 V:视图,也就是GUI窗体,用于数据的展示。 C:控制,也就是事件,用于控制业务流程。   层于层之间采用接口耦合,这样当其中一个层的组件需要更换不会影响其他层的组件。   持久层接口的设计原则:一个实体类一个接口。该接口放置该实体类中所有的数据库操作,一次数据库操作一个接口方法。 来源: https://www.cnblogs.com/jj-0611/p/5453286.html

MyBatis总结

徘徊边缘 提交于 2020-02-05 10:11:57
本人精心整理,完全手敲的Mybatis学习笔记,我觉得,这篇笔记已经快把Mybatis官方文档都经过我自己理解整过来了。。包括我练习的源码,mybatis底层分析,概念等等,我觉得已经很全了。 虽然有点长,东西比较多,但是只要你细心看完这个Mybatis还不会的找我!! 觉得有用的,请多多支持博主, 点赞关注 ~~ 文章目录 1.简介 1.1、什么是Mybatis? 1.2、持久化 1.3、持久层 1.4、为什么需要Mybatis? 2.第一个Mybatis程序 2.1、搭建环境 2.2、创建一个模块 2.3、编写代码 2.4、测试 3.CRUD 3.1、namespace 3.2、select 3.3、insert 3.4、update 3.5、delete 3.6、常见错误 3.7、万能Map 3.8、模糊查询 4.配置解析 4.1、核心配置文件 4.2、环境配置(environments) 4.3、属性(properties) 4.4、类型别名(typeAliases) 4.5、设置 4.6、其他配置 4.7、映射器 4.8、生命周期和作用域 5.解决属性名和字段名不一致的问题 5.1、问题 5.2、resultMap 6、日志 日志工厂 6.2、Log4j 7、分页 7.1、使用Limit分页 7.2、RowBounds分页 7.3、分页插件 8、使用注解开发 8.1

JSON Web Token

我与影子孤独终老i 提交于 2020-02-04 03:57:52
JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案。虫虫今天给大家介绍JWT的原理和用法。 1.跨域身份验证 Internet服务无法与用户身份验证分开。一般过程如下。 1.用户向服务器发送用户名和密码。 2.验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中。 3.服务器向用户返回session_id,session信息都会写入到用户的Cookie。 4.用户的每个后续请求都将通过在Cookie中取出session_id传给服务器。 5.服务器收到session_id并对比之前保存的数据,确认用户的身份。 这种模式最大的问题是,没有分布式架构,无法支持横向扩展。如果使用一个服务器,该模式完全没有问题。但是,如果它是服务器群集或面向服务的跨域体系结构的话,则需要一个统一的session数据库库来保存会话数据实现共享,这样负载均衡下的每个服务器才可以正确的验证用户身份。 例如虫虫举一个实际中常见的单点登陆的需求:站点A和站点B提供同一公司的相关服务。现在要求用户只需要登录其中一个网站,然后它就会自动登录到另一个网站。怎么做? 一种解决方案是听过持久化session数据,写入数据库或文件持久层等。收到请求后,验证服务从持久层请求数据。该解决方案的优点在于架构清晰,而缺点是架构修改比较费劲,整个服务的验证逻辑层都需要重写,工作量相对较大

短学期1

[亡魂溺海] 提交于 2020-02-01 20:02:38
在这几天的学习中,我们了解到了SSH框架: SSH是 struts+spring+hibernate的一个集成框架,是目前比较流行的一种Web应用程序开源框架。 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。 系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring

mybatis(一)

好久不见. 提交于 2020-02-01 03:05:12
mybatis(一) mybatis是什么 (1)mybatis : 一个基于Java的 持久层 框架 (2)持久层 : 操作数据库那层代码 (项目分层:界面层(jsp/controller) 业务层(service层) 持久层(数据层 dao层)) 持久层框架 : jdbc , springjdbc jpa springdatajpa , mybatis (3) 框架: ​ a) 每个框架为了解决 某一个领域 问题产生 ​ b)框架还是一个半成品, 已经完成一部分功能 ,只需要在上面进行开发 --提高开发效率 ​ c) 可以让我们很多人写的代码 都按照一定规则去写–可读性 维护性 (4)持久化概念: ​ 把内存里面数据 保存到数据库中 --过程就叫持久化 (5)mybatis 它是一个持久层框架,同时又是ORM的框架 ​ ORM: 对象关系映射 --jpa/springdatajpa Mybatis的特点 (1)MyBatis 是一个支持普通 SQL查询,存储过程(数据库mysql/oracle)和高级映射的优秀持久层框架。 (2)MyBatis ****消除了几乎所有的JDBC代码和手工设置参数以及结果集的检索****。 ​ jdbc: ​ a) 贾琏欲执事 – 不需要做 ​ b) 手工设置参数(传参) – 不需要做 ​ insert into xxx (name,age)

mybatis框架学习

耗尽温柔 提交于 2020-01-27 08:15:44
1.mybatis入门知识 mybatis是一个持久层框架,所以在使用的时候一定要导入mybatis和mysql依赖。 在使用映射文件开发的时候要在配置文件中告知 mybatis 映射配置的位置,在使用注解开发的时候除了告知 mybatis 映射配置的位置,还要把IUserDao.xml文件删掉,否则会出现包扫描错误。 注解直接添加在持久层就可以 mybatis映射文件中的parameterType和resultType分别为持久层中的参数类型和返回值 2.resultMap 结果类型 返回值类型可以用resultMap进行封装,resultMap 可以实现将查询结果映射为复杂类型的 pojo,比如在查询结果映射对象中包括 pojo 和 list 实现一对一查询和一对多查询。 在使用resultMap进行封装时,映射文件也要用resultMap封装时设置的id 3.mybatis连接池 连接池就是用于存储连接的一个容器。 容器其实就是一个集合对象,该集合必须是线程安全的,不能两个线程拿到统一连接。(该集合还必须能实现队列的特性:先进先出) 在 Mybatis 的 SqlMapConfig.xml 配置文件中,通过来实现 Mybatis 中连接池的配置。 4.mybatis的动态sql 动态sql的if标签 ,if就是对其进行判断,需要注意的是空字符串要用“ ”用单引号包双引号

SpringMVC

不羁的心 提交于 2020-01-26 22:45:51
1.1 三层结构介绍 我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器;另一种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发。那么在 B/S 架构中,系统标准的三层架构包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用的非常多,所以我们课程中的案例也都是基于三层架构设计的。 三层架构中,每一层各司其职,接下来我们就说说每层都负责哪些方面: 表现层: 也就是我们常说的web 层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http 协议请求web 层,web 需要接收 http 请求,完成 http 响应。 表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。 表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。 表现层的设计一般都使用 MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系) 业务层: 也就是我们常说的 service 层。它负责业务逻辑处理,和我们开发项目的需求息息相关。web 层依赖业务层,但是业务层不依赖 web 层。 业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。(也就是我们说的, 事务应该放到业务层来控制) 持久层: 也就是我们是常说的 dao 层。负责数据持久化