基于springJDBC手写ORM框架
一、添加MySQLjar包依赖

二、结构

三、文件内容
(一)、bean包
1、ColumnInfo.java

2、javaFiledInfo.java


3、TableInfo.java

4、Configration.java 用于映射properities配置文件的属性

(二)、配置文件
1、properties配置文件

(三)、util包
1、

2、

3、

4、运用反射机制getClass获得当前的传入来的类的Class对象,因为每个被编译好的java 文件都是一个Class的实例,所以自然可以通过获取Class对象反过来获得该类信息。Class的实例的getMethod方法可以获得该类对外公开的方法第一个参数为该类里面公开的方法名第二个参数为该方法的形参。最后返回Method实例的invoke方法,第一个参数是入参的那个类,第二个参数是刚刚找到的那个公开方法的入参实际上就是执行了刚才获取到的那个方法然后返回那个方法的返回值。

5、

6、






(四)、core包
1、

2、

3、

4、

5、

6、

下面的DatabaseMetaData类是Connection对象的一个属性可用来查数据库的一些整体信息如版本号,url等等,可称为元数据,通过获取这些信息可以获取到表名字段名等,为生成实体类做准备。




下面第70行就是利用传进来的某个类型获得的字段名,其实就是一个实体类里某个字段的get方法里的某个字段对应的入参,然后通过反射调用该字段get方法获取值,值不为空就追加到集合中去。
最后首先生成实体类然后可以执行crud,这里就执行一个增加方法。

基于springJDBC手写ORM框架的更多相关文章
- 重学 Java 设计模式:实战中介者模式「按照Mybaits原理手写ORM框架,给JDBC方式操作数据库增加中介者场景」
作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 同龄人的差距是从什么时候拉开的 同样的幼儿园.同样的小学.一样 ...
- 基于netty手写RPC框架
代码目录结构 rpc-common存放公共类 rpc-interface为rpc调用方需要调用的接口 rpc-register提供服务的注册与发现 rpc-client为rpc调用方底层实现 rpc- ...
- 深入理解Mybatis(第一讲)——手写ORM框架(简易版Mybatis)
我们来自定义一个持久层框架,也就是Mybatis的简易版. 使用端的搭建 idea中新建maven工程IPersistence_test: 在resources目录下新建sqlMapConfig.xm ...
- 分享自己写的基于Dapper的轻量级ORM框架~
1.说明 本项目是一个使用.NET Standard 2.0开发的,基于 Dapper 的轻量级 ORM 框架,包含基本的CRUD以及根据表达式进行一些操作的方法,目前只针对单表,不包含多表连接操作. ...
- 要想精通Mybatis?从手写Mybatis框架开始吧!
1.Mybatis组成 动态SQL Config配置 Mapper配置 2.核心源码分析 Configuration源码解析 SqlSessionFactory源码解析 SqlSession源码解析 ...
- 手写 jQuery 框架
1.测试页面; <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- 手写DAO框架(二)-开发前的最后准备
-------前篇:手写DAO框架(一)-从“1”开始 --------- 前言:前篇主要介绍了写此框架的动机,把主要功能点大致介绍了一下.此篇文章主要介绍开发前最后的一些准备.主要包括一些基础知识点 ...
- 手写DAO框架(一)-从“1”开始
背景: 很久(4年)之前写了一个DAO框架-zxdata(https://github.com/shuimutong/zxdata),这是我写的第一个框架.因为没有使用文档,我现在如果要用的话,得从头 ...
- 手写RPC框架指北另送贴心注释代码一套
Angular8正式发布了,Java13再过几个月也要发布了,技术迭代这么快,框架的复杂度越来越大,但是原理是基本不变的.所以沉下心看清代码本质很重要,这次给大家带来的是手写RPC框架. 完整代码以及 ...
随机推荐
- iwap:修改菜单树文件
1.添加mysql数据库连接的jar包. 2.
- 快速上手mpvue 项目
初始化一个 mpvue 项目 $ node -v v8.9.0 $ npm -v 5.6.0 # 2. 由于众所周知的原因,可以考虑切换源为 taobao 源 $ npm set registry h ...
- SLAM第一篇:基础知识
无论在室内.野外.空中还是水下,SLAM是机器人进入未知环境遇到的第一个问题.本期给大家介绍SLAM的基础知识:传感器与视觉SLAM框架 近来年,智能机器人技术在世界范围内得到了大力发展.人们致力于把 ...
- serviceWorker
推荐阅读:Service Worker 简介 在 Service Worker 之前,我们一般用 AppCache 来实现离线体验(就是配置 Manifest 文件的方式),这个会有很多问题(博主曾尝 ...
- 使用u盘安装linux(manjaro)时Grub报错
本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/manjaro_install_problem_grub 错误 e ...
- 解决JavaWeb项目报错:The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
明明有项目和文件,而且别的项目都可以运行,偏偏这个不能用,报错The origin server did not find a current representation for the targe ...
- selenium鼠标操作
#-*- coding:utf-8 -*- import time from selenium import webdriver from selenium.webdriver.common.acti ...
- 享学课堂java架构vip课程
1.wps文档地址 https://docs.qq.com/doc/DRVNLUndvTmFSdEhO 2.百度网盘地址 https://pan.baidu.com/s/1uxaTzJZHKrsw_H ...
- spark错误记录总结
1.执行spark-submit时出错 执行任务如下: # ./spark-submit --class org.apache.spark.examples.SparkPi /hadoop/spark ...
- D.Dwarf Tower
Vasya在玩一个叫做"Dwarf Tower"的游戏,这个游戏中有n个不同的物品, 它们的编号为1到n.现在Vasya想得到编号为1的物品. 获得一个物品有两种方式: 直接购买该 ...
