能实现的需求:
需求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;
- //<span style="color:#ff0000;">test类想要使用mybatise 必须使用这两个注解</span>
- @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>
学习转载自:https://blog.csdn.net/Alice_qixin/article/details/75410542