mybatis逆向工程

mybatis逆向工程,第1张

概述什么是逆向工程? 就是我们可以根据数据库表,自动生成javabean,mapper接口和其对应的maaper.xml文件。 现有数据库ssm_curd以及相应的表tbl_emp和tbl_dept: 项

什么是逆向工程?

就是我们可以根据数据库表,自动生成javabean,mapper接口和其对应的maaper.xml文件。

现有数据库ssm_curd以及相应的表tbl_emp和tbl_dept:

项目的基本目录如下:

 主要的是配置文件,我们看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>    context ID="testtables" targetRuntime="MyBatis3">        commentGenerator>            <!-- 是否去除自动生成的注释 true:是 : false:否 -->            property name="suppressAllComments" value="true" />        </数据库连接的信息:驱动类、连接地址、用户名、密码 -->        jdbcConnection driverClass="com.MysqL.jdbc.Driver"            connectionURL="jdbc:MysqL://localhost:3306/ssm_curd" userID="root"            password="123456"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="forceBigDecimals"="false" >         targetProject:生成PO类的位置 javaModelGenerator targetPackage="com.gong.generate.bean"            targetProject=".\src" enableSubPackages:是否让schema作为包的后缀 ="enableSubPackages"/>             从数据库返回的值被清理前后的空格 ="trimstrings"javaModelGenerator targetProject:mapper映射文件生成的位置 sqlMapGenerator ="mapper"=".\conf"sqlMapGenerator targetPackage:mapper接口生成的位置 javaClIEntGenerator type="XMLMAPPER"            targetPackage="com.gong.generate.dao"             targetProjectjavaClIEntGenerator 指定数据库表 table tablename="tbl_emp" domainObjectname="Employee"         enableCountByExample="false" enableupdateByExample         enableDeleteByExample enableSelectByExample         selectByExamplequeryID="false"></table="tbl_dept"="Department">            context>>

我们慢慢来看:

>

ID为该配置文件里的标识,targetRuntime为MyBatis3。

        >

去掉生成文件中的注释。

        >

数据库连接配置

        >

配置POJO:javaModelGenerator ,具体位置:targetProject,具体包:targetPackage

        >

配置mapper.xml

        >

配置mapper.java也就是接口。

        >

指定数据库名称以及要生成的POJO的名称。后面的一些属性是为了不生成类似于EmployeeExample.java等example文件。

接下来是运行的java文件:Generatorsqlmap.java

import java.io.file; java.util.ArrayList; java.util.List; org.mybatis.generator.API.MyBatisGenerator; org.mybatis.generator.config.Configuration; org.mybatis.generator.config.xml.ConfigurationParser; org.mybatis.generator.internal.DefaultShellCallback;public class Generatorsqlmap {    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 =  DefaultShellCallback(overwrite);        MyBatisGenerator myBatisGenerator =  MyBatisGenerator(config,callback,warnings);        myBatisGenerator.generate(null);    }     static voID main(String[] args)  Exception {        try {            Generatorsqlmap generatorsqlmap =  Generatorsqlmap();            generatorsqlmap.generator();        } catch (Exception e) {            e.printstacktrace();        }            }}

我们只需要更改为自己配置文件的位置即可,运行它:控制台

 点击自己的项目,按F5进行刷新:

 

我们发现生成了相关的文件,我们看下其中的一些:

Employee.java

package com.gong.generate.bean; Employee {    private Integer empID;     String empname;     String gender;     String email;     Integer dID;    public Integer getEmpID() {        return empID;    }    voID setEmpID(Integer empID) {        this.empID = String getEmpname() {         empname;    }     setEmpname(String empname) {        this.empname = empname == null ?  : empname.trim();    }     String getGender() {         gender;    }     setGender(String gender) {        this.gender = gender ==  : gender.trim();    }     String getEmail() {         email;    }     setEmail(String email) {        this.email = email ==  : email.trim();    }     Integer getdID() {         dID;    }     setdID(Integer dID) {        this.dID = dID;    }}

发现数据库中的下划线命名字段会转换成java中驼峰命名的属性。

EmployeeMapper.java

 com.gong.generate.dao; com.gong.generate.bean.Employee;interface EmployeeMapper {    int deleteByPrimaryKey(Integer empID);     insert(Employee record);     insertSelective(Employee record);    Employee selectByPrimaryKey(Integer empID);     updateByPrimaryKeySelective(Employee record);     updateByPrimaryKey(Employee record);}

提供了一些默认的方法。

EmployeeMapper.xml

xml version="1.0" enCoding="UTF-8" DOCTYPE mapper PUBliC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" mapper namespace="com.gong.generate.dao.EmployeeMapper" >  resultMap ="BaseResultMap" type="com.gong.generate.bean.Employee" >    ID column="emp_ID" property="empID" jdbcType="INTEGER" />    result ="emp_name"="empname"="VARCHAR" ="gender"="CHAR" ="email"="d_ID"="dID"/>  resultMapsql ="Base_Column_List" >    emp_ID,emp_name,gender,email,d_ID  sqlselect ="selectByPrimaryKey" resultMap parameterType="java.lang.Integer"     select     include refID/>    from tbl_emp    where emp_ID = #{empID,jdbcType=INTEGER}  selectdelete ="deleteByPrimaryKey"    delete from tbl_emp    where emp_ID = #{empID,1)">deleteinsert ="insert"    insert into tbl_emp (emp_ID,d_ID)    values (#{empID,jdbcType=INTEGER},#{empname,jdbcType=VARCHAR},#{gender,jdbcType=CHAR},#{email,#{dID,jdbcType=INTEGER})  insert="insertSelective"    insert into tbl_emp    trim prefix="(" suffix=")" suffixOverrIDes="," >      if test="empID != null"         emp_ID,if="empname != null"         emp_name,1)">="gender != null"         gender,1)">="email != null"         email,1)">="dID != null"         d_ID,1)">trim="values ("        #{empID,1)">        #{empname,1)">        #{gender,1)">        #{email,1)">        #{dID,1)">update ="updateByPrimaryKeySelective"    update tbl_emp    set         emp_name = #{empname,1)">        gender = #{gender,1)">        email = #{email,1)">        d_ID = #{dID,1)">set    where emp_ID = #{empID,1)">update="updateByPrimaryKey"    update tbl_emp    set emp_name = #{empname,gender = #{gender,email = #{email,d_ID = #{dID,jdbcType=INTEGER}    where emp_ID = #{empID,1)">mapper>

对应的mapper.xml文件,至此mybatis逆向工程就完成了。

总结

以上是内存溢出为你收集整理的mybatis逆向工程全部内容,希望文章能够帮你解决mybatis逆向工程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1218982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存