MyBatis逆向工程

MyBatis逆向工程

MyBatis Generator简介

MyBatis Generator简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的根据数据库表生成对应的映射文件、接口,以及bean类。支持基本的增删改查,以及QBC风格的条件查询。但是表连接、存储过程等这些复杂sql的定义需要手动编写;

MBG的搭建

项目目录结构

MyBatis逆向工程_第1张图片

MBG jar

官方地址:http://www.mybatis.org/generator/

github地址:https://github.com/mybatis/generator/releases

maven地址:

  org.mybatis.generator

  mybatis-generator-core

  1.3.5

pom文件


	4.0.0
	com.soft863
	mbg
	war
	0.0.1-SNAPSHOT
	mbg
	http://maven.apache.org
	
		
			junit
			junit
			4.12
			test
		
		
		
			org.mybatis
			mybatis
			3.4.4
		
		
		
			org.mybatis.generator
			mybatis-generator-core
			1.3.5
		
		
		
			org.slf4j
			slf4j-log4j12
			1.7.5
		
		
		
			mysql
			mysql-connector-java
			5.1.1
		
	
	
		mbg
	

MBG配置文件

创建MBG配置文件mbg.xml(这里我放在的项目的根目录下);





	
	
		
		
		
		
		
		
			
			
		
		
		
		
		
			
			
		
		
		
		
			
		
		
		
		
			
		
		
		
		
		

测试

说明:

atestMbg()方法是执行MBG配置文件的方法,运行该方法,会生成bean、接口、映射文件;

b)后面两个方法是测试生成内容的测试方法;

package com.soft863.mbg.test;

import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.BeforeClass;
import org.junit.Test;
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;

import com.soft863.mbg.dao.GoodsMapper;
import com.soft863.mbg.entity.Goods;

public class TestCase {

	/**
	 * 运行逆向工程配置文件
	 * @throws Exception
	 */
	@Test
	public void testMbg() throws Exception {
		List warnings = new ArrayList();
		boolean overwrite = true;
		File configFile = new File("mbg.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);
	}
	
	private static SqlSessionFactory ssf = null;
	
	@BeforeClass
	public static void beforeClass() {
		InputStream is = TestCase.class.getResourceAsStream("/mybatis-config.xml");
		ssf = new SqlSessionFactoryBuilder().build(is);
	}
	
	/**
	 * 测试Mybatis3Simple逆向工程生成的功能
	 */
	@Test
	public void testMybatis3Simple() {
		SqlSession session = ssf.openSession();
		GoodsMapper goodsDao = session.getMapper(GoodsMapper.class);
		List list = goodsDao.selectAll();
		for (Goods goods : list) {
			System.out.println(goods.getGoodsid());
		}
		session.close();
	}
	
}

待条件复杂查询

项目目录结构

MyBatis逆向工程_第2张图片

使用复杂的条件查询,要在MBG配置文件中,标签的targetRuntime属性修改为“Mybatis3”,该参数值支持生成复杂的mapper文件;

注:修改mbg.xml后,在运行执行MBG配置文件方法前,先把原来生成的所有文件删掉,防止新生成的文件覆盖原文件时发出错误

 

修改后的标签,如下:

测试

/**
 * 测试Mybatis3逆向工程生成的功能
 */
@Test
public void testMybatis3() {
	SqlSession session = ssf.openSession();
	GoodsMapper goodsDao = session.getMapper(GoodsMapper.class);
	/*
	 * selectByExample():查询多条记录,参数为null时,查询所有记录,指定参数时,参数是查询的条件
	 */
	// 查询所有记录
	List list = goodsDao.selectByExample(null);
	for (Goods goods : list) {
		System.out.println(goods.getGoodsid());
	}
	System.out.println("----------------------");
	
	// 根据条件查询记录
	GoodsExample example = new GoodsExample(); // XxxExample类封装的查询条件
	Criteria criteria = example.createCriteria(); // Criteria中封装了一系列的条件拼接方法
	criteria.andGoodstotalBetween(0, 100); // 商品数量在0到100之间的商品
	
	/*
	 * 多个where条件的关系是and时,调用and开头的方法设置条件即可;
	 * 如果是 or 的关系,则要新创建一个Criteria对象,设置条件,然后使用example.or(Criteria对象)
	 * 方法就可以拼接上 or 的条件
	 */
	Criteria criteria2 = example.createCriteria();
	criteria2.andGoodstotalEqualTo(200);
	example.or(criteria2);
	
	List list2 = goodsDao.selectByExample(example); // 查询结果
	for (Goods goods : list2) {
		System.out.println(goods.getGoodsid());
	}
	session.close();
}

你可能感兴趣的:(Mybatis)