您的位置:首页 > 数据库

项目所用技术回顾之动态创建数据库表

2014-08-04 16:45 197 查看
前台定义好数据表相关字段的名称以后,后台可以动态的创建出一张与其对应的数据库表,其实就是""CREATE TABLE "+ dataTable.getTableName() +" as select * from data_table_sample"
的功劳,data_table_sample定义好了一百个字段,其中nvarchar2类型的字段有40个,clob类型的字段有10个,number类型的字段有40个。前台定义好的字段所对应的名称存储在table_column表中

String sql = "CREATE TABLE "+ dataTable.getTableName() +" as select * from data_table_sample";
connection = dao.getSession().connection();
connection.setAutoCommit(false);
statement = connection.createStatement();
statement.executeUpdate(sql);
for(int i=1;i<=40;i++){
<span style="white-space:pre"> </span>sql = "INSERT INTO TABLE_COLUMN(COLUMN_ID,TABLE_ID,COLUMN_NAME,COLUMN_CNAME,COLUMN_INDEX,COLUMN_TYPE,OPEN,IX01) VALUES(SEQ_TABLE_COLUMN.nextval,"+ dataTable.getTableId() +",'EX"+ (i<10?"0":"") +i +"','EX"+(i<10?"0":"") +i +"',"+i+",'text',0,0)";
statement.executeUpdate(sql);
}
for(int i=41;i<=50;i++){
sql = "INSERT INTO TABLE_COLUMN(COLUMN_ID,TABLE_ID,COLUMN_NAME,COLUMN_CNAME,COLUMN_INDEX,COLUMN_TYPE,OPEN,IX01) VALUES(SEQ_TABLE_COLUMN.nextval,"+ dataTable.getTableId()
+",'EX"+ (i<10?"0":"") +i +"','EX"+(i<10?"0":"") +i +"',"+i+",'clob',0,0)";
statement.executeUpdate(sql);
}
for(int i=1;i<=20;i++){
sql = "INSERT INTO TABLE_COLUMN(COLUMN_ID,TABLE_ID,COLUMN_NAME,COLUMN_CNAME,COLUMN_INDEX,COLUMN_TYPE,OPEN,IX01) VALUES(SEQ_TABLE_COLUMN.nextval,"+ dataTable.getTableId()
+",'IX"+ (i<10?"0":"") +i +"','IX"+(i<10?"0":"") +i +"',"+(50+i)+",'int',0,0)";
statement.executeUpdate(sql);
}
for(int i=1;i<=10;i++){
sql = "INSERT INTO TABLE_COLUMN(COLUMN_ID,TABLE_ID,COLUMN_NAME,COLUMN_CNAME,COLUMN_INDEX,COLUMN_TYPE,OPEN,IX01) VALUES(SEQ_TABLE_COLUMN.nextval,"+ dataTable.getTableId()
+",'DX"+ (i<10?"0":"") +i +"','DX"+(i<10?"0":"") +i +"',"+(70+i)+",'float',0,0)";
statement.executeUpdate(sql);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: