数据持久层

MyBatis持久层框架学习之01 MyBatis的起源和发展

柔情痞子 提交于 2020-03-23 05:47:04
一、MyBatis的简介    MyBatis 是支持定制化 SQL、存储过程以及 高级映射 的优秀的持久层框架。   MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 MyBatis可以使用简单的XML或注解用于配置和原始映射, 将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录 . 二、MyBatis的历史    原是apache的一个开源项目iBatis, 2010年6月这个项目由apache software foundation 迁移到了google code,随着开发团队转投Google Code旗下,ibatis3.x正式更名为Mybatis ,代码于2013年11月迁移到Github。   iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)    三、MyBatis的基本说明   (1)、MyBatis是一个工作在持久层的框架,它 不再是一个标准的ORM框架      我们先看看Hibernate是如何对数据库进行操作    我们再来看看Mybatis如何对数据库进行操作    因为它只管理了SQL语句和Java之间的关联和映射

Spring Data Jpa 详解 (配置篇)

删除回忆录丶 提交于 2020-03-15 02:07:35
前言:    JPA 全称 Java Persistence API ,即Java持久化API,它为Java开发人员提供了一种 对象/关系映射 工具来管理Java应用中的关系数据,结合其他ORM的使用,能达到简化开发流程的目的,使开发者能够专注于实现自己的业务逻辑上。   Spring Jpa 能够 简化创建 JPA 数据访问层和跨存储的持久层功能,用户的持久层Dao接口只需要继承他自己定义好的(仓库)接口, 无需再写实现类 ,就可以实现对象的CRUD操作,还有分页排序等功能。    写本章之前本来想写一个SpringMVC的,后来发现Jpa的配置可以大大简化MVC框架的配置,就先研究研究Spring Data Jpa。 准备工作:   jar包支持(不用说都知道,本章jar包待我会放在115网盘供下载) web.xml配置(监听Spring容器的装载) 本章采用的是阿里连接池(Druid),所以web.xml要有相关的配置 Spring容器的配置(主要为beans和jpa) Jpa的主要配置(实体类管理、数据源、连接池、事务等) 实体类、持久层接口、业务层的创建 测试放在下一章节中(因为采用了SpringJunit单元测试, 点击前往 ) 先来看一下本章节用到的 包结构--如下图 :    实例代码演示: ****************最后我会把本章的项目打包供下载******

记一次数据持久层的问题

霸气de小男生 提交于 2020-03-12 07:39:38
Mapper父类的方法: / ** * 根据表名和ID获取对象 * @param tableName 表名 * @param id ID * @ return 对象信息 * / @Select ( value = { "<script>" + " Select * from ${tableName} where id=#{id}" + " </script>" } ) Map getObjById ( @Param ( "tableName" ) String tableName , @Param ( "id" ) String id ) ; 实体的父类: @Data @Slf4j @MappedSuperclass @EqualsAndHashCode ( callSuper = false ) public class BaseBean implements Serializable { @Id @Column ( name = "id" , length = 36 ) // 主键i private String id ; @Column ( name = "name" , length = 255 ) // 名字 private String name ; @Column ( name = "data" , length = 5000 ) // 配置化参数 private

Mybatis 持久化,持久层

时光怂恿深爱的人放手 提交于 2020-02-28 02:15:54
持久化 持久化是将程序数据在持久状态和瞬时状态间转换的机制。 即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等等。 JDBC就是一种持久化机制。文件IO也是一种持久化机制。 在生活中 : 将鲜肉冷藏,吃的时候再解冻的方法也是。将水果做成罐头的方法也是。 为什么需要持久化服务呢?那是由于内存本身的缺陷引起的 内存断电后数据会丢失,但有一些对象是无论如何都不能丢失的,比如银行账号等,遗憾的是,人们还无法保证内存永不掉电。 内存过于昂贵,与硬盘、光盘等外存相比,内存的价格要高2~3个数量级,而且维持成本也高,至少需要一直供电吧。所以即使对象不需要永久保存,也会因为内存的容量限制不能一直呆在内存中,需要持久化来缓存到外存。 持久层 什么是持久层? 完成持久化工作的代码块 . ----> dao层 【DAO (Data Access Object) 数据访问对象】 大多数情况下特别是企业级应用,数据持久化往往也就意味着将内存中的数据保存到磁盘上加以固化,而持久化的实现过程则大多通过各种 关系数据库 来完成。 不过这里有一个字需要特别强调,也就是所谓的“层”。对于应用系统而言,数据持久功能大多是必不可少的组成部分。也就是说,我们的系统中,已经天然的具备了“持久层”概念?也许是

springboot整合SpringDataJPA

纵然是瞬间 提交于 2020-02-26 18:12:17
什么是SpringDataJPA? ① SpringData是spring提供的操作数据的框架,jpa是其中的一个模块。 ②SpringDataJPA用于简化操作持久层(操作数据库)的代码,只需要编写接口即可。 JPA会根据你提供的实体类和持久层接口,自动创建数据库表并插入数据保存。意味着你不需要自己去创建数据库表!!! SpringBoot整合SpringDataJPA步骤 在pom文件中添加坐标 <properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.SR1</spring-cloud.version> <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> </properties> <dependencies> <!-- spring-boot启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 添加thymeleaf启动器 --> <dependency> <groupId>org

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-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)

DotNet中的数据持久层框架

坚强是说给别人听的谎言 提交于 2020-01-15 08:49:56
下面是DotNet中的数据持久层框架(ORM,半ORM等)的列表: .NET Persistence BBADataObjects DataObjects.NET Data Tier Modeler for .NET DotNorm Eldorado.NET Enterprise Core Objects (ECO™) Entity Broker eXpress Persistent Objects for .NET FastObjects.NET JC Persistent Framework LLBLGen Pro ModelWorks Nhibernate Nolics.NET Norm Norpheme ObjectBroker ObjectSpaces ObjectSpark Objectz.NET OJB.NET OPF.Net (Object Persistent Framework) ORM.NET Pragmatier Data Tier Builder RapTier Sisyphus Persistence Framework TierDeveloper Bob.NET ObjectPersistor.NET Genome Ibatis easyobjects 这么多的框架成熟的不多,各自的设计理念也不太一样。这些框架里我了解的不多。