正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的。
逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源:
- Java实体类
- Mapper接口
- Mapper映射文件
org.mybatis mybatis 3.5.7 junit junit 4.12 test log4j log4j 1.2.17 mysql mysql-connector-java 8.0.16
org.mybatis.generator mybatis-generator-maven-plugin 1.3.0 org.mybatis.generator mybatis-generator-core 1.3.2 mysql mysql-connector-java 8.0.16
mybatis-config.xml
文件名必须是:generatorConfig.xml
配置了一个插件,我们是通过插件生成一个逆向工程。
构建
Maven -> 项目 —> Plugins -> mybatis-genertor -> mybatis-generator:generate
控制台看到 BUILD SUCCESS,就构建成功了。
观察项目目录,可以看到生成了mapper接口、实体类、mapper映射文件。
单表查询的时候可以提供帮助,复杂的SQL或者多表联查的时候不支持。
测试代码:
package com.fan.mybatis.test;import com.fan.mybatis.mapper.EmpMapper;
import com.fan.mybatis.pojo.Emp;
import com.fan.mybatis.pojo.EmpExample;
import com.fan.mybatis.utils.SqlSessionUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;import java.util.List;/**
* @Date: 2023/03/09
* @Author: fan
* @Description:
*/
public class MBGTest {@Testpublic void testMBG(){SqlSession sqlSession = SqlSessionUtils.getSqlSession();EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);根据id查询数据//Emp emp = mapper.selectByPrimaryKey(1);//System.out.println(emp);查询所有数据//List list = mapper.selectByExample(null);//list.forEach(System.out::println);根据条件查询数据//EmpExample example = new EmpExample();//example.createCriteria().andEmpNameEqualTo("张三").andAgeGreaterThanOrEqualTo(20);//example.or().andGenderEqualTo("男");//List emps = mapper.selectByExample(example);//emps.forEach(System.out::println);测试普通修改功能//Emp emp1 = new Emp(1,"小黑",null,"女");//mapper.updateByPrimaryKey(emp1);//选择性修改Emp emp2 = new Emp(1,"小黑",null,"女");mapper.updateByPrimaryKeySelective(emp2);}
}
下一篇:机器看世界