MyBatis逆向工程,附测试与mybatis-generator-core-1.3.2.jar

本文介绍如何使用MyBatis Generator进行自动代码生成,包括配置文件的编写、生成POJO、DAO接口及映射文件的过程,并提供了一个简单的测试示例。
  • 1.导包:
    mybatis-generator-core-1.3.2.jar
    资源链接:
    链接:https://pan.baidu.com/s/1iHiVOtWl8eQz8T8ABfXnyw
    提取码:wtyp

2.根据QuickStart官方文档写配置:
在这里插入图片描述3.

  • 修改一下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>

  <context id="DB2Tables" targetRuntime="MyBatis3">
  	<!-- 指导链接到哪个数据库 -->
    <jdbcConnection 
    	driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://localhost:3306/mybatisedu"
        userId="root"
        password="1234">
    </jdbcConnection>

    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>
	
	<!-- 
		帮我们生成POJO
		targetPackage:生成的POJO放在哪个包?
		targetProject: 放在哪个工程下
	 -->
    <javaModelGenerator targetPackage="com.EzerbelCN.bean" 
      targetProject=".\src">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="true" />
    </javaModelGenerator>
	
	<!-- sqlMapGenerator:sql映射文件生成器 ,指定*dao.xml生成地方-->
    <sqlMapGenerator targetPackage="com.EzerbelCN.mapper"  targetProject=".\conf">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>
	
	<!-- dao接口生成的地方 -->
    <javaClientGenerator type="XMLMAPPER" 
      targetPackage="com.EzerbelCN.mapper"  
      targetProject=".\src">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>
	
	<!-- table 指定要逆向生成哪张表
		tableName="t_teachers" 表名
		domainObjectName="Teacher" 这个表对应的对象名
	 -->
    <table tableName="t_teachers" domainObjectName="Teacher"></table>
	<table tableName="t_students" domainObjectName="Student"></table>
	<table tableName="t_schools" domainObjectName="School"></table>
	
  </context>
</generatorConfiguration>

注意更正mybatis-config.xml的mapper扫描范围:
在这里插入图片描述

3.生成工程文件:

package com.EzerbelCN.test;

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 GenerateMyBaisFiles {
	public static void main(String[] args) throws Exception{
		
		List<String> warnings = new ArrayList<String>();
		   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);
		   System.out.println("生成OK");
	}
}


5.开始测试:

package com.EzerbelCN.test;

import java.io.InputStream;
import java.util.Arrays;
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.Before;
import org.junit.Test;

import com.EzerbelCN.bean.School;
import com.EzerbelCN.bean.SchoolExample;
import com.EzerbelCN.bean.SchoolExample.Criteria;
import com.EzerbelCN.mapper.SchoolMapper;
import com.EzerbelCN.mapper.StudentMapper;
import com.EzerbelCN.mapper.TeacherMapper;

public class MBGTest {

	TeacherMapper teacherMapper;
	StudentMapper studentMapper;
	SchoolMapper schoolMapper;
	
	@Before 
	public void initMapper() throws Exception{
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
		SqlSession sqlSession = factory.openSession();
		teacherMapper = sqlSession.getMapper(TeacherMapper.class);
		studentMapper = sqlSession.getMapper(StudentMapper.class);
		schoolMapper = sqlSession.getMapper(SchoolMapper.class);
	}
	
	@Test
	public void testSchoolExample()
	{
		SchoolExample example = new SchoolExample();
		example.setOrderByClause("id DESC");
		Criteria criteria = example.createCriteria();
		criteria.andIdIn(Arrays.asList(1,2,3));
		List<School> schools = schoolMapper.selectByExample(example);
		schools.forEach(System.out::println);
	}
}

6.测试结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值