zoukankan      html  css  js  c++  java
  • 使用逆向工程进行快速开发

    逆向工程的使用

      表(数据库)→实体类Student、StudentMapper.java、studentMapper.xml
    1.添加jar包

    mybatis-3.5.1.jar
    mybatis-generator-core-1.3.5.jar
    ojdbc7-12.1.0.2.jar

    2.xml模板文件(修改生成路径、表名)

    srcgenerator.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>
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!--
                     suppressAllComments属性值:
                         true:自动生成实体类、SQL映射文件时没有注释
                         true:自动生成实体类、SQL映射文件,并附有注释
                   -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
    
    
        <!-- 数据库连接信息 -->
        <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
                        connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:mldn"
                        userId="scott"  password="tiger">
        </jdbcConnection>
        <!--
                  forceBigDecimals属性值:
                      true:把数据表中的DECIMAL和NUMERIC类型,
      解析为JAVA代码中的java.math.BigDecimal类型
                      false(默认):把数据表中的DECIMAL和NUMERIC类型,
      解析为解析为JAVA代码中的Integer类型
              -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <!--
               targetProject属性值:实体类的生成位置
               targetPackage属性值:实体类所在包的路径
           -->
        <javaModelGenerator targetPackage="org.myy.entity"
                            targetProject=".src">
            <!-- trimStrings属性值:
                      true:对数据库的查询结果进行trim操作
                      false(默认):不进行trim操作
                    -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!--
               targetProject属性值:SQL映射文件的生成位置
               targetPackage属性值:SQL映射文件所在包的路径
           -->
        <sqlMapGenerator targetPackage="org.myy.mapper"
                         targetProject=".src">
        </sqlMapGenerator>
        <!-- 生成动态代理的接口  -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="org.myy.mapper" targetProject=".src">
        </javaClientGenerator>
    
        <!-- 指定数据库表  -->
        <table tableName="Studen t1"> </table>
        <table tableName="studentCard"> </table>
        <table tableName="studentClass"> </table>
    </context>
    </generatorConfiguration>

    3.根据java模板类 一键生成

    表(数据库)→实体类Student、Mapper接口StudentMapper.java、studentMapper.xml

    4.如何使用

       增加mybatis配置文件:conf.xml等

    对于like模糊查询,逆向工程需要在传值时,写入criteria.andStunameLike("%z%");

    srcorgmyy estTestGeneratorDemo.java

    package org.myy.test;
    
    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.myy.entity.Student1;
    import org.myy.entity.Student1Example;
    import org.myy.mapper.Student1Mapper;
    
    import java.io.IOException;
    import java.io.Reader;
    import java.util.List;
    
    public class TestGeneratorDemo {
        public static void main(String[] args) throws IOException {
            // Connection - SqlSession操作Mybatis
            // conf.xml->reader
            Reader reader = Resources.getResourceAsReader("conf.xml");
            // reader->sqlSession
            // 可以通过build的第二参数 指定数据库环境
            SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader, "devOracle");
            SqlSession session = sessionFactory.openSession();
    
            Student1Mapper mapper = session.getMapper(Student1Mapper.class);
            //Example:查询条件
    
            //where (xx=xx and xx=xx) or (xx=xx and xx=xx)
    
    
            //where stuname like '%z%'
            Student1Example student1Example=new Student1Example();
            Student1Example.Criteria criteria=student1Example.createCriteria();
            //criteria.andStunoBetween((short)1, (short) 4);
            criteria.andStunameLike("%z%");
    
            //or
    
            //stuno<=4 and graname like '%d%'
            Student1Example.Criteria criteria1=student1Example.createCriteria();
            criteria1.andStunoLessThanOrEqualTo((short) 4);//<=
            criteria1.andGranameLike("%d%");
    
            //quert by Criteria,QBC
            student1Example.or(criteria1);
    
            List<Student1> student1s = mapper.selectByExample(student1Example);
            System.out.println(student1s);
            session.close();
    
        }
    }
  • 相关阅读:
    C#Excel上传批量导入sqlserver
    RadioButtonList 和CheckBoxList根据后天数据库的值加载时选中其选项
    vue增强第三方UI库(element-ui)
    Vue项目中简易演示axios解耦
    Vue 权限控制 使用自定义指令 代替v-if
    实现水平居中垂直居中的案例
    Sublime Text3高效开发之编写代码块(snippet)
    CSS:布局篇_用flex布局实现两边顶宽中间自适应(圣杯布局&双飞翼布局)
    CSS:盒子_每个元素都有两个盒子(《CSS世界》笔记-块级元素)
    CSS:布局篇_两边顶宽中间自适应(圣杯布局&双飞翼布局)
  • 原文地址:https://www.cnblogs.com/mayouyou/p/13273178.html
Copyright © 2011-2022 走看看