Mysql+Mybatisダイナミックテーブル
2640 ワード
サービス層ビジネス
mapperレイヤインタフェース
mapper.xml
転載先:https://www.cnblogs.com/ningJJ/p/9185810.html
package com.zx.common.service.impl;
import com.zx.common.entity.SysUser;
import com.zx.common.mapper.SysUserMapper;
import com.zx.common.service.SysUserService;
import com.zx.common.util.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.UUID;
@Service("sysUserService")
public class SysUserServiceImpl implements SysUserService {
@Autowired
private SysUserMapper sysUserMapper;
@Override
public List selectAllUser() {
return sysUserMapper.selectAllUser();
}
@Transactional(rollbackFor = {Exception.class})
@Override
public void updateUserInfoTimer() {
// sys_user sys_user_
String beforeDateStr = DateUtil.getBeforeDateString();
String rename = "sys_user_" + beforeDateStr + UUID.randomUUID().toString().substring(0,16);
sysUserMapper.renameTable(rename.replace("-",""));
// sys_user
sysUserMapper.createTable();
}
}
mapperレイヤインタフェース
package com.zx.common.mapper;
import com.zx.common.entity.SysUser;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SysUserMapper {
List selectAllUser();
void renameTable(@Param("tableName") String tableName);
void createTable();
}
mapper.xml
ID, USERNAME, PASSWORD
rename table sys_user to ${tableName };
CREATE TABLE sys_user (
ID INT(11) NOT NULL AUTO_INCREMENT COMMENT ' ',
USERNAME VARCHAR(64) NOT NULL DEFAULT '',
PASSWORD VARCHAR(32) NOT NULL DEFAULT '',
PRIMARY KEY(ID),
KEY I_SYS_USER_USERNAME (USERNAME)
)ENGINE=INNODB DEFAULT CHARSET=UTF8 COMMENT=' ';
転載先:https://www.cnblogs.com/ningJJ/p/9185810.html