之前开发了一个亚健康测评系统,使用的是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. java面试一日一题:如何设计一款垃圾回收器

    问题:如果让你设计一个垃圾回收器,你会考虑哪些问题 分析:该问题主要考察对java中垃圾回收器的理解,要理解怎么回收:一款好的垃圾回收器有哪些衡量指标 回答要点: 主要从以下几点去考虑, 1.垃圾回收 ...

  2. 北航OO(2020)第三单元博客作业

    一.JML理论基础及相关工具链 1.JML理论基础 该部分梳理本单元作业中涉及到的JML知识. 1.1注释结构 JML采用javadoc注释的方式来表示规格,且每行以@开头.通过使用//@annota ...

  3. If-Else 太多,如何优化!!!

    完全不必要的 Else 块 public void consumer(int product) { if (product > 1) { // do something } else { // ...

  4. prometheus管理api

    健康检查:GET /-/healthy 准备检查:GET /-/ready 停止服务:PUT|POST /-/quit 重载配置文件 PUT|POST /-/reload reference mana ...

  5. [刷题] 167 Two Sum II

    要求 升序数组 找到两个数使得它们相加之和等于目标数 函数返回两个下标值(下标从1开始) 示例 输入:numbers = [2, 7, 11, 15], target = 9 输出:[1,2] 思路 ...

  6. C++知识点案例 笔记-2

    1.友元函数 2.友元类 3.继承(公有继承) 4.公有继承的访问权限 5.私有继承的访问权限 6.保护继承的访问权限(两次继承) ==友元函数== #include <iostream> ...

  7. 设置添加SSH-(转自破男孩)

    很多朋友在用github管理项目的时候,都是直接使用https url克隆到本地,当然也有有些人使用 SSH url 克隆到本地.然而,为什么绝大多数人会使用https url克隆呢? 这是因为,使用 ...

  8. Docker五分钟搭建Wordpress

    当你看到这篇文章的时候,表明你已经有docker的基础知识了,或者可以看上一篇文章 Docker 入门教程. 传统的使用wordpress搭建网站,意味着你需要搭建以下四个环境: php: apach ...

  9. python 定时任务APScheduler 使用介绍

    python 定时任务APScheduler 使用介绍   介绍: APScheduler的全称是Advanced Python Scheduler.它是一个轻量级的 Python 定时任务调度框架. ...

  10. GO学习-(14) Go语言基础之接口

    Go语言基础之接口 接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节. 接口 接口类型 在Go语言中接口(interface)是一种类型,一种抽象的类 ...