zoukankan      html  css  js  c++  java
  • mybatis-generator的使用心得

    之前开发了一个亚健康测评系统,使用的是SSM框架,里面第一次使用到了mybatis-generator逆向代码生成工具,很方便,省去了基本的增删改查的mapper文件及sql的编写,还能避免错误,这里推荐一下!

    当然,使用该工具的前提是你得有这个工具。他的下载地址为:https://github.com/mybatis/generator/releases

    如果使用Maven就不需要下载了,见pom.xml文件配置即可

    在你建好数据库的前提下,该工具才能发挥作用,而且数据表必须包含主键,生成的select方法都是根据主键查找的。

    以下是配置文件

    pom.xml中加入插件

     1 <plugin>
     2     <groupId>org.mybatis.generator</groupId>
     3     <artifactId>mybatis-generator-maven-plugin</artifactId>
     4     <version>1.3.2</version>
     5     <configuration>
     6         <configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>
     7         <verbose>true</verbose>
     8         <overwrite>true</overwrite>
     9     </configuration>
    10     <executions>
    11         <execution>
    12             <id>Generate MyBatis Artifacts</id>
    13             <goals>
    14                 <goal>generate</goal>
    15             </goals>
    16         </execution>
    17     </executions>
    18     <dependencies>
    19         <dependency>
    20             <groupId>org.mybatis.generator</groupId>
    21             <artifactId>mybatis-generator-core</artifactId>
    22             <version>1.3.2</version>
    23         </dependency>
    24     </dependencies>
    25 </plugin>
    View Code

    generatorConfig.xml的具体配置

     1 <?xml version="1.0" encoding="UTF-8" ?>  
     2 <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
     3 <generatorConfiguration>
     4     <!-- 数据库配置文件 -->
     5     <properties resource="db.properties" />
     6     
     7     <context id="context1">
     8         <property name="javaFileEncoding" value="UTF-8" />
     9         <property name="autoDelimitKeywords" value="true" />
    10         <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter" />
    11         <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter" />
    12         
    13         <!-- 注释生成规则 -->
    14         <commentGenerator type="org.mybatis.generator.internal.HairyCommentGenerator">
    15             <property name="suppressAllComments" value="false" />
    16             <property name="suppressDate" value="true" />
    17         </commentGenerator>
    18         
    19         <!-- 数据库连接 -->
    20         <jdbcConnection driverClass="${driver}" connectionURL="${url}" userId="${user}" password="${password}" />
    21 
    22         <!-- 数据库的生成配置 -->
    23         <javaModelGenerator targetPackage="com.lsd.bean" targetProject="${project.dir}/src/main/java" />
    24         <sqlMapGenerator targetPackage="com.lsd.dao" targetProject="${project.dir}/src/main/resources" />
    25         <javaClientGenerator targetPackage="com.lsd.dao" targetProject="${project.dir}/src/main/java" type="XMLMAPPER" />
    26         
    27         <!-- 以上部分配置固定,无需改动,此处往下开始项目设置 -->
    28         
    29         <!-- user表 -->
    30         <table tableName="user" domainObjectName="User">
    31             <property name="useActualColumnNames" value="true" />
    32             <generatedKey column="id" sqlStatement="SELECT LAST_INSERT_ID()" identity="true" />
    33         </table>
    34         <!-- Account表 -->
    35         <table tableName="Account" domainObjectName="Account">
    36             <property name="useActualColumnNames" value="true" />
    37             <generatedKey column="id" sqlStatement="SELECT LAST_INSERT_ID()" identity="true" />
    38         </table>
    39         <!-- qbank表 -->
    40         <table tableName="Qbank" domainObjectName="Qbank">
    41             <property name="useActualColumnNames" value="true" />
    42             <generatedKey column="id" sqlStatement="SELECT LAST_INSERT_ID()" identity="true" />
    43         </table>
    44         <!-- Questionfiles表 -->
    45         <table tableName="Questionfiles" domainObjectName="Questionfiles">
    46             <property name="useActualColumnNames" value="true" />
    47             <generatedKey column="id" sqlStatement="SELECT LAST_INSERT_ID()" identity="true" />
    48         </table>
    49         <!-- TestRecord表 -->
    50         <table tableName="TestRecord" domainObjectName="TestRecord">
    51             <property name="useActualColumnNames" value="true" />
    52             <generatedKey column="id" sqlStatement="SELECT LAST_INSERT_ID()" identity="true" />
    53         </table>
    54         <!-- EvaludateScore表 -->
    55         <table tableName="EvaludateScore" domainObjectName="EvaludateScore">
    56             <property name="useActualColumnNames" value="true" />
    57             <generatedKey column="id" sqlStatement="SELECT LAST_INSERT_ID()" identity="true" />
    58         </table>
    59         <!-- TestAdvice表 -->
    60         <table tableName="TestAdvice" domainObjectName="TestAdvice">
    61             <property name="useActualColumnNames" value="true" />
    62             <generatedKey column="id" sqlStatement="SELECT LAST_INSERT_ID()" identity="true" />
    63         </table>
    64     </context>
    65 </generatorConfiguration>
    View Code

    spring-mybatis.xml的具体配置

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4        xmlns:context="http://www.springframework.org/schema/context"
     5        xsi:schemaLocation="http://www.springframework.org/schema/beans
     6                         http://www.springframework.org/schema/beans/spring-beans.xsd
     7                         http://www.springframework.org/schema/context 
     8                         http://www.springframework.org/schema/context/spring-context-3.2.xsd">
     9     <!-- 自动扫描 -->
    10     <context:component-scan base-package="com.lsd.controller,com.lsd.filter" />
    11 
    12     <!-- 引入配置文件 -->
    13     <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
    14         <property name="locations" value="classpath:db.properties"/>  
    15     </bean>  
    16 
    17     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    18         <property name="driverClass" value="${driver}" />
    19         <property name="jdbcUrl" value="${url}" />
    20         <property name="user" value="${user}" />
    21         <property name="password" value="${password}" />
    22     </bean>
    23 
    24     <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
    25     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    26         <!-- 注入数据源 -->
    27         <property name="dataSource" ref="dataSource" />
    28         <!-- 自动扫描mapper.xml文件 -->
    29         <property name="mapperLocations">
    30             <array>
    31                 <value>classpath:com/lsd/dao/custom/*.xml</value>
    32                 <value>classpath:com/lsd/dao/*.xml</value>
    33             </array>
    34         </property>
    35     </bean>
    36 
    37     <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
    38     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    39         <property name="basePackage" value="com.lsd.dao" />
    40         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    41     </bean>
    42 
    43     <!-- 事务管理 -->
    44     <bean id="transactionManager"
    45         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    46         <property name="dataSource" ref="dataSource" />
    47     </bean>
    48 
    49 </beans>
    View Code

    这个系统的编写我用的是Intellij IDEA,用了Maven,所以使用生成工具可以直接使用maven的命令提示符,具体的生成语句是mvn mybatis-generator:generate ,一旦数据库进行了更改,都需使用这句代码重新生成bean、dao、mapper文件

  • 相关阅读:
    递归二分法和另类二分法(不推荐,因为占用资源)
    内置函数汇总
    非递归二分法
    2018.10.23习题随笔
    java中的类修饰符、成员变量修饰符、方法修饰符。
    js函数中的this关键字
    HTML5 <script>元素async,defer异步加载
    那些迷糊人的回调
    js函数prototype属性学习(二)
    js函数prototype属性学习(一)
  • 原文地址:https://www.cnblogs.com/timePasser-leoli/p/7339807.html
Copyright © 2011-2022 走看看