校验表是否存在:
dao层:
/** * @Method 校验表是否存在,若存在则大于0,不存在则返回0 * @Author MC * @Return * @Date 2019/10/15 0015 15:58 */ Integer existTable(String tableName);
xml文件:
<select id="existTable" parameterType="String" resultType="Integer"> select count(*) from information_schema.TABLES where LCASE(table_name)=#{tableName} </select>
动态创建表:
dao层:
/** * @Method 根据表名创建im_msg_log_*表 * @Author MC * @Return * @Date 2019/10/15 0015 16:00 */ void createIMMsgLogTable(@Param("tableName")String tableName);
xml:
<update id="createIMMsgLogTable" parameterType="String"> CREATE TABLE ${tableName} ( `id` varchar(32) NOT NULL COMMENT '系统生成全局唯一ID', `a` varchar(50) DEFAULT NULL COMMENT 'aaa', `b` varchar(10) DEFAULT NULL COMMENT '请求类型 ', `c` varchar(12) DEFAULT NULL COMMENT '时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='消息记录'; </update>
对动态表进行批量数据插入:
dao层:
/** * @Method 插入IMMsgList表 * @Author MC * @Return * @Date 2019/10/15 0015 16:41 */ void insertIMMsgListTable(@Param("tableName")String tableName,@Param("list")List<IMMsgListEntity> entity);
xml:
<insert id="insertIMMsgListTable" parameterType="com.xx.xx.im.entity.IMMsgListEntity"> INSERT INTO ${tableName} <trim prefix="(" suffix=")" suffixOverrides="," > id, msg_seq, msg_random </trim> VALUES <foreach collection ="list" item="item" index= "index" separator =","> ( #{item.id}, #{item.msgSeq}, #{item.msgRandom} ) </foreach> </insert>