当前位置: 首页 > news >正文

高效网站建设中国十大it培训机构排名

高效网站建设,中国十大it培训机构排名,sh域名做的好的网站,ios开发者账号多少钱1. 前言对于写Crud的老司机来说时间非常宝贵#xff0c;一些样板代码写不但费时费力#xff0c;而且枯燥无味。经常有小伙伴问我#xff0c;胖哥你怎么天天那么有时间去搞新东西#xff0c;透露一下秘诀呗。好吧#xff0c;今天就把Mybatis-plus的代码生成器分享出来…1. 前言对于写Crud的老司机来说时间非常宝贵一些样板代码写不但费时费力而且枯燥无味。经常有小伙伴问我胖哥你怎么天天那么有时间去搞新东西透露一下秘诀呗。好吧今天就把Mybatis-plus的代码生成器分享出来让你也成为一个优秀的时间管理大师。2. 基本依赖以Spring Boot和MySQL为例你需要下面这些依赖    org.projectlombok    lombok    compile    com.zaxxer    HikariCP    mysql    mysql-connector-java    com.baomidou    mybatis-plus-boot-starter    com.baomidou    mybatis-plus-generator    compile    true    org.springframework.boot    spring-boot-starter-freemarker    compile    true然后配置好你的数据库确保数据库连接通讯畅通。3. 定制代码生成器这里我期望生成的目录结构是这样的于是我花了点时间定制了一些生成器的配置代码如下就是这么硬核package cn.felord.mybatis.util;​import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.core.toolkit.StringPool;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.InjectionConfig;import com.baomidou.mybatisplus.generator.config.*;import com.baomidou.mybatisplus.generator.config.po.TableInfo;import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;​import java.util.ArrayList;import java.util.List;import java.util.Optional;​​/** * 代码生成器配置 * * author felord * since 10 :39 2018/9/9 */public class CodeGenerator {    private String dbUrl;    private String userName;    private String password;    private String dir;    private String xmlDir;    private String packageName;​    private CodeGenerator() {   }​    /**     * The type Config builder.     */    public static class ConfigBuilder {​        private String dbUrl;        private String userName;        private String password;        private String dir;        private String xmlDir;        private String packageName;​​        /**         * Db url config builder.         *         * param dbUrl the db url         * return the config builder         */        public ConfigBuilder dbUrl(final String dbUrl) {            this.dbUrl dbUrl;            return this;       }​        /**         * User name config builder.         *         * param userName the user name         * return the config builder         */        public ConfigBuilder userName(final String userName) {            this.userName userName;            return this;       }​        /**         * Password config builder.         *         * param password the password         * return the config builder         */        public ConfigBuilder password(final String password) {            this.password password;            return this;       }​        /**         * Dir config builder.         *         * param dir the dir         * return the config builder         */        public ConfigBuilder dir(final String dir) {            this.dir dir;            return this;       }​        /**         * Dir config builder.         *         * param xmlDir the dir         * return the config builder         */        public ConfigBuilder xmlDir(final String xmlDir) {            this.xmlDir xmlDir;            return this;       }​        /**         * Package name config builder.         *         * param packageName the package name         * return the config builder         */        public ConfigBuilder packageName(final String packageName) {            this.packageName packageName;            return this;       }​        /**         * Build code generator.         *         * return the code generator         */        public CodeGenerator build() {            CodeGenerator generator new CodeGenerator();​            generator.dbUrl Optional.of(this.dbUrl).get();            generator.userName Optional.of(this.userName).get();            generator.password Optional.of(this.password).get();            generator.dir Optional.of(this.dir).get();            generator.xmlDir Optional.of(this.xmlDir).get();            generator.packageName Optional.of(this.packageName).get();            return generator;       }   }​​    /**     * Code.     *     * param tableNames the table names     */    public void code(String... tableNames) {        codingMysql(true, false, true, this.dbUrl, this.userName, this.password, this.dir, this.xmlDir, this.packageName, tableNames);   }​    /**     *     * 生成器核心部分     *     * param serviceNameStartWithI 是否前缀I     * param createController     是否生成controller     * param useLombok             是否使用 lombok     * param dbUrl                 数据库连接     * param username             用户名称     * param password             密码     * param outDir               输出目录     * param xmlDir               xml 文件目录     * param packageName           包路径     * param tableNames           表名称     */    private static void codingMysql(boolean serviceNameStartWithI,                                    boolean createController,                                    boolean useLombok,                                    String dbUrl,                                    String username,                                    String password,                                    String outDir,                                    String xmlDir,                                    String packageName,                                    String... tableNames) {        GlobalConfig config new GlobalConfig();        DataSourceConfig dataSourceConfig new DataSourceConfig();//       数据库类型 这里使用 mysql        dataSourceConfig.setDbType(DbType.MYSQL)               .setUrl(dbUrl)               .setUsername(username)               .setPassword(password)//               驱动名称 这里使用mysql               .setDriverName(com.mysql.jdbc.Driver);​        // 自定义xml输出路径        InjectionConfig cfg new InjectionConfig() {            Override            public void initMap() {                // to do nothing           }       };        List focList new ArrayList();//       你也可以定制 xml 的模板        focList.add(new FileOutConfig(/templates/mapper.xml.ftl) {            Override            public String outputFile(TableInfo tableInfo) {                // 自定义xml文件的路径                return xmlDir /mapper/ tableInfo.getMapperName() StringPool.DOT_XML;           }       });        cfg.setFileOutConfigList(focList);​​//       策略配置项        StrategyConfig strategyConfig new StrategyConfig();        strategyConfig               .setCapitalMode(false)//               是否使用 lombok               .setEntityLombokModel(useLombok)//               下划线转驼峰               .setNaming(NamingStrategy.underline_to_camel)                //修改替换成你需要的表名多个表名传数组               .setInclude(tableNames);//       使用 AR 模式        config.setActiveRecord(true)//               设置头注释的 author               .setAuthor(system)//               项目输出路径               .setOutputDir(outDir)//               是否覆盖已经生成的同名文件               .setFileOverride(true)//               雪花算法生成id               .setIdType(IdType.ASSIGN_ID)//               是否使用缓存               .setEnableCache(false)//               是否生成 xml 中的 基础 resultMap               .setBaseResultMap(true);        if (!serviceNameStartWithI) {//           Service 层的 通用格式后缀            config.setServiceName(%sService);       }//             实体类包名        PackageConfig packageConfig new PackageConfig().setParent(packageName).setEntity(entity);        TemplateConfig templateConfig new TemplateConfig().setXml(null);//       这里选择不生成 controller 实际上 生成的大多不符合我们需要 到服务层就行了        if (!createController) {            templateConfig.setController(null);       }//       整合起来运行        new AutoGenerator()               .setGlobalConfig(config)               .setTemplateEngine(new FreemarkerTemplateEngine())               .setDataSource(dataSourceConfig)               .setStrategy(strategyConfig)               .setPackageInfo(packageConfig)               .setCfg(cfg)               .setTemplate(templateConfig)               .execute();   }​}​如果我生成的目录结构能够满足你的需要那就巧了直接拿去用如果不满足需要你可以按照注释的说明进行微调。18年搞的用了好几年没出过什么乱子。4. 代码生成器的使用使用起来非常简单确保数据库能够使用JDBC连接成功写个main方法配置一下跑起来就是了/** * author felord.cn * since 11:34 **/public class AutoCoding {    public static void main(String[] args) {​//         maven 工程 main 包的全路径        final String mainDir C:IdeaProjectsbc-recylingsrcmain;​        CodeGenerator.ConfigBuilder builder new CodeGenerator.ConfigBuilder();​        CodeGenerator codeGenerator builder//               数据库连接               .dbUrl(jdbc:mysql://localhost:3306/test)//               账户               .userName(root)//               密码               .password(123456)                // 生成类位置               .dir(mainDir java)                // 生成xml 位置               .xmlDir(mainDir resources)                // 包引用路径               .packageName(cn.felord.mybatis)               .build();​        //根据表生成后台代码        codeGenerator.code(user_info);​​   }}然后代码就生成了是不是非常的好用恭喜你获得了 时间管理大师 荣誉称号。切记不要炫耀否则需求加倍。5. 总结虽然好用但是建议新手不要使用多手写一下代码。另外复杂的SQL还是建议自己写多锻炼写SQL的能力。如果你在使用中有什么问题可以私信我进行沟通。如果你有更加好用的可以通过留言分享给广大条友。
http://www.pierceye.com/news/543369/

相关文章:

  • 汕头网站建设哪里找网站建设找哪家好
  • 怎么做公司的宣传网站免费优化
  • 网站数据库模板下载中牟网络推广公司
  • 营销型网站有什么特点域名解析错误无法上网
  • 手机网站可以做英文版本吗惠州网络科技有限公司
  • 温州专业手机网站制作多少钱wordpress类似头条主题
  • 怎么做一个论坛网站wordpress 注册邮箱验证失败
  • 一家公司做两个网站百度四川营销中心
  • 网站群 主要功能如何自己创建网页
  • 大量增加告权重网站友链回提升网站权重吗官方网站下载地址
  • 哪家做网站的好google 网站营销
  • jsp网站 iisasp.net做的音乐网站
  • 网站特效怎么做的常州网站建设报价
  • 网站漂浮窗口代码麻涌东莞网站建设
  • icp许可证对网站的要求怎么不用wordpress
  • 四平市城市建设档案馆网站山东省建设业协会网站
  • js网站访问计数ui网上接单网站
  • 西安优秀高端网站建设服务商国外网站阻止国内访问怎么做
  • 招生型网站建设不用js做网站
  • 网站正能量视频不懂我意思吧wordpress readme
  • 石家庄网站seo优化站长工具ip地址
  • 网站运行速度慢一个网站做三页是什么意思
  • wordpress视频网站企炬网站
  • 做数据收集网站租一个服务器多少钱
  • 苏州网站制作推广网站改版 删除栏目
  • 电子商务网站开发需求文档怎样建自己的网站
  • 通过关键词优化提升企业网站个人 可以做网站备案吗
  • 山西百度公司做网站的网站监控的软件怎么做
  • 如何做一份企业网站网站调用微博
  • 电子商务网站的设计工具wordpress中文用户名