MyBatis(10)逆向工程

什么是逆向工程? 在学习的过程中会发现,需要我们写大量的sql语句 此时mybaatis官方为我们提供逆向工程可以针对单表自动生成的mybatis执行所需要的代码 使用方法: MyBatis Generator (MBG) can be run in the following ways: From the command prompt with an XML configuration As an Ant task with an XML configuration As a Maven Plugin From another Java program with an XML configuration From another Java program with a Java based configuration 推荐使用红色的方法 jar包 官方文档在解压后的doc文件中点击index.html 简单的讲解一下: MyBatis GeneratorXML Configuration File Reference 建立新的工程: 导入需要加入的jar 在config文件下的 gengeratorConfig.xml 基本上都是固定的格式,不需要懂,只许看看懂红色部分的注释,以及相关标签的意义。 复制代码
复制代码 test目录下 GeneratorSqlmap.java 复制代码 public class GeneratorSqlmap { public void generator() throws Exception{ List warnings = new ArrayList(); boolean overwrite = true; //指定 逆向工程配置文件 File configFile = new File("config/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(); } } } 复制代码 都是固定的格式,固体的可以参考官方的文档。 然后运行在 简单说明一下 如下的注释 首先是表 其次是表中的字段 复制代码 2018-10-25 16:04:22,837 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "items" 2018-10-25 16:04:22,848 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "id", data type 4, in table "shopping..items" 2018-10-25 16:04:22,849 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "name", data type 12, in table "shopping..items" 2018-10-25 16:04:22,849 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "price", data type 7, in table "shopping..items" 2018-10-25 16:04:22,849 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "detail", data type -1, in table "shopping..items" 2018-10-25 16:04:22,849 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "pic", data type 12, in table "shopping..items" 2018-10-25 16:04:22,849 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "createtime", data type 93, in table "shopping..items" 2018-10-25 16:04:22,855 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "orders" 2018-10-25 16:04:22,859 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "id", data type 4, in table "shopping..orders" 2018-10-25 16:04:22,859 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "user_id", data type 4, in table "shopping..orders" 2018-10-25 16:04:22,859 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "number", data type 12, in table "shopping..orders" 2018-10-25 16:04:22,859 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "createtime", data type 93, in table "shopping..orders" 2018-10-25 16:04:22,859 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "note", data type 12, in table "shopping..orders" 2018-10-25 16:04:22,864 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "orderdetail" 2018-10-25 16:04:22,868 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "id", data type 4, in table "shopping..orderdetail" 2018-10-25 16:04:22,868 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "orders_id", data type 4, in table "shopping..orderdetail" 2018-10-25 16:04:22,868 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "items_id", data type 4, in table "shopping..orderdetail" 2018-10-25 16:04:22,868 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "items_num", data type 4, in table "shopping..orderdetail" 2018-10-25 16:04:22,869 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Retrieving column information for table "user" 2018-10-25 16:04:22,874 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "id", data type 4, in table "shopping..user" 2018-10-25 16:04:22,874 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "username", data type 12, in table "shopping..user" 2018-10-25 16:04:22,874 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "birthday", data type 91, in table "shopping..user" 2018-10-25 16:04:22,874 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "sex", data type 1, in table "shopping..user" 2018-10-25 16:04:22,874 [main] DEBUG [org.mybatis.generator.internal.db.DatabaseIntrospector] - Found column "address", data type 12, in table "shopping..user" 复制代码 刷新观察 com.MrChengs.po com.MrCehngs.mapper 两个包里面的文件 此时的文件我们得到了,在使用的时候我们不要进行对原有的代码的修改。 返回上一个博文将进行简单的小案例测试: 有不懂的可以参考:MyBatis整合Spring 复制图中的文件到本工程中 新建测试类 复制代码 public class test { private ApplicationContext applicationContext; public ApplicationContext getApplication(){ applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml"); return applicationContext; } //根据主键id进行查询 @Test public void test() { ItemsMapper items = (ItemsMapper) getApplication().getBean("itemsMapper"); Items it = items.selectByPrimaryKey(1); System.out.println(it.toString()); } //自定义查询条件 @Test public void test1() { ItemsMapper itemsMapperems = (ItemsMapper) getApplication().getBean("itemsMapper"); ItemsExample itemsExample = new ItemsExample(); //通过criteria构造条件查询 ItemsExample.Criteria criteria = itemsExample.createCriteria(); criteria.andNameEqualTo("笔记本"); //可能返回多个记录 List items = itemsMapperems.selectByExample(itemsExample); System.out.println(items); } } 复制代码 均可以测试成功!! 对于其他的方法,在使用的时候,可以参考自动生成的源码进行测试,都是可以测试成功的! 逆向工程的使用极大的方便我们进行开发,作为程序员不需要过多的关注这个,我们进行了解基本的使用和用法即可。 其余的增删改除,可以进行测试,在不会使用的情况下,可以参考源码,源码是之前的前几章节的内容. https://www.cnblogs.com/Mrchengs/p/9851117.html
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信