IT分销/经销数据库

头儿给我一个数据库表结构,让我建库建表

我看了看数据库表结构,当时我就傻眼!那么多表,怎么建啊。给我的还不是用工具导出得到的,而是一个破TXT,哈哈。然后我想了想,反正我们公司习惯用框架限制关联关系,数据库中什么都不做,然后我就突然想起来了,那么只有主键呗,程序搞定!哈哈。
花了一个多小时写了个小脚本,生成Sql语句。
TXT文本格式如下:
TBL_CZGL_CZZT //表名称
名称 代码 数据类型 主要的 强制 说明文本 //列名称
ID ID CHAR(13) TRUE TRUE 船闸状态的唯一标示 //主键
系统时间 XTSJ VARCHAR2(20) FALSE TRUE //普通字段
闸室水位 ZSSW NUMBER(4,2) FALSE TURE
上游水位 SYSW NUMBER(4,2) FALSE TRUE
TBL_CZGL_YHQX
名称 代码 数据类型 主要的 强制 说明文本
ID ID CHAR(13) TRUE TRUE 用户权限的唯一标示
用户ID YHID CHAR(13) FALSE TRUE
权限ID QXID CHAR(13) FASLE TRUE
**************************
格式就这么简单。
依此类推,没有什么其他(注:“*”号和“//”不为TXT中内容)
代码:
public class ReadFilebyLine {

public static StringBuffer readFileByLines(String fileName) {
        File file = new File(fileName);
        BufferedReader reader = null;
        StringBuffer sql = new StringBuffer();
        try {
            reader = new BufferedReader(new FileReader(file));
            String tempString = null;
            String Tbl = new String();
            while ((tempString = reader.readLine()) != null) {
                if(tempString.startsWith("TBL"))
                {
                 if(sql.length()!=0)
                 sql = sql.append(");rn");
                 Tbl = tempString;
                 sql = sql.append("rncreate TABLE "+Tbl+"( ");
                 continue;
                }else if(tempString.startsWith("名称")){
                 continue;
                }else if(tempString.split("t")[0].trim().equalsIgnoreCase("ID")){
                 String[] id = tempString.split("t");
                 sql = sql.append
                 (id[0]+" "+id[2]+",rntconstraint " + Tbl+ " primary key (" + id[0] + ")");
             }else if(!tempString.startsWith("TBL")
             ||!tempString.startsWith("ID")
             ||!tempString.startsWith("名称")){
             String[] columns = tempString.split("t");
                 sql = sql.append(",rnt" + columns[1]+" "+columns[2]);
             }
            }
            sql = sql.append(");");
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e1) {
                }
            }
        }
        return sql;
    }
public static void appendMethod(String fileName, String content) {
       try {
           //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
           FileWriter writer = new FileWriter(fileName, false);
           writer.write(content);
           writer.flush();
           writer.close();
       } catch (IOException e) {
           e.printStackTrace();
       }
   }
}

好了,这样的话想用的话直接ReadFilebyLine.{对应的静态方法}就搞定了。
EXPT:****.txt
create TABLE TBL_CZGL_YHQX( ID CHAR(13),
constraint TBL_CZGL_YHQX primary key (ID),
YHID CHAR(13),
QXID CHAR(13));

create TABLE TBL_CZGL_QX( ID CHAR(13),
constraint TBL_CZGL_QX primary key (ID),
QXMC VARCHAR2(50),
QXBH CHAR(20),
URL VARCHAR2(50));

create TABLE TBL_CZGL_RFIDXX( ID CHAR(13),
constraint TBL_CZGL_RFIDXX primary key (ID),
ZCSJ VARCHAR2(20),
RFIDBH VARCHAR2(20),
CBID CHAR(13),
ICKH VARCHAR2(20));


仅此为娱乐……希望对大家有帮助……
参与6

0同行回答

“答”则兼济天下,请您为题主分忧!
jimmyjimmy数据仓库工程师招行软件中心
java高手显示全部
java高手收起
银行 · 2010-12-16
浏览336
JonJon数据库管理员东南融通
绕了一大圈,太费力了。显示全部
绕了一大圈,太费力了。收起
互联网服务 · 2010-12-12
浏览359
louis0058louis0058项目总监gdsy
你这是应付差事。如果我是你的头,我就不同意你这样做,你何不用现成的建模工具建立数据物理模型,然后自动生成ddl,这样以后结构变动了也好维护。显示全部
你这是应付差事。如果我是你的头,我就不同意你这样做,你何不用现成的建模工具建立数据物理模型,然后自动生成ddl,这样以后结构变动了也好维护。收起
软件开发 · 2010-12-01
浏览329
FelixFelix数据仓库工程师亚信联创科技(北京)有限公司
用技术专长化解工作量,省时省力省心{:2_35:}显示全部
用技术专长化解工作量,省时省力省心{:2_35:}收起
软件开发 · 2010-12-01
浏览336
jackytang520jackytang520软件工程师保密公司
DB2不是有导出表结构的命令吗...干嘛还用JAVA写一个...显示全部
DB2不是有导出表结构的命令吗...干嘛还用JAVA写一个...收起
轨道交通 · 2010-12-01
浏览349
wangzhonnewwangzhonnew软件工程师IBM Canada Ltd.
java写的很熟练嘛,赞一个显示全部
java写的很熟练嘛,赞一个收起
IT分销/经销 · 2010-12-01
浏览339

提问者

IBMDB2DBA
系统工程师IBM
擅长领域: 数据库

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2010-11-30
  • 关注会员:0 人
  • 问题浏览:5719
  • 最近回答:2010-12-16
  • X社区推广