MyBatis研习录(14)——MyBatis逆向工程
发布日期:2021-06-30 11:11:11 浏览次数:2 分类:技术文章

本文共 5119 字,大约阅读时间需要 17 分钟。



版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

概述

MyBatis逆向工程,简称MBG。它是一个专门为MyBatis框架使用者定制的代码生成器,它可以快速的根据表生成对应的映射文件xxxMapper.xml,接口xxxMapper.java,以及JavaBean类对象。

接下来,我们以示例的形式学习MBG的使用。

数据准备

DROP DATABASE IF EXISTS mybatisDatabase;CREATE DATABASE mybatisDatabase;use mybatisDatabase;CREATE TABLE user(  id INT PRIMARY KEY auto_increment,  name VARCHAR(50),  password VARCHAR(50),  gender VARCHAR(10));CREATE TABLE student(  id INT PRIMARY KEY auto_increment,  name VARCHAR(50),  address VARCHAR(50),  gender VARCHAR(10));INSERT INTO user(name,password,gender) VALUES("lucy","123456","female");INSERT INTO user(name,password,gender) VALUES("momo","234567","female");INSERT INTO user(name,password,gender) VALUES("xixi","345678","female");INSERT INTO user(name,password,gender) VALUES("pepe","456123","female");INSERT INTO student(name,address,gender) VALUES("tome","BeiJing","female");INSERT INTO student(name,address,gender) VALUES("dodo","ChengDu","female");INSERT INTO student(name,address,gender) VALUES("mbmb","ZhangYe","female");INSERT INTO student(name,address,gender) VALUES("zxzx","BaoDing","female");SELECT * FROM user;SELECT * FROM student;

搭建开发环境

创建普通的Java工程,结构如下:

在这里插入图片描述
在lib中一共存在四个jar包:

  • log4j-1.2.17.jar
  • mybatis-3.4.1.jar
  • mybatis-generator-core-1.3.2.jar
  • mysql-connector-java-5.1.7-bin.jar

其中,mybatis-generator-core-1.3.2.jar专门用于MyBatis逆向工程

log4j.properties

# Global logging configurationlog4j.rootLogger=DEBUG, stdout# Console output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

generatorConfig.xml

在工程Mybatis012根目录下创建generatorConfig.xml,图示如下:

在这里插入图片描述
其内容如下:

Generator

在cn.com.generator包下建立Generator,其内容如下:

package cn.com.generator;import java.io.File;import java.util.ArrayList;import java.util.List;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback;public class Generator {
public static void main(String[] args) throws Exception {
List
warnings = new ArrayList
(); boolean overwrite = true; //读取generatorConfig.xml配置文件 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); }}

自动生成代码

运行Generator后再刷新整个Java工程即可见自动生成的代码,图示如下:

在这里插入图片描述

mybatis-config.xml

在自动生成代码后再创建并配置mybatis-config.xml文件,其内容如下:

MybatisTest

创建MybatisTest测试该逆向工程,其代码如下:

package cn.com.test;import java.io.InputStream;import java.util.Iterator;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Test;import cn.com.mapper.StudentMapper;import cn.com.mapper.UserMapper;import cn.com.pojo.Student;import cn.com.pojo.User;/** * 本文作者:谷哥的小弟 * 博客地址:http://blog.csdn.net/lfdfhl */public class MybatisTest {
static SqlSessionFactory sqlSessionFactory = null; public static SqlSessionFactory getSqlSessionFactory() {
try {
if (sqlSessionFactory == null) {
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream); } return sqlSessionFactory; } catch (Exception e) {
// TODO: handle exception } finally {
} return null; } @Test public void testUser() {
//获取SqlSession SqlSession sqlSession=getSqlSessionFactory().openSession(); //利用SqlSession得到Mapper UserMapper userMapper = sqlSession.getMapper(UserMapper.class); List
userList = userMapper.selectAll(); Iterator
iterator = userList.iterator(); while(iterator.hasNext()) {
User user = iterator.next(); System.out.println(user.getName()+" , "+user.getGender()); } //关闭SqlSession sqlSession.close(); } @Test public void testStudent() {
//获取SqlSession SqlSession sqlSession=getSqlSessionFactory().openSession(); //利用SqlSession得到Mapper StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class); Student student = studentMapper.selectByPrimaryKey(1); System.out.println(student.getName()+" , "+student.getGender()); //关闭SqlSession sqlSession.close(); }}

测试结果如下:

在这里插入图片描述
在这里插入图片描述

附图

在此,附上整个项目的结构图,图示如下:

在这里插入图片描述

转载地址:https://it9527.blog.csdn.net/article/details/103284357 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android利用反射获取状态栏(StatusBar)高度
下一篇:MyBatis研习录(13)——MyBatis二级缓存

发表评论

最新留言

不错!
[***.144.177.141]2024年04月23日 01时25分11秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章