文档章节

mybatis-generator配置

trayvon
 trayvon
发布于 2017/02/17 09:03
字数 4297
阅读 247
收藏 1
点赞 0
评论 0

properties

首先所有的元素都在generatorConfiguration中,下面就首先来看一下generatorConfiguration的子元素。

 <properties url="file:///F:/archive/fun/generator/generatorConfig.properties"/>
<properties resource="generatorConfig.properties"/>

可以用于加载配置项或者配置文件,在整个配置文件中就可以使用${propertyKey}的方式来引用配置项。resource和url各个中随便选一个,并且只能选择一个。 resource:使用resource,MBG从classpath开始找,比如: generatorConfig.properties
url:使用URL的方式,比如: file:///F:/generate/generatorConfig.properties http://localhost/generate/generatorConfig.properties

注意:properties元素最好放在第一个,否则可能会出一下莫名其妙的错误。最好使用url配置绝对路径,直接通过命令行使用resource的时候classpath不好指定。在generatorConfiguration中最多只能有一个properties。 当然也可以变通一下运行类把包当做库,通过java -cp 而不是java -jar来,例如:

java -cp .;mybatis-generator-core-1.3.2.jar org.mybati
s.generator.api.ShellRunner -configfile mybatis.xml -overwrite

其中.(;(分号)表示分割符,分割不同的classpath目录)表示的是把当前目录(运行命令的目录)添加到classpath中。

classPathEntry

<classPathEntry location="mysql-connector-java-5.1.21.jar" />

classPathEntry使用来指定数据库驱动包的配置,可以使用相对路径也可以使用绝对路径。在generatorConfiguration中可以有0到多个classPathEntry。

context元素

在generatorConfiguration中至少有1个context元素,context元素非常重要,它指定连接哪一个数据库,包括url,数据库名,用户名,密码,怎样生成表,怎样生成mapper配置文件,怎样生成mapper接口,怎样生成bean等。下面就来看一下context的元素。

<context 
    id="DB2Tables" 
    targetRuntime="MyBatis3"
    defaultModelType="conditional"
    >

context的属性有4个,其中id是必须的。 id:id主要用来表示context的因为context可以有多个嘛。

targetRuntime:targetRuntime主要是用来控制怎样生成Mapper接口,mapper配置文件,java的bean的属性。有4个可选项,分别是MyBatis3、MyBatis3Simple、Ibatis2Java2、Ibatis2Java5,默认的是使用的MyBatis3。这里主要介绍一下MyBatis3、MyBatis3Simple因为这2个是兼容mybatis3以上的版本,其他2个是兼容ibatis2.2以上的版本。 MyBatis3、MyBatis3Simple倒是支持mybatis3以上版本,Java1.5以上的版本,支持泛型,支持注解。MyBatis3和MyBatis3Simple的区别主要是:MyBatis3Simple生成的主要是简单的CRUD,而MyBatis3生成的是复杂一些的动态where语句。

defaultModelType:context的defaultModelType属性是用来指定怎样把表对应生成bean,defaultModelType扩展之org.mybatis.generator.api.IntrospectedTable。可选项有: flat、conditional、hierarchical,默认是conditional。 flat模式是为一张表生成一个bean, hierarchical模式是为主键生成一个bean,BLOB类型的列生成一个bean,剩下的列生成一个bean,BLOB生成的bean和剩下列生成的bean是继承之主键生成的bean。 conditional模式和hierarchical模式一样,区别是conditional模式会把只有一个field bean合并到父类中。

introspectedColumnImpl:introspectedColumnImpl属性是用来修改生成代码时计算列信息的方式,扩展之org.mybatis.generator.api.IntrospectedColumn类。这个基本很少用到,主要是持有表列的元数据(metadata)

context元素的子元素

property(0..N) plugin(0..N) commentGenerator(0..1) connectionFactory和jdbcConnection(2选1必须有1个) javaTypeResolver(0..1) javaModelGenerator(1) sqlMapGenerator(0..1) javaClientGenerator(0..1) table(1..N)

connectionFactory 与 jdbcConnection

connectionFactory与jdbcConnection必须2选1,主要是用来配置数据库连接的。 jdbcConnection:

<jdbcConnection driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://127.0.0.1:3306/practice"
        userId="tim"
        password="123456">
    </jdbcConnection>

connectionFactory:

<connectionFactory>
  <property name="driverClass" value="com.mysql.jdbc.Driver"/>
  <property name="connectionURL" value="jdbc:mysql://127.0.0.1:3306/practice"/>
  <property name="userId" value="tim"/>
  <property name="password" value="123456"/>
</connectionFactory>

javaModelGenerator

javaModelGenerator主要用来控制怎样生成bean(model)的元素。 javaModelGenerator元素只有两个属性,都是必填的 targetPackage:生成实体类存放的包名,一般就是放在该包下。实际还会受到其他配置的影响 targetProject:指定目标项目路径,可以使用相对路径或者绝对路径。

javaModelGenerator元素property子元素:

constructorBased:该属性只对MyBatis3有效,如果true就会使用构造方法入参,如果false就会使用setter方式。默认为false。

enableSubPackages:如果true,MBG会根据catalog和schema来生成子包。如果false就会直接用targetPackage属性。默认为false。

immutable:该属性用来配置实体类属性是否可变,如果设置为true,那么 constructorBased不管设置成什么,都会使用构造方法入参,并且不会生成setter方法。如果为false,实体类属性就可以改变。默认为false。

rootClass:设置所有实体类的基类。如果设置,需要使用类的全限定名称。并且如果MBG能够加载rootClass,那么MBG不会覆盖和父类中完全匹配的属性。匹配规则: 属性名完全相同 属性类型相同 属性有getter方法 属性有setter方法

trimStrings:是否对数据库查询结果进行trim操作,如果设置为true就会生成下面模式的 setter:

public void setUsername(String username) {
    this.username = username == null ? null : username.trim();
}
<javaModelGenerator targetPackage="cn.freemethod.dao.model" targetProject="src">
    <property name="enableSubPackages" value="true" />
    <property name="trimStrings" value="false" />
    <property name="constructorBased" value="false" />
    <property name="immutable" value="false" />
    <!-- <property name="rootClass" value="cn.freemethod.dao.model.Base" /> -->
</javaModelGenerator>

sqlMapGenerator

sqlMapGenerator是用来控制生成sqlMapper的元素,最多配置一个。 但是如果targetRuntime配置为iBATIS2,该元素必须配置一个。 如果targetRuntime配置为MyBatis3并且javaClientGenerator需要XML时,必须配置一个。 sqlMapGenerator元素有两个必填属性:

targetPackage:生成实体类存放的包名,一般就是放在该包下 targetProject:指定目标项目路径,可以使用相对路径或者绝对路径

sqlMapGenerator元素支持一个property子元素: enableSubPackages:如果true,MBG会根据catalog和schema来生成子包。如果false就会直接用targetPackage属性。默认为false。

<sqlMapGenerator targetPackage="mapper"  targetProject="src">
  <property name="enableSubPackages" value="true" />
</sqlMapGenerator>

javaClientGenerator

javaClientGenerator是用来控制生成Mapper接口的元素,javaClientGenerator元素是可选,最多配置一个。如果不配置该元素,就不会生成Mapper接口。

javaClientGenerator元素有3个必选属性:

type:指定Mapper接口生成器,用户可以自定义实现,指定的type必须要继承org.mybatis.generator.codegen.AbstractJavaClientGenerator类,必选有一个默认的构造方法。该属性提供了以下预定的代码生成器,首先根据context的targetRuntime分成三类: MyBatis3: ANNOTATEDMAPPER:基于注解的Mapper接口,不会有对应的XML映射文件 MIXEDMAPPER:XML和注解的混合形式,(上面这种情况中的)SqlProvider注解方法会被XML替代。 XMLMAPPER:所有的方法都在XML中,接口调用依赖XML文件。 MyBatis3Simple: ANNOTATEDMAPPER:基于注解的Mapper接口,不会有对应的XML映射文件 XMLMAPPER:所有的方法都在XML中,接口调用依赖XML文件。 Ibatis2Java2或Ibatis2Java5: IBATIS:生成的对象符合iBATIS的DAO框架(不建议使用)。 GENERIC-CI:生成的对象将只依赖于SqlMapClient,通过构造方法注入。 GENERIC-SI:生成的对象将只依赖于SqlMapClient,通过setter方法注入。 SPRING:生成的对象符合Spring的DAO接口

targetPackage:生成实体类存放的包名,一般就是放在该包下 targetProject:可以使用相对路径或者绝对路径。

javaClientGenerator元素还有一个可选属性: implementationPackage:如果指定了该属性,实现类就会生成在这个包中

javaClientGenerator元素支持property子元素设置的属性:

enableSubPackages:如果true,MBG会根据catalog和schema来生成子包。如果false就会直接用targetPackage属性。默认为false。 exampleMethodVisibility:指定生成的Example方法的可见性,默认public methodNameCalculator:设置计算方法名的类必须实现org.mybatis.generator.api.DAOMethodNameCalculator接口,在 MyBatis3配置中被忽略。 useLegacyBuilder:客户端是否使用SqlBuilder,默认false rootInterface:用于指定一个所有生成的接口都继承的父接口,这个值可以通过table配置的rootInterface属性覆盖。这个属性对于通用Mapper来说,可以让生成的所有接口都继承该接口。

<javaClientGenerator type="XMLMAPPER" targetPackage="cn.freemethod.dao"  targetProject="src">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

table

table至少要有一个,table都没有你玩个啥玩意啊,所以要求至少有一个合情合理。table主要是配置,table元素有一个必选属性: tableName:指定要生成的表名,可以使用SQL通配符匹配多个表。 如果要生成全部的表,可以配置:

<table tableName="%" /> table元素的可选属性:

schema:数据库的schema,可以使用SQL通配符匹配。如果设置了该值,生成SQL的表名会变成如schema.tableName的形式。 catalog:数据库的catalog,如果设置了该值,生成SQL的表名会变成如catalog.tableName的形式。 alias:如果指定,这个值会用在生成的select查询SQL的表的别名和列名上。 列名会被别名为 alias_actualColumnName(别名_实际列名) 这种模式。 domainObjectName:生成对象的基本名称。如果没有指定,MBG会自动根据表名来生成名称 enableInsert(默认true):指定是否生成insert语句; enableSelectByPrimaryKey(默认true):指定是否生成按照主键查询对象的语句(就是getById或get); enableSelectByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询语句; enableUpdateByPrimaryKey(默认true):指定是否生成按照主键修改对象的语句(即update); enableDeleteByPrimaryKey(默认true):指定是否生成按照主键删除对象的语句(即delete); enableDeleteByExample(默认true):MyBatis3Simple为false,指定是否生成动态删除语句; enableCountByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询总条数语句(用于分页的总条数查询); enableUpdateByExample(默认true):MyBatis3Simple为false,指定是否生成动态修改语句(只修改对象中不为空的属性); selectByPrimaryKeyQueryId: selectByExampleQueryId: modelType:和context的defaultModelType含义一样,这里可以针对表进行配置,这里的配置会覆盖context的defaultModelType配置。 escapeWildcards:这个属性表示当查询列,是否对schema和表名中的SQL通配符 ('_' and '%') 进行转义。 对于某些驱动当schema或表名中包含SQL通配符时(例如,一个表名是MY_TABLE,有一些驱动需要将下划线进行转义)是必须的。默认值是false。 delimitIdentifiers:是否给标识符增加分隔符,默认false。当catalog,schema或tableName中包含空白时,默认为true。 delimitAllColumns:是否对所有列添加分隔符,默认false。

table元素包含多个可选的property子元素:

constructorBased:和javaModelGenerator中的属性含义一样。 ignoreQualifiersAtRuntime:生成的SQL中的表名将不会包含schema和catalog前缀。 immutable:和javaModelGenerator中的属性含义一样。 modelOnly:此属性用于配置是否为表只生成实体类。如果设置为true就不会有Mapper接口如果配置了sqlMapGenerator,并且modelOnly为true,那么XML映射文件中只有实体对象的映射元素。如果为true还会覆盖属性中的enableXXX方法,将不会生成任何CRUD方法。 rootClass:和javaModelGenerator中的属性含义一样。 rootInterface:和javaClientGenerator中的属性含义一样。 runtimeCatalog:运行时的catalog,当生成表和运行环境的表的catalog不一样的时候可以使用该属性进行配置。 runtimeSchema:运行时的schema,当生成表和运行环境的表的schema不一样的时候可以使用该属性进行配置。 runtimeTableName:运行时的tableName,当生成表和运行环境的表的tableName不一样的时候可以使用该属性进行配置。 selectAllOrderByClause:该属性值会追加到selectAll方法后的SQL中,会直接跟order by拼接后添加到SQL末尾。 useActualColumnNames:如果设置为true,那么MBG会使用从数据库元数据获取的列名作为生成的实体对象的属性。 如果为false(默认值),MGB将会尝试将返回的名称转换为驼峰形式。 在这两种情况下,可以通过 元素显示指定,在这种情况下将会忽略这个(useActualColumnNames)属性。 useColumnIndexes:如果是true,MBG生成resultMaps的时候会使用列的索引,而不是结果中列名的顺序。 useCompoundPropertyNames:如果是true,那么MBG生成属性名的时候会将列名和列备注接起来. 这对于那些通过第四代语言自动生成列(例如:FLD22237),但是备注包含有用信息(例如:"customer id")的数据库来说很有用. 在这种情况下,MBG会生成属性名FLD2237_CustomerId。

table还可以包含包含以下子元素:

generatedKey>(0个或1个) columnRenamingRule(0个或1个) columnOverride(0个或多个) ignoreColumn(0个或多个)

generatedKey

这个元素用来指定自动生成主键的属性(identity字段或者sequences序列)。如果指定这个元素,MBG在生成insert的SQL映射文件中插入一个selectKey元素。 这个元素包含下面两个必选属性:

column:生成列的列名。 sqlStatement:将返回新值的 SQL 语句。如果这是一个identity列,您可以使用其中一个预定义的的特殊值。预定义值如下: Cloudscape, DB2, DB2_MF, Derby, HSQLDB, Informix, MySql, SqlServer, SYBASE, JDBC:这会配置MBG使用MyBatis3支持的JDBC标准的生成key来生成代码。 这是一个独立于数据库获取标识列中的值的方法。 重要:只有当目标运行为MyBatis3时才会产生正确的代码。 如果与iBATIS2一起使用目标运行时会产生运行时错误的代码。

这个元素还包含两个可选属性:

identity:当设置为true时,该列会被标记为identity列, 并且<selectKey>元素会被插入在insert后面。 当设置为false时,<selectKey>会插入到insert之前(通常是序列)。重要: 即使您type属性指定为post,您仍然需要为identity列将该参数设置为true。 这将标志MBG从插入列表中删除该列。默认值是false。 type:type=post and identity=true的时候生成的<selectKey>中的order=AFTER,当type=pre的时候,identity只能为false,生成的<selectKey>中的order=BEFORE。可以这么理解,自动增长的列只有插入到数据库后才能得到ID,所以是AFTER,使用序列时,只有先获取序列之后,才能插入数据库,所以是BEFORE。

commentGenerator

<commentGenerator >  
    <property name="suppressAllComments" value="false"/><!-- 是否取消注释 -->  
    <property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳--> 
</commentGenerator>  

有一个type属性可以指定实现类,指定的type必须实现接口 org.mybatis.generator.api.CommentGenerator,还可以通过dateFormat指定生成日期的格式,使用的是java.text.SimpleDateFormat类。

javaTypeResolver

 <!-- 类型转换 -->  
<javaTypeResolver>  
    <property name="forceBigDecimals" value="false"/>  
</javaTypeResolver>  

有一个type属性可以指定实现类,指定的type必须实现接口 org.mybatis.generator.api.JavaTypeResolver。 javaTypeResolver只有一个property就是forceBigDecimals。forceBigDecimals主要是针对表的decimal和numeric这2个定点数类型的时候,如果forceBigDecimals为true,则只要列的类型是decimal或者numeric就使用BigDecimal类。

如果是false就根据decimal或者numeric的precision和scale决定: 这里就发现咬文嚼字有时候还是有必要的,我们以MySQL为例来看一看: 在MySQL中numeric是继承了decimal的,所以来看decimal就可以了,假设定义一个字段: salary DECIMAL(5,2)根据MySQL的定义其中salary的precision就为5,scale就为2。可以参考MySQL的官方文档12.2.2章节。这里总结一下precision的意思就是字段的长度,scale就是小数点的位数。所以salary的取值范围是-999.99到999.99

接着看当javaTypeResolver只有一个property就是forceBigDecimals的值为FALSE的时候 decimal和numeric是怎样转换的: scale>0 || precision > 18 使用 java.math.BigDecimal scale=0 && precision >= 10 && precision <= 18 使用 java.lang.Long scale=0 && precision >= 5 && precision <= 9 使用 java.lang.Integer scale=0 && precision < 5 使用 java.lang.Short

context元素的属性

autoDelimitKeywords beginningDelimiter endingDelimiter javaFileEncoding javaFormatter xmlFormatter

autoDelimitKeywords:当表名或者字段名为SQL关键字的时候,可以设置该属性为true,MBG会自动给表名或字段名添加分隔符,默认的分隔符为"。 因为MySQL的分隔符是反引号,所以就需要beginningDelimiter和endingDelimiter来兼容不同的数据库了。 所以如果MySQL的表名或者字段名使用了关键字就可以做如下的配置:

<property name="autoDelimitKeywords" value="true"/>
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>  

感觉是不是很有用,如果你真的已经用到了上面的配置了,就应该和设计数据的同学好好交流学习一下了。重点是问一句:设计的什么玩意儿?

javaFileEncoding:设置要使用的Java文件的编码,默认使用当前平台的编码,只有当生产的编码需要特殊指定时才需要使用,一般用不到。

javaFormatter:指定格式化Java代码的类 xmlFormatter:指定格式化mapper配置文件的类

参考

项目源码 编译好的工程 mybatis-generator扩展 context元素 javaTypeResolver commentGenerator javaModelGenerator sqlMapGenerator javaClientGenerator table context

附录 配置实例

附录一个配置实例,通过简单的修改数据库的配置的table配置就可以使用的简单配置

<?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>

 <!-- <properties url="file:///F:/archive/fun/generator/generatorConfig.properties"/> -->
 <!--  <properties resource="generatorConfig.properties"/>  -->

  <!-- 驱动程序位置,使用相对路径和mybatis-generator在同一个jar包下 -->
  <classPathEntry location="mysql-connector-java-5.1.21.jar" />
<!-- defaultModelType="flat" 一张表对应一个类 -->
  <context 
    id="DB2Tables" 
    targetRuntime="MyBatis3"
    defaultModelType="conditional"
    >
    <!-- 数据库连接配置,url,port,数据库,用户名密码 -->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://127.0.0.1:3306/practice"
        userId="user_name"
        password="password">
    </jdbcConnection>

    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>

<!-- bean -->
    <javaModelGenerator targetPackage="cn.freemethod.dao.model" targetProject="src">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="false" />
    </javaModelGenerator>

<!-- mapper -->
    <sqlMapGenerator targetPackage="mapper"  targetProject="src">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>

<!-- dao XMLMAPPER使用xml文件配置 ANNOTATEDMAPPER使用annotation方式 MIXEDMAPPER 动态sql使用xml,其它使用annotation方式-->

    <javaClientGenerator type="XMLMAPPER" targetPackage="cn.freemethod.dao"  targetProject="src">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

 <!-- 
     <javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="cn.freemethod.dao"  targetProject="src">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>
 -->
<!--生成对应表及类名-->
<!-- 
    <table schema="mybatis" tableName="user" domainObjectName="User" >
    <property name="useActualColumnNames" value="true"/>
      <generatedKey column="ID" sqlStatement="DB2" identity="true" />
      <columnOverride column="DATE_FIELD" property="startDate" />
      <ignoreColumn column="FRED" /> 
      <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /> 
    </table>
-->
    <table 
        schema="db_name" 
        tableName="user" 
        domainObjectName="User"
        enableCountByExample="false"
        enableUpdateByExample="false"
        enableDeleteByExample="false" 
        enableSelectByExample="false" 
        selectByExampleQueryId="false" >
    </table>
  
<!--     <table 
        schema="practice"
        tableName="user_auth" 
        domainObjectName="UserAuth" 
        enableCountByExample="false"
        enableUpdateByExample="false"
        enableDeleteByExample="false" 
        enableSelectByExample="false" 
        selectByExampleQueryId="false">
    </table>
 -->
  </context>
</generatorConfiguration>

© 著作权归作者所有

共有 人打赏支持
trayvon
粉丝 14
博文 118
码字总数 175521
作品 1
程序员
Mybatis Generator使用

资源地址: MyBatis项目地址:http://mybatis.github.io/ MyBatis中文使用文档:http://mybatis.github.io/mybatis-3/zh/index.html MyBatis Generator使用文档:http://mybatis.github.io/......

boonya ⋅ 2016/07/28 ⋅ 1

MyBatis使用Generator自动生成代码

MyBatis使用Generator自动生成代码 MyBatis中,可以使用Generator自动生成代码,包括DAO层、 MODEL层 、MAPPING SQL映射文件。 第一步:...

洋哥6 ⋅ 2014/03/28 ⋅ 0

MyBatis Generator介绍目录

1.MyBatis Generator介绍 2.MyBatis Generator新增功能 3.MyBatis Generator 快速入门指南 4.运行 MyBatis Generator 5.运行 MyBatis Generator 后的任务 6.Migrating from Ibator 7.Migrat......

foxeye ⋅ 2015/08/11 ⋅ 1

Mybatis插件生成逆向工程

Mybatis插件在Idea生成逆向工程 mybatis-generator-maven-plugin 在POM文件中引入插件 mybatis-generator-maven-plugin 2.配置generatorConfig.xml 在resources文件夹下面新建一个xml文件,加...

Leon丶l ⋅ 2017/12/12 ⋅ 0

MyBatis Generator 配置文件自动生成

官网:http://mybatis.github.io/generator/index.html 项目目录结构 添加Maven插件(pom.xml) 配置Maven执行命令 配置MyBatis GeneratorXML generatorConfig.xml init.properties 执行运行......

MLeo ⋅ 2015/10/28 ⋅ 0

备忘:mybatis 3的使用记录

  这是一篇记录。mybatis是一个部分模仿ORM的framework。是一个介于ORM和原始JDBC的框架。既可以提供ORM的操作对象的特性,又能从详细地控制最终的SQL。达到一个平衡。我们还是得写sql,同...

mikelij ⋅ 2014/09/06 ⋅ 0

Mybatis 实战教程 代码生成工具的使用

代码生成工具的使用 Mybatis 应用程序,需要大量的配置文件,对于一个成百上千的数据库表来说,完全手工配置,这是一个很恐怖的工作量. 所以 Mybatis 官方也推出了一个 Mybatis 代码生成工具...

steven ⋅ 2016/11/16 ⋅ 0

详细讲解Maven插件MyBatis-Generator以及如何修改源码

1、常用使用方式: mybatis-generator有三种用法:命令行、eclipse插件、maven插件。个人觉得maven插件最方便,可以在eclipse/intellij idea等ide上可以通用。 命令行: java -jar mybatis-...

woter ⋅ 2016/09/28 ⋅ 0

MyBatis_Generator 生成 Dto、Dao、Mapping

虽然MyBatis很方便,但是想要手写全部的mapper还是很累人的,好在MyBatis官方推出了自动化工具,可以根据数据库和定义好的配置直接生成DAO层及以下的全部代码,非常方便. 需要注意的是,虽然自动化...

JackMo2015 ⋅ 2016/12/05 ⋅ 0

笨笨龍/mybatis-generator

使用说明 一、工具介绍 本工具可以通过读取固定PDM文件,获取数据库中相应列名对应的中文名称,然后在生成实体类的使用添加到相应字段上。 二、使用方法 导入项目到Eclipse中。 配置Maven打包...

笨笨龍 ⋅ 2016/09/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

收集自网络的wordpress 分页导航的代码教程(全网最全版)

wordpress 分页导航是用来切换文章的一个功能,添加了 wordpress 分页导航后,用户即可自由到达指定的页面数浏览分类文章,而这样的一个很简单功能却有很多朋友在用插件:WP-PageNavi,插件的...

Rhymo-Wu ⋅ 38分钟前 ⋅ 0

微服务 WildFly Swarm 入门

Hello World 就像前面章节中的其他框架一样,我们希望添加一些基本的 Hello-world 功能,然后在其上逐步添加更多的功能。让我们从在我们的项目中创建一个 HolaResources 开始。您可以使用您的...

woshixin ⋅ 45分钟前 ⋅ 0

Maven的安装和Eclipse的配置

1. 下载Maven 下载地址 2. 解压压缩包,放到自己习惯的硬盘中 此处我将其放到了 D:\Tools 目录下。 3. 配置环境变量 右键此电脑 -> 属性 -> 高级系统设置 -> 环境变量。 在系统变量中新建,变...

影狼 ⋅ 53分钟前 ⋅ 0

python pip使用国内镜像的方法

国内源 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大学:http://......

良言 ⋅ 53分钟前 ⋅ 0

对于url变化的spa应该如何使用微信jssdk

使用vue单页面碰上微信jssdk config验证失败的坑。第一次成功 之后切换页面全部失败,找到了解决方法,第一次验证成功后保存验证信息 切换页面时验证信息直接拿来用,加一个wx.error() 失败时...

孙冠峰 ⋅ 58分钟前 ⋅ 0

Spring Cloud Gateway 一般集成

SCF发布,带来很多新东西,不过少了点教程,打开方式又和以前的不一样,比如这个SCG,压根就没有入门指导,所以这里写一个,以备后用。 一、集成 pom.xml <dependency> <groupI...

kut ⋅ 今天 ⋅ 0

建造模式

《JAVA与模式》之建造模式

Cobbage ⋅ 今天 ⋅ 0

WePY框架开发的小程序如何在微信web开发者工具中运行起来

一、首先需要安装node.js,安装步骤如下: 首先下载安装包 https://nodejs.org/en/download/ 点击下载相应的zip版本 然后将文件夹解压到任意目录 比如我这里解压到了:C:\Program Files\node...

Helios51 ⋅ 今天 ⋅ 0

使用EnumSet 代替位域(32)

1、位域(Bit field):使用or 运算将几个常量合并到一个集合中 位操作,可以有效地执行 AND 、OR 这样的位操作 但是 位域比int 常量枚举缺点更多 2、java.util 包里面的EnumSet 类是有效的替...

职业搬砖20年 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部