手写简易Mybatis框架

详细jar包见我的资源,免费下载。

一、该框架局限性:

  • 数据库表列名必须是varchar。
  • 本手写框架只实现了JDBC的事务管理器和UNPOOLED的数据源属性。
  • 本手写框架仅支持insert操作和单条件查询。

二、框架结构:

手写简易Mybatis框架_第1张图片

三、实现思路:

在这里插入图片描述

四、实现类:

Resources工具类:

package org.god.ibatis.util;

import java.io.InputStream;

/**
 * 工具类,完成类路径中资源的加载
 * @author 姓蔡小朋友
 * @since 1.0
 * @version 1.0
 */
public class Resources {
    /**
     * 工具类中的构造方法要私有化
     */
    private Resources() {}

    /**
     * 从类路径中加载资源,工具类中的方法要是静态的
     * @param resource 放在类路径中的资源文件
     * @return 返回一个指向资源文件的输入流
     */
    public static InputStream getResourcesAsStream(String resource){
        return ClassLoader.getSystemClassLoader().getResourceAsStream(resource);
    }
}

Const常量类:

package org.god.ibatis.core;

/**
 * 整个框架的常量类,保证OCP原则,修改时不必修改底层代码
 * @author 姓蔡小朋友
 * @since 1.0
 * @version 1.0
 */
public class Const {
    public static final String UN_POOLED_DATASOURCE = "UNPOOLED";
    public static final String POOLED_DATASOURCE = "POOLED";
    public static final String JNDI_DATASOURCE = "JNDI";
    public static final String JDBC_TRANSACTION = "JDBC";
    public static final String MANAGED_TRANSACTION = "MANAGED";
}

MappedStatement POJO类:

package org.god.ibatis.core;

/**
 * POJO类
 * 一个MappedStatement对象封装了一个SQL标签的所有信息:||||||