如何使用mybatis generator代码生成?
这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【如何使用mybatis generator代码生成?】 【修真院java小课堂】 MYBATIS GENERATOR(1)背景介绍: MyBatis Generator MyBatis Generator (MBG) 是一个Mybatis的代码生成器 他可以内省数据库的表(或多个表)然后生成可以用来访问(多个)表的基础对象。 这样和数据库表进行交互时不需要创建对象和配置文件。 MBG的解决了对数据库操作有最大影响的一些简单的CRUD(插入,查询,更新,删除)操作。 您仍然需要对联合查询和存储过程手写SQL和对象 (2)知识剖析: 实现MBG的方式 1.使用命令行生成(了解) 2.使用maven插件进行生成(常用) 两种方式使用的generator.xml文件内的配置都是一样的,第一种需要用命令行加载jar包,第二种则需要用编辑器配置pom.xml 使用mybatis generator进行代码生成的操作步骤 第一步:准备数据库、表 第二步:3个依赖和1个插件 mybatis.jar mybatis-generator-core.jar mysql-connector-java.jar mybatis-generator-maven-plugin 第三步:编写配置文件generatorConfig.xml a.配置数据库连接地址及账号密码 b.生成的Model类存放位置 c.生成的映射文件存放位置 d.指定要生成的表(命名规范) 代码生成的映射文件提供了几种常用的CRUD操作 1.insert() 2.insertSelective() 3.updateByPrimaryKeySelective() 4.updateByPrimaryKey() 5.selectByPrimaryKey() 6.deleteByPrimaryKey() mybatis-generator的运行过程 连接数据库——》从数据库的表中获取字段——》依据字段生成mapper文件、dao、实体类 生成的方式 1.使用命令行生成 2.使用maven插件进行生成 (3)常见问题: 数据库命名规范和JAVA命名规范不一样的怎么办? 只能逆向生成mapper.xml文件吗,可否生成annotation的mapper呢 (4)解决方案: 1.如不加设置,mybatis-generator会把数据库中的下划线规则自动转化为JAVA中的驼峰规则并生成实体类 2.可以通过generatorConfig.xml设置 将javaclientgenerator参数中的TYPE值由XMLMAPPER改为ANNOTATEDMAPPER即可 (5)编码实战: (6)拓展思考: (7)参考文献: http://mbg.cndocs.ml/quickstart.html https://gitee.com/free/Mybatis_Utils/blob/master/MybatisGeneator (8)更多讨论: 1.什么是Example,什么是Criteria? 答:Example类被用来生成任何where子句。它包含一个内部静态类Criteria。这个Criteriz维护一个条件列表,这些条件会被 anded到where子句。 2.createCriteria()方法和or()方法的区别? 答:两个方法都可以用来创建Criteria对象。区别在于首个被crateCriteria方法创建的Criterier对象将自动添加到list of criteria。如果是被or()方法创建,则是添加到the list in all instance。 3.动态sql用起来有什么问题吗? 答:这里只做了一个简单的例子。因为方法名的原因,用起来比较吃力,但是如果以后公司没有代码生成的话,可以学习下。 (9)鸣谢: 感谢XX、XX师兄,此教程是在他们之前技术分享的基础上完善而成。 (10)结束语: 今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~ PPT链接?视频链接 更多内容,可以加入IT交流群565734203与大家一起讨论交流 这里是技能树·IT修真院:,初学者转行到互联网的聚集地 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Hibernate cache.use_second_level_cache属性:判
- 如何正确配置属性“sonar.java.binaries”?
- java – 在自己的构造函数中使用对象
- java – ${_ csrf}做什么?这是一个隐含的EL对象
- java语法基础和课后实践
- Struts2 ActionContext.getApplication()方法:获
- java – 如何使用JSF和Facelets实现一些if-then逻
- java – 为什么notify方法应该在synchronized块
- java – Robolectric启动时反射的NullPointerExc
- java – Spring 3.0 WebMVC中的Catch参数解析异常