MyBatis Generator (MBG)项目地址: github.com/mybatis/gen…
MyBatis Generator使用
1、POM文件添加依赖
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.2</version>
</dependency>
2、配置generator的xml文件
<!DOCTYPE generatorConfiguration PUBLIC
"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 如果使用command的方式生成需要的配置 需要配置classPathEntry -->
<!-- <classPathEntry location="指定数据库驱动的磁盘路径"/>-->
<!--
生成上下文 配置生成规则
targetRuntime 生成策略
MyBatis3DynamicSql 默认的 会生成带动态的CRUD
MyBatis3 生成通用的查询 可以指定动态的where条件
Mybatis3Simple 只生成简单的CURD
-->
<context id="simple" targetRuntime="MyBatis3">
<!-- <commentGenerator>-->
<!-- <property name="suppressAllComments" value="true"/>-->
<!-- </commentGenerator>-->
<!-- 数据源-->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis"
userId="root" password="root"/>
<!-- pojo -->
<javaModelGenerator targetPackage="com.kdy.pojo" targetProject="src/main/java"/>
<!-- mapper xml映射-->
<sqlMapGenerator targetPackage="com.kdy.mapper" targetProject="src/main/resources"></sqlMapGenerator>
<!-- mapper接口-->
<!-- type ANNOTATEDMAPPER 注解方式 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.kdy.mapper" targetProject="src/main/java"/>
<!-- 那些表需要进行代码生成-->
<table tableName="emp" domainObjectName="Emp" mapperName="EmpMapper"/>
<table tableName="dept" domainObjectName="Dept" mapperName="DeptMapper"></table>
</context>
</generatorConfiguration>
<!--运行
1、
java -jar mybatis-generator-core-x.x.x.jar -configfile \temp\generatorConfig.xml -overwrite
-->
3、使用生成相关的类及XML文件
@Test
public void test01() throws XMLParserException, IOException, InvalidConfigurationException, SQLException, InterruptedException {
List<String> warnings = new ArrayList<String>();
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);
}
4、使用代码
import com.kdy.mapper.EmpMapper;
import com.kdy.pojo.Emp;
import com.kdy.pojo.EmpExample;
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.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class MyTest {
SqlSession sqlSession;
@Test
public void test01() throws IOException {
//根据XML构建成sqlSessionFactory
String config = "mybatis.config.xml";
//将XML构建成输入流
InputStream inputStream= Resources.getResourceAsStream(config);
//建成sqlSessionFactory
try {
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sessionFactory.openSession();
EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
// List<Emp> emp = mapper.selectAll();
// System.out.println(emp);
Emp emp = mapper.selectByPrimaryKey(1);
System.out.println(emp);
}catch (Exception ex){
//LOGGER.
System.out.println(ex);
}
}
@Test
public void test02() throws IOException {
//根据XML构建成sqlSessionFactory
String config = "mybatis.config.xml";
//将XML构建成输入流
InputStream inputStream= Resources.getResourceAsStream(config);
//建成sqlSessionFactory
try {
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sessionFactory.openSession();
EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
// List<Emp> emp = mapper.selectAll();
// System.out.println(emp);
EmpExample empExample = new EmpExample();
EmpExample.Criteria criteria = empExample.createCriteria();
criteria.andUsernameLike("%名%");
// Emp emp = mapper.
// System.out.println(emp);
List<Emp> emp =mapper.selectByExample(empExample);
System.out.println(emp);
}catch (Exception ex){
//LOGGER.
System.out.println(ex);
}
}
}