mybatisplus代码生成器

官方文档:https://mp.baomidou.com/guide/逆向工程链接:https://pan.baidu.com/s/1FloqrIhI2d1ns4XgvYPIkA目录结构:生成:xml映射文件,mapper接口,service接口与实现,controller类,实体类与AR;XML映射文件可以不与mapper放一个包,可以自己…

大家好,又见面了,我是你们的朋友全栈君。

 官方文档:简介 | MyBatis-Plus

 逆向工程链接:   mp03_免费高速下载|百度网盘-分享无限制      

目录结构:

生成 :xml映射文件, mapper接口 ,service接口与实现, controller类 ,实体类与AR;

mybatisplus代码生成器

  XML映射文件可以不与mapper放一个包,可以自己移动到resources/mapping下面              

mybatisplus代码生成器

                                                       代码生成器  

1) MP 提供了大量的自定义设置,生成的代码完全能够满足各类型的需求 2) MP 的代码生成器  和 Mybatis MBG 代码生成器: MP 的代码生成器都是基于 java 代码来生成。MBG 基于 xml 文件进行代码生成 MyBatis 的代码生成器可生成: 实体类、Mapper 接口、Mapper 映射文件 MP 的代码生成器可生成: 实体类(可以选择是否支持 AR)、Mapper 接口、Mapper 映射                        文件、 Service 层、Controller 层. 
 
3) 表及字段命名策略选择 在 MP 中,我们建议数据库表名 和 表字段名采用驼峰命名方式, 如果采用下划 线命名方式 请开启全局下划线开关,如果表名字段名命名方式不一致请注解指定,我 们建议最好保持一致。 
 
这么做的原因是为了避免在对应实体类时产生的性能损耗,这样字段不用做映射就能直 接和实体类对应。当然如果项目里不用考虑这点性能损耗,那么你采用下滑线也是没问 题的,只需要在生成代码时配置 dbColumnUnderline 属性就可以 
 
 
6.1 代码生成器依赖  
1) 模板引擎 MP 的代码生成器默认使用的是 Apache 的 Velocity 模板,当然也可以更换为别的模板 技术,例如 freemarker。此处不做过多的介绍。 需要加入 Apache Velocity 的依赖        <dependency>       <groupId>org.apache.velocity</groupId>       <artifactId>velocity-engine-core</artifactId>       <version>2.0</version>   </dependency> 2) 加入 slf4j ,查看日志输出信息         <dependency>    <groupId>org.slf4j</groupId>    <artifactId>slf4j-api</artifactId>    <version>1.7.7</version>   </dependency>   <dependency>    <groupId>org.slf4j</groupId>    <artifactId>slf4j-log4j12</artifactId>    <version>1.7.7</version>   </dependency> 
 
 
6.2 MP 代码生成器示例代码 
 @Test  public void testGenerator() {  

//全局配置

  GlobalConfig config = new GlobalConfig();

  config.setActiveRecord(true)   //是否支持AR模式      

   .setAuthor(“weiyunhui”) //作者

     .setOutputDir(“D:\\workspace_my\\mp03\\src\\main\\java”) //生成路径    

      .setFileOverride(true)//文件覆盖    

  .setServiceName(“%sService”)  //设置生成的service接口名 首字母是否为I    

  .setIdType(IdType.AUTO) //主键策略       ; 

 
  //数据源配置   DataSourceConfig dsConfig = new DataSourceConfig();  

dsConfig.setDbType(DbType.MYSQL)  

  .setUrl(“jdbc:mysql://localhost:3306/javaEE_0228”)  

 .setDriverName(“com.mysql.jdbc.Driver”)    

.setUsername(“root”)  

  .setPassword(“1234”);  

//策略配置  

StrategyConfig  stConfig = new StrategyConfig();

  stConfig.setCapitalMode(true)  // 全局大写命名  

  .setDbColumnUnderline(true)  //表名 字段名 是否使用下滑 线命名    

.setNaming(NamingStrategy.underline_to_camel) // 数据 库表映射到实体的命名策略

    .setInclude(“tbl_employee”)  //生成的表

    .setTablePrefix(“tbl_”); // 表前缀  

//包名策略  

PackageConfig pkConfig = new PackageConfig();  

pkConfig.setParent(“com.atguigu.mp”)

    .setController(“controller”)  

  .setEntity(“beans”)  

  .setService(“service”);

  AutoGenerator ag  = new AutoGenerator().setGlobalConfig(config)    

     .setDataSource(dsConfig)        

 .setStrategy(stConfig)    

     .setPackageInfo(pkConfig);  

ag.execute();  }   
6.3 ServiceImpl 说明 
EmployeeServiceImpl 继承了 ServiceImpl 类,mybatis-plus 通过这种方 式为我们注入了 EmployeeMapper,这样可以使用 service 层默认为我们提供的很 多方法,也可以调用我们自己在 dao 层编写的操作数据库的方法. 
6

==============================================================================================

配置文件:

spring/spring-mybatis.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- dataSource -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <property name="url" value="${db.master.url}" />
        <property name="username" value="${db.master.user}" />
        <property name="password" value="${db.master.password}" />
        <!-- 配置监控统计拦截的filters -->
        <property name="filters" value="mergeStat,wall,log4j2" />
        <property name="initialSize" value="5" />
        <property name="maxActive" value="100" />
        <property name="minIdle" value="10" />
        <property name="maxWait" value="60000" />
        <property name="validationQuery" value="SELECT 'x'" />
        <property name="testOnBorrow" value="true" />
        <property name="testOnReturn" value="true" />
        <property name="testWhileIdle" value="true" />
        <property name="timeBetweenEvictionRunsMillis" value="60000" />
        <property name="minEvictableIdleTimeMillis" value="300000" />
        <property name="removeAbandoned" value="true" />
        <property name="removeAbandonedTimeout" value="1800" />
        <property name="logAbandoned" value="true" />
    </bean>

    <!-- Spring整合Mybatis -->
    <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 自动扫描Mapping.xml文件 -->
        <property name="mapperLocations" value="classpath*:/sqlMapperXml/*.xml"></property>
        <property name="configLocation" value="classpath:xml/mybatis-config.xml"></property>
        <property name="typeAliasesPackage" value="com.wangzhixuan.model"/>
        <property name="globalConfig" ref="globalConfig"/>
        <property name="plugins">
            <array>
                <!-- 分页插件配置 -->
                <bean id="paginationInterceptor" class="com.baomidou.mybatisplus.plugins.PaginationInterceptor">
                    <property name="dialectType" value="mysql"/>
                    <property name="optimizeType" value="aliDruid" />
                </bean>
            </array>
        </property>
    </bean>

    <!-- MP 全局配置 -->
    <bean id="globalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
        <property name="idType" value="0"/>
        <property name="dbColumnUnderline" value="true"/>
    </bean>

    <!-- MyBatis 动态实现  -->
    <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 对Dao 接口动态实现,需要知道接口在哪  -->
        <property name="basePackage" value="com.wangzhixuan.mapper"/>
    </bean>

    <!-- 事务管理 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <!-- 事务注解 -->
    <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
    <!-- 事务管理 属性 -->
    <tx:advice id="transactionAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="select*" propagation="REQUIRED" read-only="true" />
            <tx:method name="delete*" propagation="REQUIRED" rollback-for="Exception" />
            <tx:method name="update*" propagation="REQUIRED" rollback-for="Exception" />
            <tx:method name="insert*" propagation="REQUIRED" rollback-for="Exception" />
            <tx:method name="*" propagation="REQUIRED" />
        </tx:attributes>
    </tx:advice>

    <!-- 配置切面 -->
    <aop:config expose-proxy="true" proxy-target-class="true">
        <aop:advisor advice-ref="transactionAdvice" pointcut="execution(* com.wangzhixuan.service..*.*(..))"/>
    </aop:config>
</beans>

感谢赞助与支持!

mybatisplus代码生成器

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125785.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • django filter查询_搜索全局排序方法

    django filter查询_搜索全局排序方法前言当我们需要对后台的数据进行过滤的时候,drf有两种,搜索过滤和排序过滤。搜索过滤:比如我们想返回sex=1的,那么我们就可以从所有数据中进行筛选排序过滤:比如我们想对价格进行升序排列,就可以

    2022年7月31日
    6
  • pdf加密文件怎么解密_打开天正加载自定义文件失败

    pdf加密文件怎么解密_打开天正加载自定义文件失败0.前言在学习Java的类加载器的时候,我们都会看到类加载器的体系结构上图红色框住的就是jvm提供的三个类加载器,而除了这三个外还有一个自定义类加载器。我们学习一门技术,一定要先知道为什么要学习这门技术,这门技术有什么用,比如说自定义类加载器,我们为什么要自定义类加载器。加密:加密class文件解密:用自定义的类加载器去解密并加载加密过的class文件

    2025年9月17日
    4
  • Linux防火墙管理

    Linux防火墙管理Linux防火墙管理防火墙类似于一个安全卫士管家,它能对你访问别人电脑,别人访问你的电脑,进行拦截并处理,有的阻止,有的放行,有的转发。​在默认情况下,Linux系统的防火墙状态是打开的,已经启动,CentOS7默认使用的是firewall作为防火墙。用户根据需求在/etc/sysconfig/firewalld配置文件中来配置防火墙,控制本机的“出、入”网络访问行为,其对行为的配置…

    2022年6月2日
    42
  • 结巴分词库_中文分词

    结巴分词库_中文分词※结巴分词代码如下:#-*-coding:utf-8-*-importjieba#创建停用词列表defstopwordslist():stopwords=[line.strip()forlineinopen(‘stopword.txt’,encoding=’UTF-8′).readlines()]returnstopwords#…

    2025年8月14日
    2
  • 解决windows update 8024402C错误[通俗易懂]

    解决windows update 8024402C错误[通俗易懂]安装了2003SP1更新时总是会有8024402C错误错误网上daimoon兄的解决方式他的机器在ISASERVER后而我的机器是ISASERVER2004网上daimoon兄的解决方式他的机器在ISASERVER后环境:windowsxpsp1,位于isaserver后问题:使用windowsautoupdate后出错误提示:0x8024402C…

    2022年5月30日
    170
  • phpstorm最新激活码【中文破解版】「建议收藏」

    (phpstorm最新激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月26日
    65

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号