简介

MyBatis(前身是iBATIS)是一个基于Java的持久层框架,而MyBatis Generator (MBG,http://www.mybatis.org/generator/)是一个根据数据库表结构为MyBatis和iBATIS逆向生成相关Java代码和配置文件的工具。
MBG可以生成:
1)Java POJO,与数据库表结构对应;
2)MyBatis和iBATIS规范的SQL映射配置文件,每个配置文件包含对一个表实现简单CRUD操作的SQL语句;
3)MyBatis和iBATIS规范的Java客户端接口,提供对数据的增、删、查、改方法。

示例数据库

数据库表模型
示例数据库包含3张表:
1)课程表(course),存储课程名称、学分信息,主键为自增整数;
2)学生表(student),存储学生姓名、性别、年龄等信息,主键为自增整数;
3)得分表(score),存储某位学生某门课程的分数,使用课程id和学生id作为联合主键。

使用MBG逆向生成代码

使用MBG生成代码时,需要指定配置文件(generatorConfig.xml),如下所示,其中指定了数据库连接方式,Java POJO、SQL映射配置文件、Java客户端接口的生成方式和生成路径等:

指定配置文件后,MBG支持以下4种生成代码方式:
1)使用命令行生成代码;
2)作为Ant任务生成代码;
3)作为Maven插件生成代码;
4)使用Java接口编程生成代码。
这里使用命令行方式,从https://github.com/mybatis/generator/releases下载jar包,命令行下执行jar包:

java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml

执行成功后,便会生成如下代码:
1)Java POJO:Course.java,Student.java,ScoreKey.java,Score.java,其中Course.java对应于course表,如下所示:

2)SQL映射配置文件:CourseMapper.xml,StudentMapper.xml,ScoreMapper.xml,其中CourseMapper.xml包含对course表实现CRUD操作的SQL语句,如下所示:

3)Java客户端接口,CourseMapper.java,StudentMapper.java,ScoreMapper.java,其中CourseMapper.java提供对Course对象的增、删、查、改方法,如下所示:

使用所生成代码读写数据库

示例工程使用Maven构建,并使用Spring管理上下文,代码目录如图所示:
04D80B70-DB28-4373-AADD-5D0150179FB8
除MBG生成的代码和配置文件外,还需要context.xml和configuration.xml分别配置Spring和MyBatis,context.xml和configuration.xml如下所示:

编写测试类对course表执行插入操作:

执行后,在course表中成功插入一条记录:
C6987E31-E4AA-4E30-85B0-74E0D4A80569

标签:

基于WebSocket实现微信小程序的消息推送

微信小程序支持通过基于WebSocket进行消息推送,提供了相应的API,例如创建连接示例代码: JavaScript wx.connectSocket({ ...

阅读全文

基于nginx-sticky-module-ng实现会话保持(Sticky Sessions)

对服务进行集群部署,前端进行负载均衡时,需要实现会话保持,对于同一会话的多个请求,通过集群中的一个节点来提供服务。系统的部署结构如图所示,通过Resin...

阅读全文

ActiveMQ基于Zookeeper和LevelDB实现Master/Slave

ActiveMQ的Master/Slave目前支持三种实现方式: 1)Shared File System Master Slave; 2)JDBC Master Slave; 3)Replicated LevelDB Store。 对于第三种方...

阅读全文