首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自己实现的Java持久框架

简介 该框架名为DdwDao,为笔者自己实现的ORM框架名称。 一开始的初衷仅仅是好玩,自己封装了一下JDBC,后面想把它做成毕设,就完善了一下。...DdwDao是一款Java语言操作MySQL的持久框架,用户仅需要让JavaBean的属性命名与数据库的字段命名一一对应(或者通过注解标注别名),即可建立对象与关系的映射。...特性: 免除SQL语句实现所有等值条件的增删改查; 免除了所有的 JDBC 代码以及设置参数和获取结果集的工作; 自动完成资源池的维护以及回收; 配置化修改框架,如自定义主键配置器,自定义连接池,自定义类型转换器...; 控制反转; 日志系统; 注解式自定义 SQL; 注解式事务; 极简依赖:仅依赖aspectj实现切面功能 另外,该框架的所有代码均没有参考现有框架的源码,都是笔者按照自己的理解去实现的(有些思想还是受笔者所学所影响...这种实现方式的有点:独立的思考更有意思,不是简单的复制已有的框架,足够简单易懂。 希望能够给初学者一些启发。 项目地址 gitee地址 github有墙,就放码云了。

26340
您找到你想要的搜索结果了吗?
是的
没有找到

持久框架—MyBatis

之后我也会写一篇针对技术小白的文章~) 先来介绍下Mybatis,它是appache下开源的一款持久框架,通过xml与java文件的紧密配合,避免了JDBC所带来的一系列问题,比如sql硬编码问题,...另外值得说的一点是,它与另外一个非常流行的持久框架Hibernate的区别。...注意:如果我要修改sql语句,岂不是要重新编译java文件?这很不利于系统的维护。 单独使用MyBatis框架 1....namespace对应和它同名的java文件类。Mapper.xml主要存放sql语句,Mapper.java负责提供操作接口。 c. 编写UserMapper.java文件。...这些缓存框架的特点:少量数据存储,高速读写访问,数据一致性保证,支持k/v类型数据,NoSql。

1.1K110

持久框架之MyBatis

MyBatis是一个优秀的持久框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数...Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement...中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。...5、项目中使用mybatis的PageHelper实现分页查询功能: 如果项目中使用的持久框架是Mybatis,建议尝试该框架自带的分页插件,这个一定是最方便使用的分页插件。...第三步、编码实现分页功能,service和controller的代码如下,dao的代码使用逆向工程已完成 ?

90350

持久(数据,Dao) MyBatis框架「建议收藏」

所谓的持久就是把数据可以永久保持的存储到设备中,不像放到内存中那样断电就消失,一般来说,持久为直接的理解就是对数据库的各种操作,如CRUD(增加,删除,修改,查询),更新等操作 持久,就是把持久的动作封装成一个独立的...MyBatis是一个优秀的持久框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数...sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。...MyBatis是一个优秀的持久框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数...sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

1.3K10

优秀的持久框架-Mybatis框架解析

mybatis解决原生态jdbc的问题 数据库连接,使用时连接,不使用时释放,对数据库进行频繁连接的开启和关闭,造成数据库资源浪费,影响数据库性能 设想:使用数据库连接池管理数据库连接 将sql语句硬编码到Java...代码中,如果sql语句修改,需要重新编译Java代码,不利于系统维护....设想:将SQL语句配置在xml配置文件中,即使SQL变化,不需要对Java代码进行重新编译 向preparedStatement中设置参数,对占位符位置和设置参数硬编码到Java代码中,不利于系统维护....设想:将查询结果集,自动映射成Java对象 持久框架 Mybatis是一个持久框架,让程序将主要精力放在SQL上,通过mybatis提供的映射方式,自由灵活生成满足的SQL语句;可以将preparedStatement...中的输入参数自行自动输入映射,将查询结果集灵活映射成Java对象(输出映射) Mybatis架构 sqlSessionFactoryBuilder 通过sqlSessionFactoryBuilder

65890

走进Java接口测试之持久框架Spring-data-jpa

为了解决这些大量枯燥的数据库操作语句,我们第一个想到的使用 ORM框架,比如: Hibernate。通过整合 Hibernate之后,我们以操作Java实体的方式最终将数据改变映射到数据库表中。...Spring-data-jpa的出现正可以让这样一个已经很“薄”的数据访问变成只是一接口的编写方式。 Spring-data-jpa介绍 JPA是什么?...JPA( JavaPersistenceAPI)是 Sun官方提出的 Java持久化规范。它为 Java开发人员提供了一种对象/关联映射工具来管理 Java应用中的关系数据。...他的出现主要是为了简化现有的持久化开发工作和整合 ORM技术,结束现在 Hibernate, TopLink, JDO等 ORM框架各自为营的局面。...Spring-data-jpa Spring-data-jpa 是 Spring 基于 ORM 框架、 JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据的访问和操作。

2.5K20

持久设计要考虑的问题有哪些?你用过的持久框架有哪些?

所谓”持久”就是将数据保存到可掉电式存储设备中以便今后使用,简单的说,就是将内存中的数据保存到关系型数据库、文件系统、消息队列等提供持久化支持的设备中。...持久就是系统中专注于实现数据持久化的相对独立的层面。 持久设计的目标包括: 数据存储逻辑的分离,提供抽象化的数据访问接口。 数据访问底层实现的分离,可以在不修改代码的情况下切换底层实现。...资源管理和调度的分离,在数据访问实现统一的资源调度(如缓存机制)。 数据抽象,提供更面向对象的数据操作。...持久框架有: Hibernate MyBatis TopLink Guzz jOOQ Spring Data ActiveJDBC

1.3K20

长文干货 | 手写自定义持久框架!

为何要手写自定义持久框架?...向占有位符号传参数存在硬编码, 因 sql 语句的 where 条件不确定甚至没有where条件,修改 sql 还要修改代码 系统不易维护 对结果集解析也存在硬编码, sql变化导致解析代码变化 更有助于读 mybatis 持久框架源码...public interface TokenHandler { String handleToken(String content); } 继续优化自定义框架 通过上述自定义框架,我们解决了JDBC...'bd2star'}, User{id=2, username='bd3star'}] User{id=1, username='bd2star'} 目录结构调整 将代码分为两个模块 提供端(自定义持久框架...-本质就是对JDBC代码的封装) 使用端 (引用持久框架的jar ) 包含数据库配置信息 包含sql配置信息 包含sql语句 参数类型 返回值类型 项目目录结构最终为 提供端 ?

77620

长文干货 | 手写自定义持久框架!

文章来源于公众号:PoXing 为何要手写自定义持久框架?...向占有位符号传参数存在硬编码, 因 sql 语句的 where 条件不确定甚至没有where条件,修改 sql 还要修改代码 系统不易维护 对结果集解析也存在硬编码, sql变化导致解析代码变化 更有助于读 mybatis 持久框架源码...public interface TokenHandler { String handleToken(String content); } 继续优化自定义框架 通过上述自定义框架,我们解决了JDBC...bd2star'}, User{id=2, username='bd3star'}] User{id=1, username='bd2star'} 目录结构调整 将代码分为两个模块 提供端(自定义持久框架...-本质就是对JDBC代码的封装) 使用端 (引用持久框架的jar ) 包含数据库配置信息 包含sql配置信息 包含sql语句 参数类型 返回值类型 项目目录结构最终为 提供端 ?

75510

持久框架JPA与Mybatis该如何选型

一、现状描述 目前java 持久ORM框架应用最广泛的就是JPA和Mybatis。...JPA只是一个ORM框架的规范, 对该规范的实现比较完整就是Spring Data JPA(底层基于Hibernate实现),是基于Spring的数据持久框架,也就是说它只能用在Spring环境内。...Mybatis也是一个优秀的数据持久框架,能比较好的支持ORM实体关系映射、动态SQL等。 笔者在学习这两个框架的过程中,看过不少的帖子,每当有帖子比较这两个框架的优缺点,就引来一场论战。...他为你准备好了大量的拿来即用的持久操作方法。甚至只要写findByName这样一个接口方法,他就能智能的帮你执行根据名称查找实体类对应的表数据,完全不用写SQL。...Mybatis写的动态SQL说到底还是SQL,而不是java代码或者java代码拼字符串。

1.8K41

持久

中可以用XML或者是注解),将程序中的对象自动持久化到关系数据库中或者将关系数据库表中的行转换成Java对象,其本质上就是将数据从一种形式转换到另外一种形式。...Session是持久服务对外提供的主要接口。   Session会延迟获取数据库连接(也就是在需要的时候才会获取)。...对于一些复杂的查询,我们可能会指定多个查询条件,但是这些条件可能存在也可能不存在,如果不使用持久框架我们可能需要自己拼装SQL语句,不过MyBatis提供了动态SQL的功能来解决这个问题。...1、Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句,不过mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和...总之,按照用户的需求在有限的资源环境下只要能做出维护性、扩展性良好的软件架构都是好架构,所以框架只有适合才是最好。 10、简单的说一下MyBatis的一级缓存和二级缓存?

1.3K60

RxCache 整合 Android 的持久框架 greenDAO、Room一. 背景二. 持久三. 使用四. 总结

背景 RxCache 是一个支持 Java 和 Android 的 Local Cache 。 之前的文章给 Java 和 Android 构建一个简单的响应式Local Cache曾详细介绍过它。...持久 RxCache 的持久包括 Disk、DB,分别单独抽象了 Disk、DB 接口并继承 Persistence。.... */ public interface DB extends Persistence { } 在 RxCache 的持久,尝试集成 Android 常用的持久框架。...2.1 集成 greenDAO greenDAO 是一款开源的面向 Android 的轻便、快捷的 ORM 框架,将 Java 对象映射到 SQLite 数据库。...使用这种方式,可以替换成任何的持久框架。使得 DB 也可以成为 RxCache 的其中一级缓存。 三. 使用 编写单元测试,看一下集成 greenDAO 的效果。

93620

码云推荐 | Java 持久工具 jSqlBox

一个支持动态配置、ORM、SQL 重构、跨数据库的 Java 持久工具。 1jSqlBox 是什么?...jSqlBox 是一个微型的、易学易用的、支持简单的 O-R 映射的持久工具,目标是用来代替功能强大但过于复杂的 Hibernate,以及一些相对简单但功能不尽人意的持久工具如MyBatis / JDBC...虽然号称无侵入的轻量级框架,但 HQL 和实体管理容器本身就是一种入侵,采用了这种架构的项目就绑死在了实体容器这种复杂的工具上了。...、支持 SQL重构、首创 SQL 内直接写参数等,很多微型持久工具都缺少若干项这些对易用性、可维护性非常关键的特性。...提供 CRUD 方法,简单的 CRUD 操作占持久大半的工作量,对一个持久工具来说自动生成 CRUD 方法是必须提供的基本功能。

2K70

持久框架中是什么让你选择 MyBatis?

建立数据库连接涉及鉴权、握手等一系列网络操作,是一个比较耗时的操作,所以我们不能像上述 JDBC 基本操作流程那样直接释放掉数据库连接,否则持久很容易成为整个系统的性能瓶颈。...JPA 是在 JDK 5.0 后提出的 Java 持久化规范(JSR 338)。...JPA 规范本身是为了整合市面上已有的 ORM 框架,结束 Hibernate、EclipseLink、JDO 等 ORM 框架各自为战的割裂局面,简化 Java 持久开发。...Spring Data JPA 是符合 JPA 规范的一个 Repository 的实现,其所在的位置如下图所示:图片Spring Data JPA 生态图虽然市面上的绝大多数 ORM 框架都实现了...总结我们重点介绍了 3 种常见的 ORM 持久框架,那在实际工作中我们又应该如何选择合适的持久框架呢?

34730
领券