之前开发了一个亚健康测评系统,使用的是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>

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>

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>

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

mybatis-generator的使用心得的更多相关文章

  1. mybatis Generator生成代码及使用方式

    本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5889312.html 为什么要有mybatis mybatis 是一个 Java 的 ORM 框架,OR ...

  2. 使用MyBatis Generator自动创建代码(dao,mapping,poji)

    连接的数据库为SQL server2008,所以需要的文件为sqljdbc4.jar 使用的lib库有: 在lib库目录下新建一个src文件夹用来存放生成的文件,然后新建generatorConfig ...

  3. mybatis generator 自动生成dao层映射代码

    资源: doc url :http://www.mybatis.org/generator/ download:https://github.com/mybatis/generator/release ...

  4. mybatis generator maven插件自动生成代码

    如果你正为无聊Dao代码的编写感到苦恼,如果你正为怕一个单词拼错导致Dao操作失败而感到苦恼,那么就可以考虑一些Mybatis generator这个差价,它会帮我们自动生成代码,类似于Hiberna ...

  5. mybatis generator.xml 配置 自动生成model,dao,mapping

    generator.xml文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE gener ...

  6. Mybatis generator的使用

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  7. MyBatis Generator作为maven插件自动生成增删改查代码及配置文件例子

    什么是MyBatis Generator MyBatis Generator (MBG) 是一个Mybatis的代码生成器,可以自动生成一些简单的CRUD(插入,查询,更新,删除)操作代码,model ...

  8. 记一次 IDEA mybatis.generator 自定义扩展插件

    在使用 idea mybatis.generator 生成的代码,遇到 生成的代码很多重复的地方, 虽然代码是生成的,我们也不应该允许重复的代码出现,因为这些代码后期都要来手动维护. 对于生成时间戳注 ...

  9. Mybatis Generator生成工具配置文件详解

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  10. MyBatis Generator 详解

    MyBatis Generator中文文档 MyBatis Generator中文文档地址:http://mbg.cndocs.tk/ 该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中 ...

随机推荐

  1. 【Matlab】BASK的调试与解调仿真

    索引 一.BASK的调制 1.1 曼彻斯特码 1.2 增益控制 1.3 常量求和 1.4 与载波相乘 1.5 波形预览 1.6 参数设置(参考) 二.BASK的解调 2.1 滤波 2.2 信号比较 2 ...

  2. python工业互联网应用实战15-前后端分离模式1

    我们在13章节里通过监控界面讲了如何使用jquery的动态加载数据写法,通过简单案例来说明了如何实现动态的刷新监控界面的数据,本章我们将演示如何从Django模板加载数据逐步演化到前后端分离的异步数据 ...

  3. buaaoo_fourth_assignment

    你轻轻地走了 一.架构设计 (1)第一次作业 类图 复杂度分析 如上图是本单元第一次作业的架构设计,由于本人最开始未发现可以直接继承官方的类,所以自己将所用到的各种type都重新建了类,于是这就导致了 ...

  4. [前端、HTTP协议、HTML标签]

    [前端.HTTP协议.HTML标签] 什么是前端 """ 任何与用户直接打交道的操作界面都可以称之为前端 比如:电脑界面 手机界面 平板界面 什么是后端 后端类似于幕后操 ...

  5. JAVA并发(2)-ReentrantLock的见解

    上节,我们讲了AQS的阻塞与释放实现原理,线程间通信(Condition)的原理.这次,我们就讲讲基于AQS实现的ReentrantLock(重入锁). 1. 介绍 结合上面的ReentrantLoc ...

  6. Sentinel导航

    简介 最近都在弄微服务的东西,现在来记录下收获.我从一知半解到现在能从0搭建使用最大的感触有两点 1.微服务各大组件的版本很多,网上很多博客内容不一定适合你的版本,很多时候苦苦琢磨都是无用功 2.网上 ...

  7. [bug] HMaster启动后几秒消失

    参考 https://blog.csdn.net/weixin_44896798/article/details/97800045 https://blog.csdn.net/liudi1993/ar ...

  8. linux操作系统优化系列-RAID不同阵列模式的选择

    背景 笔者所在的某通信运营商某大数据项目由于应用面临瓶颈需要扩充服务器设备,当初上这个项目的时候,服务器上线前的工作(配置raid,安装操作系统,Infiniband网络调试,系统漏洞安全加固)都是我 ...

  9. 030. Python装饰器

    一  装饰器 1.1 装饰器介绍 扩展函数新功能的@定义:替换旧函数,返回新函数,在不改变原有代码的前提下,为该函数扩展新功能;语法:@ (语法糖) 1.2 装饰器的原型 def show(func) ...

  10. mysql的示例及练习

    示例及练习1-MOSHOU.hero.txtcreate database MOSHOU;use MOSHOU;create table hero(id int,name char(15),sex e ...