我也是今天工作任务中需要动态添加某张表的字段属性以及查询表的所有字段。整体流程是动态添加数据表然后动态插入column和value,到我这的任务就是编辑功能,编辑新增表单文本信息时,就要动态添加字段了。经过浏览各大神的博客发现这个方法只是对于数据量小的表可以操作,数据量大的表会操作很长时间,影响客户的使用
1.添加
动态添加到ff_shebeiweixiu表的shebeif、sheibeig字段
ALTER TABLE `ff_shebeiweixiu`
add COLUMN `sheibeif` varchar(255) NOT NULL DEFAULT "",
add COLUMN `sheibeig` varchar(255) NOT NULL DEFAULT "";
我是用mybatis连接的数据库,mapper文件里写法:
<insert id="insertColumns" parameterType="com.qf.flow.domain.DynaTableDO">
alter table ${tableName}
<foreach collection="columns" item="listItem" separator=",">
add COLUMN ${listItem} varchar(255) NOT NULL DEFAULT ""
</foreach>
</insert>
2.查询
动态查询ff_shebeiweixiu表所有字段
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns WHERE table_name='ff_shebeiweixiu'
我是用mybatis连接的数据库,mapper文件里写法:
<select id="selectColumnFormTable" parameterType="String" resultType="String">
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns WHERE table_name= #{tableName}
</select>