当前位置: 首页 > news >正文

网站设计趋势/googlechrome浏览器

网站设计趋势,googlechrome浏览器,网页设计自学视频网站,javaweb网站开发教程一、什么是逆向工程? 简单点说,就是通过数据库中的单表,自动生成java代码。 Mybatis官方提供了逆向工程,可以针对单表自动生成mybatis代码(mapper.java\mapper.xml\po类) 企业中,逆向工程是个很…

一、什么是逆向工程?

      简单点说,就是通过数据库中的单表,自动生成java代码。

      Mybatis官方提供了逆向工程,可以针对单表自动生成mybatis代码(mapper.java\mapper.xml\po类)

      企业中,逆向工程是个很常用的工具,之前我们就学习了hibernate的逆向工程,比我们手动创建映射文件的配置信息方便很多,

二、下载逆向工程

      jar包下载 

            

            

 

三、创建java工程

      此步骤截图略,

 

四、添加jar包

      逆向工程jar包,mybatis-generator-core-1.3.2.jar,每个人版本不一样,这里不一定就完全相同

      数据库驱动包,使用的是mysql

            

 

五、创建核心代码

      点击进入jar包的docs目录下找到index.html来查询复制核心代码。

              

      点击index.html进入

              

      给出核心代码方便日后直接复制

  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);
复制代码
   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);
复制代码

 

六、创建generatorConfig.xml配置文件

      根据上面的核心代码,仔细看一下不难发现,其运行需要加载一个generatorConfig.xml配置文件,在index.html中也有该配置文件的模版。

                

      这个也比较清楚,下面有什么不懂的都有做出解释,但是我们不这样直接复制,我给出一份好的,有注释的,日后直接复制改点数据即可

                

                

      在我上面框出来的地方就是需要修改的地方,根据自己的实际情况来进行修改,并且这里的配置文件是将数据库中的user、orders、orderdetail、items这四张表进行逆向,配置文件中需要指定需要逆向生成的表的名称


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><context id="testTables" targetRuntime="MyBatis3"><commentGenerator><!-- 是否去除自动生成的注释 true:是 : false:否 --><property name="suppressAllComments" value="true" /></commentGenerator><!--数据库连接的信息:驱动类、连接地址、用户名、密码 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/test" userId="root"password="root"></jdbcConnection><!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" userId="yycg" password="yycg"> </jdbcConnection> --><!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --><javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- targetProject:生成PO类的位置 --><javaModelGenerator targetPackage="com.wuhao.mt.domain"targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /><!-- 从数据库返回的值被清理前后的空格 --><property name="trimStrings" value="true" /></javaModelGenerator><!-- targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage="com.wuhao.mt.mapper"targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.wuhao.mt.mapper" targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- 指定数据库表 --><table tableName="user"></table><table tableName="orders"></table><table tableName="orderdetail"></table><table tableName="items"></table></context>
</generatorConfiguration>

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><context id="testTables" targetRuntime="MyBatis3"><commentGenerator><!-- 是否去除自动生成的注释 true:是 : false:否 --><property name="suppressAllComments" value="true" /></commentGenerator><!--数据库连接的信息:驱动类、连接地址、用户名、密码 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/test" userId="root"password="root"></jdbcConnection><!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" userId="yycg" password="yycg"> </jdbcConnection> --><!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --><javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- targetProject:生成PO类的位置 --><javaModelGenerator targetPackage="com.wuhao.mt.domain"targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /><!-- 从数据库返回的值被清理前后的空格 --><property name="trimStrings" value="true" /></javaModelGenerator><!-- targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage="com.wuhao.mt.mapper"targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.wuhao.mt.mapper" targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- 指定数据库表 --><table tableName="user"></table><table tableName="orders"></table><table tableName="orderdetail"></table><table tableName="items"></table></context>
</generatorConfiguration>
复制代码

      注意核心代码中加载generatorConfig.xml的配置文件的位置需要写正确,根据你自己的存放位置进行相应的修改,并不是固定的。

 

七、目录结构

      完成核心代码和其配置文件之后的工程就成这样了,然后直接运行核心代码就会自动帮我们从数据库中指定的表生成mybatis的mapper类。

                

      运行Generator.java  

                

      

      这里需要注意一个问题,点击运行之后,就已经帮我们生成好了对应的类,但是我们需要手动刷新项目才看得见,有些人就会觉得看不见,以为没有生效,然后又第二次运行核心代码,这里就会出现一个很严重的问题,[Mapper.xml文件已经存在时,如果进行重新生成则mapper.xml文件时,内容不被覆盖而是进行内容追加,结果导致mybatis解析失败]

      解决办法:删除生成的所有类和mapper.xml,重新在运行一遍即可。

    

      生成之后的目录

                

      其他都不用说,说两个地方

        第一:mapper接口报错了,这里不用管,报的错的原因是缺少mybatis核心的jar包,和mapper接口中却用到了这些类,所以就会报错,

          解决:加入所需要jar包错误消失,但是我们不会这样做,因为这个项目就是用来生成mapper相关类的,加入jar包没什么用,多此一举,我们需要用的时候将其加入我们开发时的项目中,就不会在报错了。

        第二:生成的持久化对象中,多了一个xxxExample.java类,这个类是用来[构造复杂的筛选条件],通俗点讲就是[专门用来封装自定义查询条件],等会会介绍他的使用方法。

 

八、测试

      将我们逆向工程所生成的mapper相关的类和接口等东西都加入到我们开发的项目中来,进来实验,这里就不过多陈述了,不会的话,就看前几章节的mybatis的构建和使用

      目录

                

      这里我们将Items相关的类,都加入到与spring集成的项目中去,框起来的就是我们从逆向工程中获取到的。注意,逆向工程就是使用mapper方式进行开发,而不是dao方式

      测试,OrderMapperTest.java    

                


 //问题描述:查询出Items中name中有"记"字的记录,模糊查询,使用查询条件(xxxExample)//获取applicationContext.xml配置并加载ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");//获取ItemsMapper代码对象ItemsMapper im = (ItemsMapper) ac.getBean("itemsMapper");    //封装查询条件的对象在该类(ItemsExample)中,所以先构造该对象ItemsExample ie = new ItemsExample();//通过ItemsExample的对象获取封装查询条件的对象CriteriaCriteria c = ie.createCriteria();//构建查询条件,这里使用方法将其内部实现封装了,其实做的事情就是在//sql语句的where后面加入: and name like "%记%"c.andNameLike("%记%");//通过im将查询条件传送进去。List<Items> list = im.selectByExample(ie);    //查询出name为笔记本这条记录System.out.println(list.get(0).getName());

复制代码
        //问题描述:查询出Items中name中有"记"字的记录,模糊查询,使用查询条件(xxxExample)//获取applicationContext.xml配置并加载ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");//获取ItemsMapper代码对象ItemsMapper im = (ItemsMapper) ac.getBean("itemsMapper");    //封装查询条件的对象在该类(ItemsExample)中,所以先构造该对象ItemsExample ie = new ItemsExample();//通过ItemsExample的对象获取封装查询条件的对象CriteriaCriteria c = ie.createCriteria();//构建查询条件,这里使用方法将其内部实现封装了,其实做的事情就是在//sql语句的where后面加入: and name like "%记%"c.andNameLike("%记%");//通过im将查询条件传送进去。List<Items> list = im.selectByExample(ie);    //查询出name为笔记本这条记录System.out.println(list.get(0).getName());
复制代码

 

                                  

 

九、总结

      这里就将mybatis的逆向工程给讲完了,一点都不难,一步步实现下去即可,关键是后的多的那个xxxExample类可能大家有一点不理解,下一篇文章会将其讲解清楚,详细介绍一下这个类。这一节就学会如何创建逆向工程即可。 

转载于:https://www.cnblogs.com/surfcater/p/10225803.html

http://www.jmfq.cn/news/5171887.html

相关文章:

  • h5美食制作网站模板下载/平台推广文案
  • 郑州郑州网站建设河南做网站公司哪家好/英文谷歌优化
  • 合肥浦发建设集团网站/如何给公司网站做推广
  • 沙井网站推广/东莞企业网站排名
  • 东莞建设企业网站/有没有可以代理推广的平台
  • 如何自己做资源网站/seo在线优化工具
  • 互助网站开发/珠海网站建设
  • wordpress建设的是模板网站吗/百度推广是怎么做的
  • 网站建设方案云盘/注册域名后怎么建网站
  • 长沙南站建站/百度指数在线查询
  • 做网站接雕塑业务/网站推广优化教程
  • 一般做个网站多少钱/裤子seo标题优化关键词
  • 乐山网站建设/网络营销的基本方式有哪些
  • 南城网站建设公司咨询/正规seo大概多少钱
  • 小公司让我用织梦做网站/外贸网络营销
  • 带数据库的网站做/泉州seo按天计费
  • 小狗做爰网站/北京seo费用是多少
  • 高端网站设计培训机构/沈阳seo优化新势力
  • 唯品会网站建设数据安全分析/免费推广的app有哪些
  • 买什么样的主机(用来建网站的)支持下载/小程序推广平台
  • 广州网站建设怎么做/百度词条
  • 网站的推广方案有哪些/网址生成短链接
  • 网站外包维护一年多少钱/网站建设合同
  • 怎么做公司网站需要什么科目/建站系统
  • 网站建设类的职位/百度竞价一个月5000够吗
  • 目前国内有哪些网站做家具回收/seo技术教程
  • 威县网站建设代理价格/广州seo优化公司排名
  • 开封市网站建设/东莞网站设计
  • 网站开发移动端多少钱/seo推广专员
  • 营销网点号是什么意思/企业网站seo排名优化