之前开发了一个亚健康测评系统,使用的是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. Codeforces Round #712 (Div. 2)

    A. Déjà Vu 题意:就是问能否加上字母a,使得字符串不中心对称 思路:只有一种情况不能加入,就是全部是a,剩下的都可以满足,找a的位置就找哪个字母不是a,然后让它的对称位置是新加的这个a 代码 ...

  2. (转)解决c#自带的HttpClient(Http.GetFromJsonAsync Http.GetStringAsync等)返回中文乱码问题

    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); var aa = await Http.GetByteArrayAsync ...

  3. (转)elasticsearch连接不到head插件解决方案

    (1)elasticsearch-5x下的 config/elasticsearch.yml   http.cors.enabled: true   http.cors.allow-origin: & ...

  4. 在微信框架模块中,基于Vue&Element前端的后台管理功能介绍

    微信开发包括公众号.企业微信.微信小程序等方面的开发内容,需要对腾信的微信API接口进行封装:包括事件.菜单.订阅用户.多媒体文件.图文消息.消息群发.微信支付和企业红包.摇一摇设备.语义理解.微信小 ...

  5. shell脚本常用语法详解

    逻辑控制 if 语法:注意空格 a=1b=2if [ $a == $b ]then    echo "a==b"elif [ $a -gt $b ]then    echo &qu ...

  6. ES6学习-5 解构赋值(2)对象的解构赋值

    啥也不说,先举个栗子: 1 let { myname, myage } = { myage: 18, myname: "郭郭" }; 2 console.log(myname) / ...

  7. 在?开源社区版的 AirTag 请收下——GitHub 热点速览 v.21.21

    作者:HelloGitHub-小鱼干 在比特币跌到怀疑人生的时候,看着"出血不止"的荷包,是时候来"薅"一波羊毛了.openhaystack 能让你免去购买 A ...

  8. CentOS 7配置静态IP地址的两种方法 来自:互联网

    CentOS 7配置静态IP地址的两种方法 来自:互联网 时间:2021-01-12 阅读:4 如果你想要为CentOS 7中的某个网络接口设置静态IP地址,有几种不同的方法,这取决于你是否想要使用网 ...

  9. LTP--linux稳定性测试 linux性能测试 ltp压力测试 内核更新 稳定性测试

    LTP--linux稳定性测试 linux性能测试 ltp压力测试 zhangzj1030关注14人评论33721人阅读2011-12-09 12:07:45   说明:在写这篇文章之前,本人也不曾了 ...

  10. 76-Java安装Eclipse并创建第一个HelloWorld.md

    76-Java安装Eclipse并创建第一个HelloWorld.md 首先确定已经安装Java系统环境,若未安装,请参考博客Java环境windows搭建 访问Eclipse官网 下载完成直接发送快 ...