myBatisPlus+springMVC基础配置

1.spring-myBatisPlus.xml配置

<!--引入属性配置文件-->
    <context:property-placeholder location="classpath:c3p0.properties" />

    <!--数据源-->
    <bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="dataSource">
        <property name="driverClass" value="${mysql.driver}" />
        <property name="jdbcUrl" value="${mysql.url}" />
        <property name="user" value="${mysql.user}" />
        <property name="password" value="${mysql.pwd}" />

        <property name="maxPoolSize" value="${c3p0.maxPoolSize}" />
        <property name="initialPoolSize" value="${c3p0.initPoolSize}" />
        <property name="minPoolSize" value="${c3p0.minPoolSize}" />
        <property name="acquireIncrement" value="${c3p0.increment}" />
        <property name="maxIdleTime" value="${c3p0.maxIdleTime}" />
    </bean>

    <!--sqlSession-->
    <bean class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!--sql映射文件-->
        <property name="mapperLocations" value="classpath:mappers/*Mapper.xml" />
        <!--别名设置-->
        <property name="typeAliasesPackage" value="com.neusoft.entity" />
        <!--setting配置-->
        <property name="configuration">
            <bean class="com.baomidou.mybatisplus.core.MybatisConfiguration">
                <!--自动映射-->
                <property name="autoMappingBehavior" value="FULL" />
                <!--驼峰命名-->
                <property name="mapUnderscoreToCamelCase" value="true" />
                <!--日志打印-->
                <property name="logImpl" value="org.apache.ibatis.logging.log4j.Log4jImpl" />
            </bean>
        </property>

        <!--分页插件-->
        <property name="plugins">
            <array>
                <bean class="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor" />
            </array>
        </property>

    </bean>

    <!--mapper扫描-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.xinye.mapper" />
    </bean>

    <!--事务-->
    <bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager" />

    <!--service扫描-->
    <context:component-scan base-package="com.xinye.service.impl" />

2.spring-MVC.xml配置

    <!--Controller注解扫描-->
    <context:component-scan base-package="com.xinye.controller" />

    <!--视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/views/" />
        <property name="suffix" value=".jsp" />
    </bean>

    <!--静态资源处理-->
    <mvc:resources mapping="/static/**" location="/static/" />
    <mvc:annotation-driven />

3.web.xml配置

 <!--IOC监听器-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/spring-mybatisplus.xml</param-value>
    </context-param>
    
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    <!--MVC中央处理器-->
    <servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/spring-mvc.xml</param-value>
        </init-param>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
    <!--字符编码过滤器-->
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

4.test-->java-->gennerator-->MybatisPlusAutoGenerator.java

public class MybatisPlusAutoGenerator {
    public static void main(String[] args) {
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");  //项目存放的位置
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("xinye");
        gc.setOpen(false);
        mpg.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/mptest?serverTimezone=UTC&characterEncoding=utf8");
        // dsc.setSchemaName("public");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");
        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        //pc.setModuleName(scanner("模块名"));
        pc.setParent("com.neusoft"); //设置父包
        mpg.setPackageInfo(pc);

        // 自定义配置
        InjectionConfig cfg = new InjectionConfig() {
            @Override
            public void initMap() {
                // to do nothing
            }
        };
        List<FileOutConfig> focList = new ArrayList<>();
        focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
            @Override
            public String outputFile(TableInfo tableInfo) {
                // 自定义输入文件名称
                return projectPath + "/src/main/resources/mappers/"
                        + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
            }
        });
        cfg.setFileOutConfigList(focList);
        mpg.setCfg(cfg);
        mpg.setTemplate(new TemplateConfig().setXml(null));

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        //实体名称的生成策略  :驼峰命名 与 不更改
        strategy.setNaming(NamingStrategy.underline_to_camel);
        //实体字段名称的生成策略
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        //开启lombok 注解完成实体的封装
        strategy.setEntityLombokModel(true);
        //在使用Controller @Controller  @RestController --->  @Controller + @ResponseBody
        strategy.setRestControllerStyle(true);
        //要生成的表的名字--->
        //strategy.setInclude("sys_");
        //不生成对应代码的表
        strategy.setExclude("sys_role_menu_btn");
        //Controller 命名空间
        strategy.setControllerMappingHyphenStyle(true);
        mpg.setStrategy(strategy);
        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
        mpg.execute();

    }
}

5.idea中需要的依赖

<dependencies>
    <!--mybatis-plus  mybatis    mybatis-spring -->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus</artifactId>
      <version>3.0.6</version>
    </dependency>

    <!-- freemarker 模板引擎 -->
    <dependency>
      <groupId>org.freemarker</groupId>
      <artifactId>freemarker</artifactId>
      <version>2.3.28</version>
    </dependency>

    <!--log4j slf4j-->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.25</version>
    </dependency>


    <!--mysql-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>6.0.6</version>
    </dependency>

    <!--c3p0-->
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.2</version>
    </dependency>

    <!--lombok-->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.4</version>
    </dependency>

    <!--spring-webmvc-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.1.2.RELEASE</version>
    </dependency>

    <!--spring-jdbc -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.1.2.RELEASE</version>
    </dependency>

    <!--spring-test-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.1.2.RELEASE</version>
    </dependency>

    <!--servlet-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
    </dependency>

    <!--jackson -->
    <dependency>
      <groupId>com.fasterxml.jackson.datatype</groupId>
      <artifactId>jackson-datatype-jsr310</artifactId>
      <version>2.9.7</version>
    </dependency>


    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

  </dependencies>

猜你喜欢

转载自blog.csdn.net/qq_40151344/article/details/84310257
今日推荐