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>
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的使用心得的更多相关文章
- mybatis Generator生成代码及使用方式
本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5889312.html 为什么要有mybatis mybatis 是一个 Java 的 ORM 框架,OR ...
- 使用MyBatis Generator自动创建代码(dao,mapping,poji)
连接的数据库为SQL server2008,所以需要的文件为sqljdbc4.jar 使用的lib库有: 在lib库目录下新建一个src文件夹用来存放生成的文件,然后新建generatorConfig ...
- mybatis generator 自动生成dao层映射代码
资源: doc url :http://www.mybatis.org/generator/ download:https://github.com/mybatis/generator/release ...
- mybatis generator maven插件自动生成代码
如果你正为无聊Dao代码的编写感到苦恼,如果你正为怕一个单词拼错导致Dao操作失败而感到苦恼,那么就可以考虑一些Mybatis generator这个差价,它会帮我们自动生成代码,类似于Hiberna ...
- mybatis generator.xml 配置 自动生成model,dao,mapping
generator.xml文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE gener ...
- Mybatis generator的使用
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...
- MyBatis Generator作为maven插件自动生成增删改查代码及配置文件例子
什么是MyBatis Generator MyBatis Generator (MBG) 是一个Mybatis的代码生成器,可以自动生成一些简单的CRUD(插入,查询,更新,删除)操作代码,model ...
- 记一次 IDEA mybatis.generator 自定义扩展插件
在使用 idea mybatis.generator 生成的代码,遇到 生成的代码很多重复的地方, 虽然代码是生成的,我们也不应该允许重复的代码出现,因为这些代码后期都要来手动维护. 对于生成时间戳注 ...
- Mybatis Generator生成工具配置文件详解
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...
- MyBatis Generator 详解
MyBatis Generator中文文档 MyBatis Generator中文文档地址:http://mbg.cndocs.tk/ 该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中 ...
随机推荐
- 【Azure 环境】基于Azure搭建企业级内部站点, 配置私有域名访问的详细教程 (含演示动画)
前言 在Azure中,可以通过App Service快速部署,构建自定义站点(PaaS服务).默认情况下,这些站点被访问URL都是面向公网,通过公网进行解析.为了最好的安全保障,是否可以有一种功能实现 ...
- unbuntu下清理磁盘空间
把很多大文件删除,并清空回收站后,发现可用存储空间并没增大,如图: 用find /home -size +500k 过滤出大于500k bytes的文件,发现原来删除的yuv文件都被置于.cache目 ...
- 【近取 Key】Alpha - 项目展示
项目与团队亮点 一.团队成员与分工简介 成员组成与分工 本团队由 6 名成员组成,其中有 3 名 PM,2 名后端开发人员与 4 名前端开发人员,由于组内成员数量有限,因此所有 PM 均需同时兼领开发 ...
- ZOHO荣登“2020中国ToB行业年度企业影响力”榜单
近日,3WToB行业头条正式揭晓<2020中国ToB行业年度榜单 · 企业影响力榜>. 此次评选,ToB行业头条联合3W集团.50+知名投资机构.60+权威媒体及资深行业人士,进行深度调研 ...
- 5Spring动态代理开发小结
5Spring动态代理开发小结 1.为什么要有动态代理? 好处 1.利于程序维护 2.利于原始类功能的增强 3.得益于JDK或者CGlib等动态代理技术使得程序扩展性很强 为什么说使得程序扩展性很强? ...
- [c++] 常犯错误
更改变量值时想清楚对后面程序的影响 scnaf & == 数组下标从0开始 不赋初值导致的垃圾数据 全局flag和局部flag
- gparted 当分区空间大于1T 用gparted分区
lsblkfdisk -lparted -s /dev/sdb mklabel msdos parted -s /dev/sdb mkpart primary 0 100%lsblk dfparted ...
- Spec2006使用说明
Spec2006使用说明 五 10 十月 2014 By penglee 工具介绍 SPEC CPU 2006 benchmark是SPEC新一代的行业标准化的CPU测试基准套件.重点测试系统的处理器 ...
- libvirtd 启动成功,但却没有监听
现象: 执行 systemctl start libvirtd在其它机器上进行测试是否监听:virsh -c qemu+tcp://host/system libvirtd启动成功,没有报错,但却没有 ...
- Rust trait
Rust trait Rust中的trait类似于Java中的接口,定义了一组可以被类型选择实现的"契约"或共享行为,. 特征定义: trait Playable{ fn play ...