0

0

Spring+SpringMVC+MyBatis深入学习及搭建——MyBatis逆向工程

巴扎黑

巴扎黑

发布时间:2017-06-26 09:34:55

|

2266人浏览过

|

来源于php中文网

原创

转载请注明出处: 

前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(九)——MyBatis和Spring整合

使用官方网站的mapper自动生成工具mybatis-generator-core-1.3.2来生成po类和mapper映射文件。

1.什么是逆向工程

mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程可以针对单表自动生成mybatis执行所需要的代码(mapper.java、mapper.xml、po...)

企业实际开发中,常用的逆向工程方式:

由数据库的表生成java代码。

2.下载逆向工程

3.使用方法(要求会用)

为了防止后期数据库表修改、扩展,需求修改等原因,更新自动生成的po,mapper覆盖有误。我们新建专门逆向生成的项目generatorSqlmapCustom,再按需求将自动生成的po,mapper等拷贝到项目中去。

3.1运行逆向工程

建议使用java程序方式,不依赖开发工具。

3.2mapper生成配置文件

在gengeratorConfig.xml中配置mapper生成的详细信息,注意改下几点:

(1)添加要生成的数据库表;

(2)po文件所在包路径;

(3)mapper文件所在包路径。

配置文件如下:

3.3使用Java类生成mapper文件

public class GeneratorSqlmap {public void generator() throws Exception{
        List warnings = new ArrayList();boolean overwrite = true;//指定 逆向工程配置文件File configFile = new File("generatorConfig.xml"); 
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
                callback, warnings);
        myBatisGenerator.generate(null);

    } public static void main(String[] args) throws Exception {try {
            GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

 生成后的代码:

无阶未来模型擂台/AI 应用平台
无阶未来模型擂台/AI 应用平台

无阶未来模型擂台/AI 应用平台,一站式模型+应用平台

下载

3.4拷贝生成的mapper文件到工程中指定的目录中

3.4.1mapper.xml

Mapper.xml文件拷贝至mapper目录内

3.4.2mapper.java

Mapper.xml文件拷贝至mapper目录内

注意:mapper.xml文件和mapper.java文件在一个目录内且文件名相同。

3.4.3mapper接口测试

  = ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml"=(ItemsMapper) applicationContext.getBean("itemsMapper" ="手机" =ItemsExample.Criteria criteria="笔记本3"List list= =itemsMapper.selectByPrimaryKey(1 Items items=itemsMapper.selectByPrimaryKey(1"水杯"

4.逆向工程注意事项

4.1Mapper文件内容不覆盖而是追加

XXXMapper.xml文件已经存在时,如果进行重新生成则mapper.xml文件内容不被覆盖而是进行内容追加,结果导致mybatis解析失败。

解决方法:删除原来已经生成的mapper.xml文件再进行生成。

MyBatis自动生成的po和mapper.java文件不是内容追加而是直接覆盖没有此问题。

4.2 Table schema问题

下边是针对Oracle数据库表生成代码的schema问题:

schema即数据库模式,oracle中一个用户对应一个schema,可以理解为用户就是schema。当Oracle数据库存在多个Schema可以访问相同的表名时,使用mybatis生成该表的mapper.xml将会出现mapper内容重复的问题,结果导致mybatis解析错误。

解决方法:在table中填写schema,如下:

XXXX即为一个schema的名称,生成后将mapper.xml的schema前缀批量去掉,如果不去掉,当Oracle用户变更了sql语句将查询失败。

快捷操作方式:mapper.xml文件中批量替换:“from XXXX.”为空。

Oracle查询对象的schema可从dba_objects中查询,如下:

select * from dba_objects

 

相关专题

更多
Java 项目构建与依赖管理(Maven / Gradle)
Java 项目构建与依赖管理(Maven / Gradle)

本专题系统讲解 Java 项目构建与依赖管理的完整体系,重点覆盖 Maven 与 Gradle 的核心概念、项目生命周期、依赖冲突解决、多模块项目管理、构建加速与版本发布规范。通过真实项目结构示例,帮助学习者掌握 从零搭建、维护到发布 Java 工程的标准化流程,提升在实际团队开发中的工程能力与协作效率。

11

2026.01.12

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

106

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

64

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

139

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

19

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

93

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

480

2026.01.09

php学习网站大全
php学习网站大全

精选多个优质PHP入门学习网站,涵盖教程、实战与文档,适合零基础到进阶开发者,助你高效掌握PHP编程。

52

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 6.3万人学习

Django 教程
Django 教程

共28课时 | 3万人学习

React 教程
React 教程

共58课时 | 3.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号