MybatisPlus--整合

官网地址:http://baomidou.oschina.io/mybatis-plus-doc/#/page-plugin
1 整合。
只需要添加Mybatis-plus相关的架包即可,会自动添加Mybatis与整合Spring相关的架包。

<!-- Mybatis插件 -->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus</artifactId>
			<version>2.1.8</version>
		</dependency>

Spring配置文件:
数据源与Mybatis-Plus中与SqlSessionFactory类似的Session工厂。

	<!-- - - - - - - - Apache 连接池 - - - - - - - -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="username" value="root" />
		<property name="password" value="123123" />
		<property name="url"
			value="jdbc:mysql://127.0.0.1:3306/mybatis-plus?characterEncoding=utf8&amp;useSSL=true" />
	</bean>

	<bean id="sqlSessionFactory"
		class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<!-- 自动扫描Mapping.xml文件 -->
		<property name="mapperLocations"
			value="classpath:com/test/mybatisplus/dao/mapper/*.xml" />
		<property name="configLocation" value="classpath:sqlMapConfig.xml" />
		<property name="typeAliasesPackage" value="com.test.mybatisplus.pojo" />
		<property name="plugins">
			<array>
				<!-- 分页插件配置 -->
				<bean id="paginationInterceptor"
					class="com.baomidou.mybatisplus.plugins.PaginationInterceptor">
					<property name="dialectType" value="mysql" />
				</bean>
				<bean id="performanceInterceptor"
					class="com.baomidou.mybatisplus.plugins.PerformanceInterceptor" >
					<!-- 超过自动停止运行,有助于发现问题。 -->
					<property name="maxTime" value="100" />
        			<!--SQL是否格式化 默认false-->
					<property name="format" value="true" />	
				</bean>
			</array>
		</property>
		<!-- 全局配置注入 -->
		<property name="globalConfig" ref="globalConfig" />
	</bean>

	<bean id="globalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
		<property name="idType" value="2" />
		<property name="dbColumnUnderline" value="true" />
	</bean>

	<!-- MyBatis 扫描*Dao.java接口 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.test.mybatisplus.dao" />
	</bean>

Mybatis相关配置:

<configuration>
    <!-- - - - - - - 懒加载和缓存 - - - - - - - - - - -->
    <settings>
        <setting name="cacheEnabled" value="true"/>
        <setting name="lazyLoadingEnabled" value="true"/>
        <setting name="aggressiveLazyLoading" value="false"/>
    </settings>
</configuration>

整合完毕。
可在官网找到根据数据库选择表后自动生成一系列的代码。如下我整理的代码。

public static void main(String[] args) {
		// TODO Auto-generated method stub
		generateCode(new String[] { "user" });
	}

	/**
	 * Dao、Mapper、Service和、Controller生成代码
	 * 
	 * @param tabelNames
	 *            表名
	 */
	public static void generateCode(String[] tabelNames) {
        AutoGenerator mpg = new AutoGenerator();
        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        gc.setOutputDir("D://");// 创建的文件输出目录
        gc.setFileOverride(true);// 覆盖已有文件
        gc.setActiveRecord(true);// 不需要ActiveRecord特性的请改为false
        gc.setEnableCache(false);// XML 二级缓存
        gc.setBaseResultMap(true);// XML ResultMap
        gc.setBaseColumnList(true);// XML columList
        gc.setAuthor("ShipTang");// 类作者
        gc.setBaseResultMap(true);
        gc.setBaseColumnList(true);
        // 文件名
        gc.setMapperName("%sMapper");
        gc.setXmlName("%sMapper");
        gc.setServiceName("%sService");
        gc.setServiceImplName("%sServiceImpl");
        gc.setControllerName("%sController");
        mpg.setGlobalConfig(gc);

        // 数据源
        DataSourceConfig dataSourceConfig = getDataSourceConfig();
        mpg.setDataSource(dataSourceConfig);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setSuperEntityClass("java.io.Serializable");
        //字段名常量开启
        strategy.setEntityColumnConstant(true);
        //开启Lombok
        strategy.setEntityLombokModel(true);
        //生成字段注解
        //strategy.setEntityTableFieldAnnotationEnable(true);
        strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
        strategy.setInclude(tabelNames); // 需要生成相关代码的表名
        strategy.setSuperMapperClass("com.baomidou.mybatisplus.mapper.BaseMapper");// 自定义 dao 父类
        strategy.setEntityBuilderModel(true);
        mpg.setStrategy(strategy);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent(null);
        pc.setEntity("com.pojo");
        pc.setMapper("com.dao");// Dao接口包名
        pc.setXml("com.dao");// XML包名
        pc.setService("com.service");
        pc.setServiceImpl("com.impl");
        pc.setController("com.controller");
        mpg.setPackageInfo(pc);

        // 执行生成
        mpg.execute();
        System.out.println("run over");
	}

	/**
	 * 数据源设置
	 * @return
	 */
	private static DataSourceConfig getDataSourceConfig() {
		DataSourceConfig dsc = new DataSourceConfig();
		dsc.setDbType(DbType.MYSQL);
		dsc.setTypeConvert(new MySqlTypeConvert() {
			// 自定义数据库表字段类型转换【可选】
			public DbColumnType processTypeConvert(String fieldType) {
				System.out.println("转换类型:" + fieldType);
				// 注意!!processTypeConvert 存在默认类型转换,如果不是你要的效果请自定义返回、非如下直接返回。
				return super.processTypeConvert(fieldType);
			}
		});
		dsc.setDriverName("com.mysql.jdbc.Driver");
		dsc.setUsername("root");
		dsc.setPassword("123123");
		dsc.setUrl("jdbc:mysql://127.0.0.1:3306/mybatis-plus?characterEncoding=utf8");
		return dsc;
	}

项目结构:
这里写图片描述
利用mybatis.generator自动生成代码

  <dependencies>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.49</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.2</version>
    </dependency>
  </dependencies>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <source>1.7</source>
            <target>1.7</target>
          </configuration>
          <version>3.3</version>
        </plugin>
        <plugin>
          <groupId>org.mybatis.generator</groupId>
          <artifactId>mybatis-generator-maven-plugin</artifactId>
          <version>1.3.2</version>
          <dependencies>
            <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
                <version>5.1.49</version>
            </dependency>
          </dependencies>
          <configuration>
            <!--配置文件的路径-->
            <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
            <overwrite>true</overwrite>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

在resources下创建generatorConfig.xml

<generatorConfiguration>
    <!-- 本地数据库驱动程序jar包的全路径  使用时改称自己的本地路径-->
    <classPathEntry location="D:\ProgramFiles\mavenRepository\mysql\mysql-connector-java\5.1.49"/>
    <context id="context" targetRuntime="MyBatis3">
        <!--定义生成的java类的编码格式-->
        <property name="javaFileEncoding" value="UTF-8"/>

        <!--suppressAllComments 设置为true 则不再生成注释-->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <!-- 数据库的相关配置 -->
        <jdbcConnection
                driverClass="com.mysql.jdbc.Driver"
                connectionURL="jdbc:mysql://127.0.0.1:3306/iqc"
                userId="root"
                password="7ujm8ik,"/>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- 实体类生成的位置 -->
        <javaModelGenerator targetPackage="com.ltq.model" targetProject="src/main/java">
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- Mapper.xml 文件的位置 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
        </sqlMapGenerator>

        <!-- Mapper 接口文件的位置 -->
        <javaClientGenerator targetPackage="com.ltq.mapper" targetProject="src/main/java" type="XMLMAPPER">
        </javaClientGenerator>

        <!-- table指定每个生成表的生成策略  表名 和 model实体类名-->
        <table tableName="t_inspect_task" domainObjectName="InspectTask" enableSelectByExample="true"
               enableDeleteByExample="true" enableCountByExample="true"
               enableUpdateByExample="true" selectByExampleQueryId="true">
            <property name="ignoreQualifiersAtRuntime" value="false"/>
            <property name="useActualColumnNames" value="false"/>
        </table>
    </context>
</generatorConfiguration>

执行maven命令即可生成代码

mybatis-generator:generate
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值