什么是mybatis?
是一个优秀的持久层框架,支持自定义sql 存储过程 高级映射,几乎免除所有jdbc操作,通过xml注解配置映射Javapojo。
mybatis有什么用?
灵活
简单
易维护 sql 代码分离
使用的人多
如何使用?
maven 去掉过滤
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
mybatis plus
第一个坑 :自动驼峰转换 map-underscore-to-camel-case: false
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
//===================全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
globalConfig.setAuthor("lll");//作者
globalConfig.setOpen(false);
globalConfig.setFileOverride(false);//是否覆盖
globalConfig.setServiceName("%sService");//去掉Service的I前缀
globalConfig.setIdType(IdType.ASSIGN_ID);//主键生成策略
globalConfig.setDateType(DateType.ONLY_DATE);//普通日期类型
globalConfig.setSwagger2(true); //生成swagger
mpg.setGlobalConfig(globalConfig);
//================设置数据源
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mcms?useUnicode=true&useSSL=false&characterEncoding=utf8");
dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("qqq8760951");
mpg.setDataSource(dataSourceConfig);
//================设置包生成
PackageConfig packageConfig = new PackageConfig();
// packageConfig.setModuleName("cms");
packageConfig.setParent("com.example");
packageConfig.setEntity("pojo");
packageConfig.setMapper("mapper");
packageConfig.setService("service");
packageConfig.setController("controller");
mpg.setPackageInfo(packageConfig);
//================设置策略
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setInclude("user");//生成映射表面
strategyConfig.setNaming(NamingStrategy.underline_to_camel);//驼峰转换
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);//驼峰转换
// strategyConfig.setSuperEntityClass("");
strategyConfig.setEntityLombokModel(true);
strategyConfig.setRestControllerStyle(true);//restful风格
strategyConfig.setControllerMappingHyphenStyle(true);// localhost/hello_id_2
strategyConfig.setLogicDeleteFieldName("deleted");
//自动填充配置
TableFill create_time = new TableFill("create_time", FieldFill.INSERT);
TableFill update_time = new TableFill("update_time", FieldFill.INSERT_UPDATE);
ArrayList arrayList = new ArrayList();
arrayList.add(create_time);
arrayList.add(update_time);
strategyConfig.setTableFillList(arrayList);
strategyConfig.setVersionFieldName("version");
mpg.setStrategy(strategyConfig);
//执行生成
mpg.execute();