能实现的需求:
需求1:要实现一次创建多张表,或者修改表的功能,来减轻手动创建的重复操作
需求2:分表功能 根据业务创建不同公司的表
一、test类 java代码
package org.uz.dxt.service;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.omg.CosNaming.NamingContextExtPackage.StringNameHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.uz.dxt.dao.cuiji.CuijiMapper;
import org.uz.dxt.model.bankbase.Batch;
import org.uz.dxt.util.CalculatorUtil;
import com.alibaba.fastjson.JSON;
import com.sun.istack.logging.Logger;
//test类想要使用mybatise 必须使用这两个注解
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class Test01 {
@Autowired
private CuijiMapper cuijiMapper;
private static Logger logger = Logger.getLogger(Test01.class);
//拼接sql创建表的语句
public String CreateCuijiTableName(String tablename){
String uSql = "create table IF NOT EXISTS `cuiji`."+tablename
+"(`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '记录ID',"
+"`type` int(11) DEFAULT NULL COMMENT '记录类别;0=电催;1=CP;2=评语;3=调案;',"
+"`caseid` varchar(50) DEFAULT NULL COMMENT '案件编号', "
+"`doccode` varchar(50) DEFAULT NULL COMMENT '债务人身份证号',"
+"`name` varchar(50) DEFAULT NULL COMMENT '通话人姓名',"
+"`phone` varchar(80) DEFAULT NULL COMMENT '电话号码',"
+"`summary` varchar(8) DEFAULT NULL COMMENT '联络摘要',"
+"`infor` varchar(10000) DEFAULT NULL COMMENT '通话内容',"
+"`userid` int(11) DEFAULT NULL COMMENT '业务员ID', "
+"`companycode` varchar(30) DEFAULT NULL COMMENT '催收公司编码',"
+"`callDate` timestamp NULL DEFAULT NULL COMMENT '联络日期', "
+"`direction` int(11) DEFAULT NULL COMMENT '通话方向;0=呼出;1=呼入',"
+"`relation` int(11) DEFAULT NULL COMMENT '关系;1=本人;2=直系;3=亲属;4=联系人;5=担保人;6=其他', "
+"`cardcode` varchar(50) DEFAULT NULL COMMENT 'cardcode/contractcode合并为此一个字段,type用来区分使用哪一个\r\ntype=0 信用卡,type=1非信用卡',"
+"`cardtype` int(2) DEFAULT NULL COMMENT '0=信用卡 1=非信用卡',"
+"`recordid` int(11) DEFAULT NULL COMMENT '通话记录主键Id',"
+"`commtype` varchar(10) DEFAULT NULL COMMENT '联系方式:手机,司电,宅电 新表添加此字段',"
+"PRIMARY KEY (`id`), "
+"KEY `caseid_index` (`caseid`) USING BTREE"
+")ENGINE=InnoDB DEFAULT CHARSET=utf8";
return uSql;
}
/**
* 创建表的方法
* 修改表字段长度方法
* */
@Test
public void CreateCuijiTable(){
List<String> list=tableName();
/*//创建表的方法
for (int i = 0; i < list.size(); i++) {
String uSql=CreateCuijiTableName(list.get(i));
System.out.println(uSql);
cuijiMapper.updateTableField(uSql);
}*/
/*//修改表字段长度方法
for (int i = 0; i < list.size(); i++) {
String uSql=alterCuijiByPhone(list.get(i));
cuijiMapper.updateTableField(uSql);
}*/
}
//动态表名
public List<String> tableName() {
List<String> nameList=new ArrayList<String>();
nameList.add("t_cuiji_abbj");
nameList.add("t_cuiji_abdy");
nameList.add("t_cuiji_abdz");
nameList.add("t_cuiji_abhb");
nameList.add("t_cuiji_abhz");
nameList.add("t_cuiji_abjm");
nameList.add("t_cuiji_abjn");
nameList.add("t_cuiji_ablw");
nameList.add("t_cuiji_ably");
nameList.add("t_cuiji_abes");
nameList.add("t_cuiji_abqj");
nameList.add("t_cuiji_abrz");
nameList.add("t_cuiji_absd");
nameList.add("t_cuiji_abwh");
nameList.add("t_cuiji_abta");
nameList.add("t_cuiji_abwuh");
nameList.add("t_cuiji_abxt");
nameList.add("t_cuiji_abyt");
nameList.add("t_cuiji_abzb");
nameList.add("t_cuiji_abzz");
nameList.add("t_cuiji_bobcfc");
nameList.add("t_cuiji_bmbj");
nameList.add("t_cuiji_bmw");
nameList.add("t_cuiji_bmsd");
nameList.add("t_cuiji_bmwh");
nameList.add("t_cuiji_bqzl");
nameList.add("t_cuiji_bqjr");
nameList.add("t_cuiji_cbdz");
nameList.add("t_cuiji_bocgz");
nameList.add("t_cuiji_cbhb");
return nameList;
}
//拼接修改字段长度的sql语句
public String alterCuijiByPhone(String tablename){
String uSql = "alter table `cuiji`."+tablename
+" MODIFY phone varchar(80)";
return uSql;
}
}
二、Dao方法
void updateTableField(@Param("uSql")String uSql);
三 mapper.xml
<update id="updateTableField" parameterType="java.lang.String" >
${uSql}
</update>
执行成功
谢谢观看