1、向pom.xml添加依赖项
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
Mybais-Generator依赖JDBC
2、编写config文件
<?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>
<!--JDBC库的绝对地址,默认maven下载到 C:\Users\xie\.m2\-->
<classPathEntry location="C:\Users\xie\.m2\repository\mysql\mysql-connector-java\8.0.21/mysql-connector-java-8.0.21.jar" />
<!--配置数据库连接-->
<context id="DB2Tables" targetRuntime="MyBatis3">
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/school?serverTimezone=GMT%2B8&characterEncoding=utf8"
userId="root"
password="123">
</jdbcConnection>
<!--配置模型产生的地址 targetPackage是目标包, targetProject是项目地址-->
<javaModelGenerator targetPackage="com.william.mapper" targetProject="C:\Users\xie\IdeaProjects\dljdMybatis\src\main\java">
<property name="enableSubPackages" value="false" />
<property name="trimStrings" value="false" />
</javaModelGenerator>
<!--配置mapper文件产生的地址 targetPackage是目标包, targetProject是项目地址-->
<sqlMapGenerator targetPackage="com.william.mapper" targetProject="C:\Users\xie\IdeaProjects\dljdMybatis\src\main\java">
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!--配置xml文件产生的地址 targetPackage是目标包, targetProject是项目地址-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.william.mapper" targetProject="C:\Users\xie\IdeaProjects\dljdMybatis\src\main\java">
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!--配置表映射,这里不配置-->
<table tableName="students" domainObjectName="Student" >
</table>
</context>
</generatorConfiguration>
3、运行命令行生成(也可以通过4、java程序生成)
java -jar PACKAGE_NAME -configfile CONFIG_FILE_NAME
其中,PACKAGE_NAME替换为maven仓库下载的mybatis-generator-core-1.4.0.jar的绝对路径,CONFIG_FILE_NAME替换为你写的配置文件的绝对路径
(如果有必要)
4、使用Java程序生成
public class Main {
static public void main(String[] args) throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("src/main/java/com/william/mapper/generator.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);
}
}
将其中file路径替换即可,否则会报错
5、使用产生的Example
static public void main(String[] args) throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
System.out.println(inputStream.toString());
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
StudentMapper mapper = session.getMapper(StudentMapper.class);
StudentExample studentExample = new StudentExample();
studentExample.createCriteria().andAgeBetween(18,100);
List<Student> students = mapper.selectByExample(studentExample);
students.stream().forEach(student -> log.info(students.toString()));
}
能够使用Example产生Criteria,能够用代码拼接sql语句。
优点:开发较快
缺点:效率低下,可能写出低效的sql