Mybatis之Generator逆向生成的两种方法
2018-02-09 11:43
127 查看
学习过Mybatis的应该都知道他的特点就是半自动化,同时也意味着SQL语句的灵活和手动。通过程序员对SQL语句的优化可以让程序呈现不同的运行效果,因此在这个过程中需要手写大量的SQL语句以及数据库的POJO类。于是诞生了Generator,减轻了程序员的部分负担,同时也避免了编写SQL出现手误的现象
generator可以在Mybatis官网下载网速可能较慢,也可以在我的GitHub下载
下面是目前常用的两种Generator生成方法
命令行生成
首先网上下载好的generator目录结构如下
接下来我们打开lib包会看到如下目录结构
我们需要做的就是打开generatorConfig.xml文件,进行简单的数据库连接信息和生成文件的配置
另外要注意,上面所配置的数据库驱动以及包的生成位置均要为绝对路径
至此,配置文件修改完成,下载打开命令行,进入当前lib包所在的路径,打开lib文件中的 生成语句.txt 文件,命令为
回车运行成功后,命令行信息如下
现在,到你刚刚配置的包生成路径中,就会看见已经生成好的包
2.IDEA内生成
这种方式生成的更为直观,只需要在IDEA中运行JAVA程序即可
首先打开我们的IDEA(以Ecplise为例),最好单独创建一个java工程,不要和你的项目放在一起。
新建好一个项目后,拖入generator文件中的配置文件以及jar包,如图所示
接下来还是和第一个方法一样,配置generatorConfig.xml,不过生成包的路径有点不同,我们要生成在这个项目的src中,代码如下
可以看到,我们只要把生成目录改为.\src即可生成在当前项目的src目录下。接下来创建一个名为GeneratorSqlmap.java的java程序,代码如下
这里唯一需要修改的就是File里的逆向工程配置文件在项目中的位置,接下来运行该程序,没有出错的话,刷新当前项目,会发现生成的包出现在src目录中
到此两种生成方法介绍完毕,有什么问题欢迎大家留言讨论
generator可以在Mybatis官网下载网速可能较慢,也可以在我的GitHub下载
下面是目前常用的两种Generator生成方法
命令行生成
首先网上下载好的generator目录结构如下
接下来我们打开lib包会看到如下目录结构
我们需要做的就是打开generatorConfig.xml文件,进行简单的数据库连接信息和生成文件的配置
<?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> <classPathEntry location="数据库驱动包的路径" /> <context id="MySQL" targetRuntime="MyBatis3"> <!--下面配置的是数据库连接信息 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1/ssm" userId="root" password="1234"> </jdbcConnection> <javaModelGenerator targetPackage="POJO类的包名(自定义即可)" targetProject="生成该包的目标路径"> <property name="enableSubPackages" value="false" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <sqlMapGenerator targetPackage="mapper接口类的包名(自定 4000 义即可)" targetProject="生成该包的目标路径"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="mapper.xml配置文件的包名(自定义即可)" targetProject="生成该包的目标路径"> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <table tableName="数据库中的表名1" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> <table tableName="数据库中的表名2" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> </context> </generatorConfiguration>
另外要注意,上面所配置的数据库驱动以及包的生成位置均要为绝对路径
至此,配置文件修改完成,下载打开命令行,进入当前lib包所在的路径,打开lib文件中的 生成语句.txt 文件,命令为
java -jar mybatis.jar -configfile generatorConfig.xml -overwrite
回车运行成功后,命令行信息如下
现在,到你刚刚配置的包生成路径中,就会看见已经生成好的包
2.IDEA内生成
这种方式生成的更为直观,只需要在IDEA中运行JAVA程序即可
首先打开我们的IDEA(以Ecplise为例),最好单独创建一个java工程,不要和你的项目放在一起。
新建好一个项目后,拖入generator文件中的配置文件以及jar包,如图所示
接下来还是和第一个方法一样,配置generatorConfig.xml,不过生成包的路径有点不同,我们要生成在这个项目的src中,代码如下
<?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> <classPathEntry location="数据库驱动包的路径" /> <context id="MySQL" targetRuntime="MyBatis3"> <!--下面配置的是数据库连接信息 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1/ssm" userId="root" password="1234"> </jdbcConnection> <javaModelGenerator targetPackage="POJO类的包名(自定义即可)" targetProject=".\src"> <property name="enableSubPackages" value="false" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <sqlMapGenerator targetPackage="mapper接口类的包名(自定义即可)" targetProject=".\src"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="mapper.xml配置文件的包名(自定义即可)" targetProject=".\src"> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <table tableName="数据库中的表名1" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> <table tableName="数据库中的表名2" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> </context> </generatorConfiguration>
可以看到,我们只要把生成目录改为.\src即可生成在当前项目的src目录下。接下来创建一个名为GeneratorSqlmap.java的java程序,代码如下
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 GeneratorSqlmap { public void generator() throws Exception{ 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); } public static void main(String[] args) throws Exception { try { GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap(); generatorSqlmap.generator(); } catch (Exception e) { e.printStackTrace(); } } }
这里唯一需要修改的就是File里的逆向工程配置文件在项目中的位置,接下来运行该程序,没有出错的话,刷新当前项目,会发现生成的包出现在src目录中
到此两种生成方法介绍完毕,有什么问题欢迎大家留言讨论
相关文章推荐
- mybatis-generator生成逆向工程两种方式
- 使用MyBatis Generator自动生成持久层CRUD代码的两种方法
- 使用 MyBatis-generator 插件逆向工程生成 Mapper、Dao、PO 文件的方法
- 【MyBatis学习15】mybatis-generator生成逆向工程两种方式
- mybatis generator只生成insert方法解决方案之一
- eclipse中使用mybatis-generator逆向代码生成工具问题解决记录
- Mybatis三剑客之mybatis-generator逆向生成生成pojo、dao和xml文件
- IDEA中使用MyBatis Generator逆向工程生成代码(MySQL)
- Mybatis 逆向生成工具mybatis-generator-core-1.3.2.jar的使用
- java笔记之使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件2种方法
- 在IDEA中使用MyBatis Generator逆向工程生成代码
- Mybatis 通过配置文件generatorConfig.xml生成文件--main方法执行方式
- 在IDEA中使用MyBatis Generator逆向工程生成代码
- 在IDEA中使用MyBatis Generator逆向工程生成代码
- 解决maven mybatis generator只生成insert方法
- 在IDEA中使用MyBatis Generator逆向工程生成代码
- Mybatis Generator 生成的mapper只有insert方法
- 增加Mybatis-generator生成的Mapper类和Mapper.xml里的方法
- mybatis-generator 自动生成带中文注释方法(附实体类)
- mybatis逆向生成 eclipse逆向生成工具mybatis generator使用