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

杨氏框架的自动代码功能

2009年11月30日 16122点热度 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格式
给我死去的朋友 软件推荐:CSS编辑器TopStyle 订阅老杨博客的新方法 晴迷星途22阶段胜利 Ubuntu下Firefox Flash插件中文乱码解决 音乐会 婚礼压力高考及其他 做一个恶人 什么是优质的客服 基于Java语言的B/S系统构建(序)
最新评论
  • 关于华为上的老杨确实,苹果手机系统还是有优势的。
  • 关于华为上的乱云AKAY自从换了苹果手机后,对手机再没以前那样热爱研究了,主要是系统省心。
  • 第二青春计划失败上的老杨第二都失败了,第三就算了吧。
  • 春秋航空让人长见识上的老杨应该提供一点水,至少给不想买水的人一个选择的空间。
  • 别再侮辱我的智商上的老杨那个很好,很值得。
  • 关于华为上的老杨Next系统基本没广告。大部分广告都可以关掉吧,我记得我写过一个文章,…
  • 第二青春计划失败上的xqiushi开始第三青春计划吧。
  • 春秋航空让人长见识上的xqiushi那个桌板能放下小米多看电子书,还是不错的。 这个矿泉水市面上没有,特供…
  • 别再侮辱我的智商上的xqiushi只投了那100亿的项目。
  • 关于华为上的xqiushi今年我爸的手机也换成华为,家庭里手机基本都是华为。最不满意的一点就是广…

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

关注公众号

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

THEME KRATOS YANG Modified BY 老杨

鲁ICP备17014997号-4

鲁公网安备 37021302000754号