代码拉取完成,页面将自动刷新
自己封装使用的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测试类,有使用示例......
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。