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代码生成器

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Linux学习——shell编程之正则表达式和字符处理命令

    shell编程之正则表达式一 正则表达式 1 什么是正则表达式 正则表达式用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分隔、匹配、查找及替换操作。2 shell编程之正则表达式与通配符 正则表达式:用于在文件中匹配符合条件的字符串。正则是包含匹配。grep 、awk 、sed等命令支持正则表达式。 通配符:用于匹配符合条件的文件名,通配符是完全匹配。ls、f

  • Win7如何显示文件后缀

    Win7如何显示文件后缀

    2021年10月15日
  • Oracle listagg去重distinct三种方法总结

    Oracle listagg去重distinct三种方法总结一、简介最近在工作中,在写oracle统计查询的时候,遇到listagg聚合函数分组聚合之后出现很多重复数据的问题,于是研究了一下listagg去重的几种方法,以下通过实例讲解三种实现listagg去重的方法。二、方法首先还原listagg聚合之后出现重复数据的现象,打开plsql,执行如下sql:selectt.department_namedepname,…

  • OpenCv函数学习(一)[建议收藏]

    IntelImageProcessingLibrary(IPL)位深度在记录数字图像的颜色时,计算机实际上是用每个像素需要的位深度来表示的。黑白二色的图像是数字图像中最简单的一种,它只有黑

    2021年12月18日
  • 经典排序算法 – 基数排序Radix sort

    经典排序算法 – 基数排序Radix sort

  • css3选择器总结[通俗易懂]

    css3选择器总结[通俗易懂]三大特性继承性:子标签继承父标签样式,默认优先级最低。有继承性:文本相关字体样式、粗细、大小、颜色、类型等无继承性:盒子模型相关边框、背景等层叠性:相同标签继承和定义的样式累加到一起互不冲突。优先级:离标签越近的选择器优先级越高,所以相同权重的样式后者才生效;内联样式表>头部样式表>导入样式表。权重权重为0000:通用选择器*{}组选择器h1,h2,

发表回复

您的电子邮箱地址不会被公开。

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