基于Mybatis plus 自动代码生成器的实现代码
程序员文章站
2023-12-13 20:05:58
1.使用的是maven项目,添加依赖
...
1.使用的是maven项目,添加依赖
<!-- mybatis-plus begin --> <dependency> <groupid>com.baomidou</groupid> <artifactid>mybatis-plus</artifactid> <version>2.2.0</version> </dependency>
还有数据库的连接
<dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <scope>compile</scope> </dependency>
最后是源码
import com.baomidou.mybatisplus.generator.autogenerator; import com.baomidou.mybatisplus.generator.config.datasourceconfig; import com.baomidou.mybatisplus.generator.config.globalconfig; import com.baomidou.mybatisplus.generator.config.packageconfig; import com.baomidou.mybatisplus.generator.config.strategyconfig; import com.baomidou.mybatisplus.generator.config.rules.dbtype; import com.baomidou.mybatisplus.generator.config.rules.namingstrategy; import org.junit.jupiter.api.test; /** * mybatis-plus 自动生成代码 * * @author terry * @version 1.0 * @date 2018-05-16 09:35 */ public class simplemp { @test public void generatecode() { //指定包名 string packagename = "com.hciot.hhhh"; //user -> userservice, 设置成true: user -> iuserservice boolean servicenamestartwithi = false; //指定生成的表名 string[] tablenames = new string[]{"data_air_sensor_co", "order_product", "relation_device_gateway"}; generatebytables(servicenamestartwithi, packagename, tablenames); } /** * 根据表自动生成 * * @param servicenamestartwithi 默认为false * @param packagename 包名 * @param tablenames 表名 * @author terry */ private void generatebytables(boolean servicenamestartwithi, string packagename, string... tablenames) { //配置数据源 datasourceconfig datasourceconfig = getdatasourceconfig(); // 策略配置 strategyconfig strategyconfig = getstrategyconfig(tablenames); //全局变量配置 globalconfig globalconfig = getglobalconfig(servicenamestartwithi); //包名配置 packageconfig packageconfig = getpackageconfig(packagename); //自动生成 atuogenerator(datasourceconfig, strategyconfig, globalconfig, packageconfig); } /** * 集成 * * @param datasourceconfig 配置数据源 * @param strategyconfig 策略配置 * @param config 全局变量配置 * @param packageconfig 包名配置 * @author terry */ private void atuogenerator(datasourceconfig datasourceconfig, strategyconfig strategyconfig, globalconfig config, packageconfig packageconfig) { new autogenerator() .setglobalconfig(config) .setdatasource(datasourceconfig) .setstrategy(strategyconfig) .setpackageinfo(packageconfig) .execute(); } /** * 设置包名 * * @param packagename 父路径包名 * @return packageconfig 包名配置 * @author terry */ private packageconfig getpackageconfig(string packagename) { return new packageconfig() .setparent(packagename) .setxml("mapper") .setmapper("dao") .setcontroller("controller") .setentity("entity"); } /** * 全局配置 * * @param servicenamestartwithi false * @return globalconfig * @author terry */ private globalconfig getglobalconfig(boolean servicenamestartwithi) { globalconfig globalconfig = new globalconfig(); globalconfig .setbasecolumnlist(true) .setbaseresultmap(true) .setactiverecord(false) .setauthor("terry") //设置输出路径 .setoutputdir(getoutputdir("mybatis-plus")) .setfileoverride(true); if (!servicenamestartwithi) { //设置service名 globalconfig.setservicename("%sservice"); } return globalconfig; } /** * 返回项目路径 * * @param projectname 项目名 * @return 项目路径 * @author terry */ private string getoutputdir(string projectname) { string path = this.getclass().getclassloader().getresource("").getpath(); int index = path.indexof(projectname); return path.substring(1, index) + projectname + "/src/main/java/"; } /** * 策略配置 * * @param tablenames 表名 * @return strategyconfig * @author terry */ private strategyconfig getstrategyconfig(string... tablenames) { return new strategyconfig() // 全局大写命名 oracle 注意 .setcapitalmode(true) .setentitylombokmodel(false) // 表名、字段名、是否使用下划线命名(默认 false) .setdbcolumnunderline(true) //从数据库表到文件的命名策略 .setnaming(namingstrategy.underline_to_camel) //需要生成的的表名,多个表名传数组 .setinclude(tablenames); } /** * 配置数据源 * * @return 数据源配置 datasourceconfig * @author terry */ private datasourceconfig getdatasourceconfig() { string dburl = "jdbc:mysql://localhost:3306/test"; return new datasourceconfig().setdbtype(dbtype.mysql) .seturl(dburl) .setusername("root") .setpassword("root") .setdrivername("com.mysql.jdbc.driver"); } /** * 根据表自动生成 * * @param packagename 包名 * @param tablenames 表名 * @author terry */ @suppresswarnings("unused") private void generatebytables(string packagename, string... tablenames) { generatebytables(true, packagename, tablenames); } }
总结
以上所述是小编给大家介绍的基于mybatis plus 自动代码生成器的实现代码,希望对大家有所帮助