老杨说话的地方
  • 首页
  • 关于老杨
  • 博客时间
  • 文章分类
    • 人生感悟
    • 信息技术
    • 往事随风
    • 情感随笔
    • 文学创作
    • 生活记录
    • 评论杂谈
    • 人工智能
  • 留言本
我是老杨
张驰有度 宠辱不惊
  1. 首页
  2. 信息技术
  3. 正文

杨氏框架的自动代码功能

2009年11月30日 16454点热度 0人点赞 43条评论

承蒙朋友们抬爱,把这个框架命名为杨氏框架,那我就不客气了。我起的英文名字,大家记住,Yangs Frame。

现在杨氏框架在师弟师妹的努力下已经日趋完善,也已经在项目中开始使用。可是我知道我们的框架当然需要有很多提高的地方,所以这里我要提出一些新的要求。

  1. 框架的发展
    杨氏框架将在下面的方向进行发展,或者说经历下面的几个阶段:

    • 前台和后台代码的自动生成功能(这也是我这篇文章将要说明的)
    • 系统程序的模块化(如果第一步能够实现,那么第二步将会很容易了)
    • 提升效率(包括数据库连接资源池、数据的缓存、数据库的并发以及全局变量的使用等)

    等上面的三部分基本都实现了,那么框架就很成熟了

  2. 自动代码功能
    之所以要提这个功能,是因为我觉得杨氏框架还不够智能。如果一个数据表的结构改变,那么首先我们要修改数据库,同时要修改前台页面,还要修改后台生成sql语句的类。工作量是巨大的。所以我希望能够引入配置文件的功能,从而实现代码的自动生成。

    • 实现架构
      架构图如图1所示:这里我假定的是理想情况,不需要做任何修改,那么使用E-R图生成的Sql语句和XML是绝对一致的。SQL语句用来生成数据库,XML文件用来生成前台页面和后台代码,所以三者之间是高度一致的。
    • autocoding1
    • XML文件
      XML文件的结构应该如下所示(仅供参考)

      
      
      

      ...................................

      其中的name和数据库表中的某一列的列名,数据类型,是否唯一,是否为空都需要定义。另外NickName指的是别名,用来在前台Form表单进行显示。为了保证效率,可以在Tomcat运行时就将该XML文件载入内存,存放在全局变量中,这样前台和后台都可以直接使用。

    • 前台代码(所有的代码都是伪代码,我现在已经退化到不会写代码了)
      前台代码我想采用自定义标签的形式,前台调用方式会很简单:

      
      

      后台处理的Java程序也并不难,但是可能会复杂,因为要考虑的情况很多:

      this.tablename=tablename;//get which form you want to generate
      autoform.getTable(tablename);//get the table info from the xml stored in Memory as Application variable
      out.print("
      "); for(i=1; i<autoform.columnnumber;i++) { if(column[i].type="text") { out.print(column.nickname+"");//generate the form code } ..................// } out.print("

      ");

    • 后台代码
      后台代码页会非常简单,在我们为一个实体Bean设置完属性后(setProperty),就可以使用另外的函数来生成插入,修改还是删除它的Sql语句了。

      XML=Application.XML;//get the xml file stored in Memory
      this.tablename=tablename;
      Table=getTable("Tablename");
      String InsertSQL="insert into "+tablename;
      for(i=1; i<autoform.columnnumber;i++)
      {
      	InsertSQL=InsertSQL+"(column[i].name"+",");
      }
      InsertSQL=InsertSQL+this.username+.........
      

    这个的过程基本就是这样的,其实并不难。

  3. 这样做的好处
    • 易于开发,不用前台后台不停的核对了,我们只需要编写XML文件即可
    • 易于维护,当某一个功能升级后,我们只需要修改XML即可(对于小的改动)
    • 一致性,前台和后台高度一致(因为都来自于XML文件),因此出错可能性小。

    当然可能也会有一些缺点,容后讨论。

差不多就是这样,写出来供大家参考。

标签: java tomcat xml 升级 工作 开始 数据库 文件 框架 程序 项目
最后更新:2016年11月26日

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

点赞
订阅评论
提醒
guest

guest

43 评论
内联反馈
查看所有评论
卢松松
卢松松
游客
2009年12月3日 下午4:51

我已经不怎么搞开发了

0
回复
老杨
老杨
作者
回复给  卢松松
2009年12月3日 下午4:52

@卢松松 我这个专业不搞开发不行啊

0
回复
留个印儿
留个印儿
游客
2009年12月2日 上午8:17

配置文件应该提供一个IDE根据数据库结构自动生成。

0
回复
老杨
老杨
作者
回复给  留个印儿
2009年12月2日 上午8:24

@留个印儿 我想这样,但是不知道去哪里找合适的IDE

0
回复
小农夫
小农夫
游客
2009年12月2日 上午4:33

老杨,每次看你的文章都觉得你是我们八零后的骄傲,加油呀。

0
回复
老杨
老杨
作者
回复给  小农夫
2009年12月2日 上午8:30

@小农夫 呃,这个压力很大啊,我尽量努力吧

0
回复
猫哥
猫哥
游客
2009年12月1日 下午10:57

不错,杨氏的,哈哈。

0
回复
老杨
老杨
作者
回复给  猫哥
2009年12月2日 上午8:29

@猫哥 哈,只要是杨氏的就不错,哈哈

0
回复
太阳博客
太阳博客
游客
2009年12月1日 上午8:58

博士终于亮出了绝活。

0
回复
老杨
老杨
作者
回复给  太阳博客
2009年12月1日 上午9:13

@太阳博客 也不是什么绝活了,一点想法而已

0
回复
太阳博客
太阳博客
游客
回复给  太阳博客
2009年12月2日 上午7:07

@太阳博客 不是绝活,是个人想法,那也是一绝。

0
回复
老杨
老杨
作者
回复给  太阳博客
2009年12月2日 上午8:27

@太阳博客 呃,好吧,这是我的绝活

0
回复
小红
小红
游客
2009年11月30日 下午9:19

要拜也得等你再长胖点儿啊

0
回复
老杨
老杨
作者
回复给  小红
2009年11月30日 下午9:20

@小红 呃,再胖就真要成佛了

0
回复
小红
小红
游客
2009年11月30日 下午9:08

嗯嗯,一般这种情况就该合起双手说你很牛了。咳咳,不过我就不说,接着胡思乱想吧~

0
回复
老杨
老杨
作者
回复给  小红
2009年11月30日 下午9:18

@小红 你要拜佛么?

0
回复
小红
小红
游客
2009年11月30日 下午8:56

还好啦,大部分思想都听懂了。不过有好些东西我还没学,所以建设性意见就提不出来喽~
你说的那个数据库的install和update让我想起了数据库里的undo和redo操作……你从哪儿来的启发啊?

0
回复
老杨
老杨
作者
回复给  小红
2009年11月30日 下午9:05

@小红 没什么启发,就是胡思乱想的

0
回复
蓝冰
蓝冰
游客
2009年11月30日 下午8:46

前排围观。

0
回复
老杨
老杨
作者
回复给  蓝冰
2009年11月30日 下午8:53

@蓝冰 刚讲完,感觉不太成功

0
回复
小红
小红
游客
2009年11月30日 下午6:52

你今儿晚上打算讲这个?话说我看得有点点晕。

0
回复
老杨
老杨
作者
回复给  小红
2009年11月30日 下午8:52

@小红 看来有点失败啊

0
回复
刀河
刀河
游客
回复给  老杨
2009年12月4日 上午9:12

@老杨 真的听不懂耶

0
回复
老杨
老杨
作者
回复给  刀河
2009年12月4日 下午2:51

@刀河 相信我,听不懂是正常的

0
回复
1 2 下一页 »

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

搜索
最新 热点 随机
最新 热点 随机
中国是不是体育强国? 成功的必备因素 关于华为 别再侮辱我的智商 春秋航空让人长见识 第二青春计划失败 第二青春计划 模型训练错误RuntimeError: expected scalar type Half but found Float 加载onnx模型进行推理 PyTorch模型转onnx格式
站在黄石上(记录篇) git pull的时候报错Your local changes to the following files would be overwritten by merge 美国租房记 我的能量哲学(二)人的一生为何如此辛苦 你的Ta 这一次艰难的备案 配置Visual Studio Code和LaTex环境 我喜欢的浏览器 谁会成为移动平台霸主 Windows Mobile和WinCE的区别
最新评论
  • 成功的必备因素上的xqiushi应该是那样子的。坚持锻炼后体重变化不大,体型会有变化:肥肉会少,肌肉会…
  • 成功的必备因素上的老杨感觉上瘦了,不过体重并没有减轻,很奇怪,难道说是脂肪少了,肌肉多了?
  • 中国是不是体育强国?上的xqiushi听说今年苏超很火。
  • 成功的必备因素上的xqiushi大半年过去了,瘦了吗?
  • 中国是不是体育强国?上的Ra运动需要器材、需要场地费用、需要时间、需要搭子,运动都是和竞技挂钩的,…
  • 开张大吉上的yorkzz试试你的评论功能
  • 关于华为上的老杨确实,苹果手机系统还是有优势的。
  • 关于华为上的乱云AKAY自从换了苹果手机后,对手机再没以前那样热爱研究了,主要是系统省心。
  • 第二青春计划失败上的老杨第二都失败了,第三就算了吧。
  • 春秋航空让人长见识上的老杨应该提供一点水,至少给不想买水的人一个选择的空间。

Google java jsp linux QQ wordpress 中国 习惯 人生 公司 决定 博士 博客 同学 国家 大学 学习 实验室 家 小说 工作 开始 思考 情感 手机 技术 推荐 插件 数据库 文件 晴迷星途 朋友 生活 电影 相声 程序 笔记 网站 网络 置顶 美国 评论 软件 音乐 项目

关注公众号

COPYRIGHT © 2020 老杨说话的地方. ALL RIGHTS RESERVED.

THEME KRATOS YANG Modified BY 老杨

鲁ICP备17014997号-4

鲁公网安备 37021302000754号