使用mybatis-generator生成自动生成mapper.java和mapper.xml等文件

qizi746 2018-02-07 04:51:22
首先,新建一个maven项目



groupid和artifactId被统称为“坐标”,可以保证项目的唯一性,可以根据这两个id去maven本地仓库中查找到任意项目.
groupId对应JAVA的包的结构,是main目录里java的目录结构。 一般分为多个段,这里说明前两段:第一段是域,第二段是公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。
artifactId是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
就如我所在的公司京颐集团,缩写为kyee,公司的产品groupId就是com.kyee,因为公司产品是盈利性质的;再如apache公司的tomcat项目:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。
按照这个规则,我所创建的项目,groupId为cn.qizi,cn表示域为中国,qizi是我的网络常用名。artifactId设置为testMybatisGenerator,是此项目的名称。依照这个设置,我的包结构最好是cn.qizi.testMybatisGenerator打头的,如果有个StudentDao,它的全路径就是cn.qizi.testMybatisGenerator.dao.StudentDao。


项目生成,接下来就是增加下面图中结构,用以存放各层文件

到这里,项目的架子就已经搭起来了,我们也该进入正题,讲解如何使用mybatis-generator生成自动生成mapper.java和mapper.xml等文件
首先要配置pom.xml,加载mybatis-generator插件和依赖。在pom.xml文件中增加:

<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
按照路径src/main/resources/generatorConfig.xml创建配置文件,配置文件中引入了db.properties.

generatorConfig.xml配置文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>

<!--导入属性配置,也可不引入,则下面数据库连接的信息要直接写出 -->
<properties resource="db.properties"></properties>

<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是; false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="${jdbc.driver}"
connectionURL="${jdbc.url}"
userId="${jdbc.username}"
password="${jdbc.password}">
</jdbcConnection>

<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>

<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="cn.qizi.testMybatisGenerator.pojo"
targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="cn.qizi.testMybatisGenerator.mapper"
targetProject="src/main/resources">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="cn.qizi.testMybatisGenerator.dao"
targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->

<table schema="" tableName="PAY_TRANSACTION_DETAIL"/>

<!-- 有些表的字段需要指定java类型
<table schema="" tableName="">
<columnOverride column="" javaType="" />
</table> -->
</context>
</generatorConfiguration>

db.properties文件内容:
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.20.250:1521:orcl
jdbc.username=xxxxxx
jdbc.password=xxxxxx

到此,便配置完成,可以生成相关文件了:

然后你会发现,你想要的文件已经出现:

希望本文能帮到像我一样的菜鸟,同样希望大神看到,见笑之余,能不吝赐教,解答下一直困扰我的问题:
1.就是按照此流程生成的.xml文件,内容重复了三遍,每次都要我手动删除;
2.使用这些自动生成的文件进行单表查询还算方便,但对于多表关联查询就很麻烦了,有什么好的解决办法么?


...全文
2691 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
appleyk 2018-02-08
  • 打赏
  • 举报
回复
http://blog.csdn.net/appleyk/article/details/78772344
appleyk 2018-02-08
  • 打赏
  • 举报
回复
使用mybatis的通用mapper,只需继承Mapper接口,增删改查一步到位,一句代码不用写,需要做的就是创建数据表在Java中对应的实体类,可以参考我的博文:Java web--使用MyBatis的通用Mapper对复杂繁琐的数据业务层进行抽离【亲测很暴力】 再说一下mybatis逆向工程自动生成数据映射的这种方式,适合对性能要求不是很高的web项目,而且这种方式太过简单,简单得无法满足我们实际开发中的需要,对于数据关系比较复杂的项目,这种方式就显得捉襟见肘,比如,插入1万条数据的时候,你用逆向工程里面的insert,你是不是要建立1万个数据库session,性能大大折扣,相反,我们可以利用逆向工程的思想,手动的去定制我们的自己的mapper,mybatis支持批量查询、修改以及插入,比如一万条数据,可以分10次,每次1000条数据进行批量插入,性能会有质的提升,更多mybatis的配置,可以参考地址:http://www.mybatis.org/mybatis-3/zh/configuration.html
内容概要:本文围绕“【EI复现】考虑灵活性的数据中心微网两阶段鲁棒规划方法(Matlab代码实现)”展开,提出了一种针对数据中心微电网的两阶段鲁棒优化规划模型,重点考虑系统在运行过程中面临的灵活性需求与不确定性因素。该方法通过构建第一阶段的投资决策与第二阶段的运行调整机制,有效应对源荷双重不确定性,提升微网系统的可靠性与经济性。文中采用鲁棒优化理论处理不确定性,并结合Matlab编程实现完整的模型求解流程,提供了可复现的算法代码,便于科研人员验证与拓展。该研究对于高比例可再生能源接入背景下的数据中心能源系统规划具有重要参考价值。; 适合人群:具备一定电力系统、优化理论及Matlab编程基础,从事微电网、综合能源系统、鲁棒优化等相关领域研究的研究生、科研人员及工程技术人员(尤其适合有1-3年科研经验者);; 使用场景及目标:① 掌握两阶段鲁棒优化在微网规划中的建模思路与数学表达;② 学习如何将灵活性指标融入能源系统规划模型;③ 复现EI级别高水平论文的核心算法,提升科研能力与论文写作水平;④ 为后续开展数据中心、智能微网、不确定性优化等方向的研究提供技术积累与代码基础; 阅读建议:建议读者结合文中提供的Matlab代码逐行分析,理解两阶段鲁棒优化的建模技巧与求解流程,重点关注不确定性集的构建、列与约束生成(C&CG)算法的实现逻辑,并尝试对模型参数或结构进行修改以观察结果变化,从而深化对鲁棒优化机制的理解。
内容概要:本文围绕具有源荷不平衡特性的配电网,研究智能软开关(Soft Open Point, SOP)与储能系统(Energy Storage System, ESS)的联合规划方法。通过构建优化模型,综合考虑配电网中分布式电源出力与负荷需求之间的时空不匹配问题,利用智能软开关灵活调节功率流动的能力以及储能系统的能量时移特性,实现对配电网潮流的有效调控,提升系统运行的经济性与可靠性。文中采用Matlab进行仿真编程,验证所提联合规划方案在降低网络损耗、改善电压质量、提高可再生能源消纳能力等方面的优越性能。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力的高校研究生、科研人员以及从事智能配电网规划与运行工作的工程技术人员。; 使用场景及目标:①解决高比例分布式可再生能源接入背景下配电网源荷不平衡导致的电压越限与潮流倒送问题;②优化配置智能软开关与储能的位置和容量,以实现系统综合成本最小化与运行性能最优化;③为新型配电系统中柔性元件的协同规划提供技术参考与仿真工具支持。; 阅读建议:此资源以Matlab代码实现为核心载体,建议读者在理解数学模型与物理机理的基础上,结合实际算例(如IEEE 33节点系统)进行代码调试与结果分析,进一步掌握SOP与储能协同作用的内在机制,并可在此基础上拓展多目标优化、不确定性建模等高级功能。

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧