2 Star 0 Fork 0

快乐的小菌菌 / junbatis

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
自己封装使用的MyBatis框架
目标是做到代码最大化的简洁,功能尽可能的丰富。
运行环境:gradle-4.6,idea,Lombok插件(idea插件),JDK1.8,MySql5.7
更新列表:
    2018.3.29
        1.SqlUtil工具类:
            *****************
            其中3,4,5返回的都是String[]数组
            *****************

            1.underlineHump():              下划线转驼峰
            2.humpUnderline():              驼峰转下划线
            3.sqlColumnBuilder():           数据库表字段构建 *这个方法只为了把getClass之类的字段过滤掉,并且把POJO属性转成 下划线形式迎合数据库规范。
            4.sqlConditionColumnBuilder():  条件构建 *形如#{userName}
            5.sqlAliasColumnBuilder():      查询的字段(别名)*形如user_name AS userName
            6.getTableName():               获得表名的方法
        2.@IgnoreColumn、@TableName两个注解实现
            @IgnoreColumn:过滤字段,一般加在getxxx方法上,它的实现在sqlColumnBuilder()中集中实现,并在sqlConditionColumnBuilder()、sqlAliasColumnBuilder()中引用并加以处理。
            @TableName:   获取表名,加在类上,参数可写可不写,默认首字母小写为表名
        3.RootObject
            目前只是把id放在了这个class里,并根据是否是isDeclared条件控制是否带有父类(RootObject)里的属性。

    2018.3.30
        1.通用Service接口类,Service实现类封装。Service层统一继承两个类就可以了。
        2.ConditionConstructor查询条件构造器实现,添加了EQUAL,NOT_EQUAL,LESS,GREAT,LESS_EQUAL,GREAT_EQUAL,LIKE关键字查询。
        3.修改了部分bug。

    2018.3.31
        1.框架目录组成微调整。
        2.加入了自定义Exception,有写自己一套异常处理类的意向。
        3.insert批量功能的实现,ignoreColumn已支持。不需要储存的字段不set自动存null处理,datetime类型不能insert
        4.修改了部分bug。

    2018.4.01
        1.delete可以根据条件删除了。开始着手收集Exception做集中管理。
        2.update条件还未支持。

    2018.4.02
        1.update条件更新已支持。
        2.update批量已支持更新父类属性。
        3.删除了update单一数据的SqlBuilder中的方法,在GenericServiceImpl实现。

    2018.4.03
        1.支持or语句查询。*可以被多次调用,但在一行中多次调用或生成不稳定的SQL。

    2018.4.04
        1.分页功能初步实现,返回没有封装。

    2018.4.19
        1.懒了几天。。。咳!结构变化,更加方便依赖方便。
        2.分页功能实现,返回没有封装。
        3.根据id查询单个对象。

    2018.4.20
            1.结构变更,隐藏实现,和GenericServiceImpl相关的类放在了一起。大部分内聚方法对调用者隐藏。
            2.支持查询列表,无分页。
            3.条件删除bug修改。
            4.支持order by子句。
            5.left join 初探


Dao层功能:
    select按条件简单的查询(and)
    insert可以插入单一一条数据
    insert可以批量数据。
    delete可以根据删除
    delete可以不用循环就可以批量删除。(按条件删除即可)
    update可以按字段批量更新。(可以按条件更新)
    update根据id更新


期望添加的功能:
    1.insert不止只支持主键为Integer,也可以支持String。推荐Integer。
    2.select可以最大化的丰富查询功能,join、or、and、order by、group by etc.等常用关键字查询。
    3.select可以简单的支持某些函数。
    ...
    持续更新中...

使用说明:
    1.所有sql构建规则请参考:http://www.mybatis.org/mybatis-3/zh/statement-builders.html
    2.框架中拼接sql的关键字符我并没有统一在常量类中定义,虽然应该这样做,但是我感觉直接硬编码在代码中会更加便于解读代码。而不需要再去看看这个常量对应的值是什么(往往需要对照的读代码)。又因为框架的东西一般不需要改的很严重,所以我觉得这么写无伤大雅。因为真的很便于解读,所以我就采用了这种编码的风格————适当的硬编码便于解读代码(我说的)......
    3.查询构建使用ConditionConstructor.class。
    4.LIKE查询需要自己写%,example:conditionConstructor.conditionAnd("%jun%", Condition.EQUAL, "user_name");
    5.每个POJO都要自己重写toString()方法;
    6.具体可以查看JunbatisApplicationTests测试类,有使用示例......

空文件

简介

自己封装使用的MyBatis框架。 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/jifujunasd/junbatis.git
git@gitee.com:jifujunasd/junbatis.git
jifujunasd
junbatis
junbatis
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891