1 Star 0 Fork 50

framework-collection / rexdb

forked from rex / rexdb 
Gitee — Enterprise-level DevOps R&D management platform
Join Gitee
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
Clone or download
CHANGRLOG.md 3.87 KB
Copy Edit Web IDE Raw Blame History
aohanhongzhi authored 2020-02-24 23:12 . 自动建表的功能

ChangeLog

框架架构图

已知问题

  1. 模糊查询的时候,?作为参数标记 参考文件SqlUtil.java的62行,validate方法.
  2. 加上自动建表的功能
  3. null就不更新 ,update不需要拼接了,直接null不更新,更新就直接 'null'字符串
  4. 自增返回id, 好像这种方便也不是很有必要,反而会让框架更加繁琐。性能降低

2020/02/21

Change

  1. 框架核心 DBTemplate
  2. javassit字节码框架使用用来动态生成类的,java自带的reflect是使用生成的动态类.

2020/02/20

Change

反射与prepareStatement研究, 通过PropertyDescriptor反映射调用set和get方法

2019/12/16

Change

  • Java中的驼峰式命名与数据库中的分隔符,如果不按照下面这种方式,可能导致数据无法正常映射。

2019/12/15

Change

2019/11/25

ChangeLg

  • 自定义查询学习,raw语句查询 org.rex.db.sqlite.SqliteTest

2019/11/20

有感

确实不得不承认框架非常优秀,配置文件的加载方式值得学习,作为一个被人使用的框架,日志部分设计的也是良苦用心。

感叹之余,发信自己在代码中越陷越深,没有全局观。以至于像深陷泥潭而无法自拔。对于一个框架没有像自己了解SpringMVC那样清晰的概念,很难无法自拔之后很难读懂框架整个运行机制是什么。弄来弄去,把我自己看的越来越晕。发现自己在框架自造上路还很长。

sonarqube检查

一共9.1K行代码。代码快到1W了。还是有点多。

框架要求

  1. raw sql,例如查询数据库条数
  2. 查询insert之后的id,也就是增加并返回id。select last_insert_raw()
           public static int insert(AreaTemplateModel customerModel)  {
               // 插入之前需要做唯一性检查,保证唯一
               String sql = "INSERT or ignore INTO "+tableName+"(name, profile,area_template_id) VALUES (#{name}, #{profile},#{areaTemplateId})";
               int i = 0;
               int id=-1;
               try {
                   i = DB.update(sql, customerModel);
               } catch (DBException e) {
                   e.printStackTrace();
               }
       
               log.info("{}",customerModel);
               // 新增并返回id,下面这个语句不可以单独查询,否则结果一直是0
       //      https://blog.csdn.net/imxiangzi/article/details/81151797
               String sql1= "select last_insert_rowid() from "+tableName;
               sql1="select * from "+tableName+" where rowid = last_insert_rowid()";
       
               try {
       //            RMap<String, ?> i1 = DB.call(sql1);
                   List<RMap> list = DB.getMapList(sql1);
                   log.info("{}",list);
                   RMap<String,?> map= list.get(0);
                   id= (Integer) map.get("id");
               } catch (DBException e) {
                   e.printStackTrace();
               }
       
               log.info("影响行数:{}", i);
               // 影响行数
               return id;
           }

Comment ( 0 )

Sign in for post a comment

Java
1
https://gitee.com/framework-collection/rexdb.git
git@gitee.com:framework-collection/rexdb.git
framework-collection
rexdb
rexdb
dev

Search

181749 a2d7925e 1850385 181749 9f8568a7 1850385