數據庫id自增重排序問題解決
問題描述
在做javaweb項目的過程中,使用SSM框架,發現操作數據庫的增刪查改功能時,數據庫的主鍵id不會重新排序,導致數據量一多,id值特別大特別亂,於是給出以下的解決方案。
MySQL中直接操作
直接在數據庫運行中輸入
alter table 表名 drop column 主鍵id;
alter table 表名 add 主鍵ID mediumint(8) not null primary key auto_increment first
SSM框架中操作
主要實現原理:刪除主鍵id重新生成新的主鍵id,做成數據刷新的按鈕功能,此方法唯一不足是會加大對數據庫的訪問,可能會影響性能,但是一般此功能不需要經常使用!
在你的mybatis的xml文件中可以使用DDL操作,語句放在******標籤中
<!-- 刷新用戶 -->
<update id="freshAllUser1"> //調用DAO層函數
alter table 表名 drop column 主鍵id
</update>
<update id="freshAllUser2"> //調用DAO層函數
alter table 表名 add 主鍵id int(11) not null primary key auto_increment first
</update>
至於後面幾層的寫法就不給出了,就是調用這兩個函數,不過在業務層中封裝層一個函數調用更方便些!