【MyBatis】MyBatis逆向工程代码的生成以及使用

MyBatis逆向工程代码

  • 一、逆向工程
  • 二、使用MyBatis逆向工程
    • 2.1 导入逆向工程的jar包
    • 2.2 MyBatis逆向工程代码编写
    • 2.3 MyBatis逆向工程配置文件以及log4j配置文件编写
    • 2.4 单元测试类

一、逆向工程

MyBatis一个主要的特点就是需要程序员自己编写SQL,那么如果表太多的话,难免会很麻烦,所以MyBatis官方提供了一个逆向工程,可以针对单表自动生成pojo类、example类(用于添加条件,相当where语句后面的部分 )、mapper文件 ,可以让程序员将更多的精力放在繁杂的业务逻辑上。

一般在实际开发中,常用的逆向工程方式是通过数据库的表生成代码。

二、使用MyBatis逆向工程

2.1 导入逆向工程的jar包

mybatis-generator-core-1.3.2.jar

2.2 MyBatis逆向工程代码编写

GeneratorSqlmap.java

import java.io.File;
import java.io.IOException;
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.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

public class GeneratorSqlmap {

	public void generator() throws Exception{

		List warnings = new ArrayList();
		boolean overwrite = true;
		//指定 逆向工程配置文件
		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);

	} 
	public static void main(String[] args) throws Exception {
		try {
			GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
			generatorSqlmap.generator();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}

}

2.3 MyBatis逆向工程配置文件以及log4j配置文件编写

generatorConfig.xml





	
		
			
			
		
		
		
		
		

		
		
			
		

		
		
			
			
			
			
		
        
		
			
			
		
		
		
			
			
		
		
		

log4j.properties

log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

2.4 单元测试类

将生成的文件放入到maven项目中,dao->UserMapper,pojo->User、UserExample,resources->UserMapper.xml

package com.test;

import com.dao.UserMapper;
import com.entity.User;
import com.entity.UserExample;
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 java.io.InputStream;
import java.util.List;

public class MybatisDemo {
    @Test
    public void findAll()throws Exception{

        //1.获得读取MyBatis配置文件的流对象
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        //2.构建SqlSession连接对象的工厂
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        //3.通过工厂获得连接对象
        SqlSession sqlSession = factory.openSession();
        //4.通过连接对象获得接口实现类对象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        //5.查询所有
        List list = userMapper.selectByExample(null);
        System.out.println(list);

    }

    @Test
    public void findById()throws Exception{

        //1.获得读取MyBatis配置文件的流对象
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        //2.构建SqlSession连接对象的工厂
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        //3.通过工厂获得连接对象
        SqlSession sqlSession = factory.openSession();
        //4.通过连接对象获得接口实现类对象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        //5.查询单个
        User user = userMapper.selectByPrimaryKey(2);
        System.out.println(user);

    }

    @Test
    public void findByCondition()throws Exception{

        //1.获得读取MyBatis配置文件的流对象
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        //2.构建SqlSession连接对象的工厂
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        //3.通过工厂获得连接对象
        SqlSession sqlSession = factory.openSession();
        //4.通过连接对象获得接口实现类对象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        String name = "三";
        //5.指定条件查询
        UserExample userExample = new UserExample();
        UserExample.Criteria criteria = userExample.createCriteria();
        //添加条件
        criteria.andUsernameLike("%" + name + "%");
        List list = userMapper.selectByExample(userExample);
        System.out.println(list);

    }
}

你可能感兴趣的:(框架,MyBatis)