MyBatis-19MyBatis代码生成器-XML配置详解
- 概述
- XML文件头
- 根节点generatorConfiguration及三个子元素(properties、classPathEntry、context)
- properties子元素 (0…1)
- classPathEntry子元素 (0…N)
- context子元素 (1…N)
- 深入了解context元素
- context 可选属性
- context 子元素
- property (0..N)
- plugin (0..N)
- commentGenerator (0 or 1)
- jdbcConnection (1 Required)
- javaTypeResolver (0 or 1)
- javaModelGenerator (1 Required)
- sqlMapGenerator (0 or 1)
- javaClientGenerator (0 or 1)
- table (1..N)
- 使用心得
- demo
概述
MyBatis-17MyBatis代码生成器(逆向工程)MBG使用
MyBatis-18MyBatis代码生成器-Example讲解
通过前两篇的实践后,我们来梳理下理论知识。
MBG拥有丰富的配置,以XML形式的标签和属性来实现。
XML文件头
首先按照MBG的要求添加XML的文件头
<?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">
这个文件头中的mybatis-generator-config_1_0.dtd
用于定义该配置文件中所有标签和属性的用法及限制。
根节点generatorConfiguration及三个子元素(properties、classPathEntry、context)
<generatorConfiguration><!-- 配置内容 -->
</generatorConfiguration>
文件头以及根节点是MBG必备的基本信息,中间是MBG的自定义配置部分。
根元素为<generatorConfiguration>
,包含子元素(按照严格的顺序):<properties>
(0或一个),<classPathEntry>
(0或多个),<context>
(1或多个);
properties子元素 (0…1)
<properties>
,指定外部的属性文件,然后在配置中就可以通过${property}来引用属性文件中的属性值了. 一般配置数据库连接较为常见。
属性可以通过resource或者url来指定,只能使用其中一个属性来执行,同时使用会报错。
resource:指定classpath下的属性文件, 类似
com/artisan/db.properties
这样的属性值url:指定文件系统上的特定位置,一般通过file协议来加载指定路径位置的属性文件,如:
<properties url="file:///xxx/jdbc.properties"/>
classPathEntry子元素 (0…N)
classPathEntry元素,可以配置多个,也可以不配。 一般来指定驱动路径.属性location,来指定jdbc驱动包的位置.如果将jar包放入了classpath中,就不用设置这个属性了.
这个标签还可以用在javaModelgenerator,通过使用这种方式指定rootClass属性配置类所在的jar包
context子元素 (1…N)
context元素:用于指定一组对象的环境.子元素用于指定连接到的数据库,要生成的对象的类型和要处理的数据库中的表.该元素只有一个必选属性id,来进行唯一标识.
深入了解context元素
context 可选属性
- id 唯一标识
- defaultModelType:设置MBG如何生成实体类.
conditional 默认值,不会生成单独的Blob实体类,但是如果有联合主键,会生成一个主键实体类. 和hierarchical类似,如果一个表的主键只有一个字段,那么不回位该字段生成单独的实体类,而是会将该字段合并到基本实体类中。
2. flat,该模型只为每张表生成一个实体类,这个实体类包含表中所有的字段,这种模型最简单,推荐使用
hierarchical,如果有联合主键,会生成单独的主键实体类,如果有Blob字段,会生成单独的Blob实体类,然后为所有的其他字段另外生成一个单独的实体类,MBG会在所有生成的实体类之间维护一个继承关系。
- targetRuntime :这个属性用于指定生成代码的运行时目标
- MyBatis3 : 输出对象兼容MyBatis 3.0或更高版本,兼容JSE 5.0或更高版本的对象,包含泛型和注解.会生成 by example这类动态查询方法.
- MyBatis3Simple: 与上面的MyBatis3类似,但是不会生成by example`一类方法,只有少量的动态SQL
context 子元素
这些子标签有严格的配置顺序
1. property(0个或者多个)
2. plugin(0个或者多个)
3. commentGenerator(0个或者1个)
4. jdbcConnection(1个)
5. javaTypeResolver(0个或者1个)
6. javaModelGenerator(1个)
7. sqlMapGenerator(0个或者1个)
8. javaClientGenerator(0个或者1个)
9. table(1个或者多个)
property (0..N)
<property>
(0..N) ,property以name,和value的形式来设置,支持的属性有
- autoDelimitKeywords :自动识别数据库关键字,默认为false,设置为true后,如果遇到数据库关键字,用
<columnOverride>
替换. - beginnginDelimiter , endingDelimiter : 用作分隔符的符号,oracle中是”,而mysql中是`
- javaFileEncoding : 设置Java文件的编码集,如果没有指定,则会使用系统默认编码.
- javaFormatter :使用该属性来指定生成的java文件的用户指定的formater的完整的类名称,用于格式化java代码,这个类必须继承
org.mybatis.generator.api.JavaFormatter,
而且提供一个默认不含参数的构造方法.每个context持有一个单独的javaFormatter实例,默认的是org.mybatis.generator.api.dom.DefaultJavaFormatter
- xmlFormatter : 格式化xml文件,与上述javaFormatter类似.
plugin (0..N)
用来定义一个插件,插件用于修改MBG生成的代码.类继承于 org.mybatis.generator.api.Plugin
.
下面介绍缓存插件,全限定名为org.mybatis.generator.plugins.CachePlugin
这个插件可以在生成的SQL XML映射文件中增加一个cache标签,只有当targetRuntime为MyBatis3时,该插件才有效。
该插件的可选属性
- cache_eviction
- cache_flushInterval
- cache_readOnly
- cache_size
- cache_type
配置方法
<plugin type="org.mybatis.generator.plugins.CachePlugin"><property name="cache_eviction" value="LRU"><property name="cache_size" value="1024">
</plugin>
增加这个属性后,生成的Mapper.xml文件会增加如下的缓存配置
<cache eviction="LRU" size="1024">
</cache>
commentGenerator (0 or 1)
用于定义注释生成器的属性.注释生成器用来给由MBG生成的多种元素,Java自动,java方法,XML元素等等 生成注释. 默认的注释生成器将JavaDoc注释添加到所有生成的Java元素上,也会添加到每个生成的XML元素上.注释的目的是告诉用户这个元素是生成的,并且有可能重新生成,也就是说不应该修改这些地方.
可选属性 type,用来指定注释生成器类型.自定义的类要继承于 org.mybatis.generator.api.CommentGenerator.
使用子元素来设置属性:
- suppressAllComments :用来指定MBG所生成的代码是否包含任何注释.默认为false,即都会生成注释.为true是,所有代码都不会生成注释,且代码不会并合并.
- suppressDate : 用来指定生成的注释中是否包含生成的日期.默认为false. 设置为true,不会添加时间戳.
- addRemarkComments: 注释是否添加数据库表的备注信息,默认false
jdbcConnection (1 Required)
设置数据库连接的属性.每个必须含有一个元素.
必选属性:
- driverClass : 访问数据库的JDBC驱动程序的完全名称.
- connectionURL : 用于访问数据的JDBC连接URL.
可选属性:
- userId : 访问数据库的用户ID
- password : 访问数据库的密码
可以设置子元素<property>
指定的属性都会被添加到JDBC驱动程序的属性中.
javaTypeResolver (0 or 1)
java类型处理器,处理数据库中类型到Java中的类型.使用属性type来设置,默认使用JavaTypeResolverDefaultImpl来处理类型.
子元素property支持一个属性:
- forceBigDecimals : 是否强制将DECIMAL和NUMERIC的类型转换为BigDecimal类型,默认是false.
默认情况下的转换规则为:
1. 如果精度>0或者长度>18,使用BigDecimal.
2. 如果精度=0且10<=长度<=18,则使用Long
3. 如果精度=0且5<=长度<=9,则使用Integer
4. 如果精度=0且长度<5 ,则使用Short.
javaModelGenerator (1 Required)
该元素用于控制生成的实体类.有两个必选属性:
- targetPackage : 生成实体类所在的包名.会为目标包名生成pacakge.
- targetProject : 指定目标项目,运行于Eclipse或者IDEA等IDE时,这个属性是来指定项目的source root,一般就是 src/main/java这样的路径.不会为这个路径创建文件夹.
通过子元素来设置属性:
- constructorBased : 是否为每个类生成一个使用所有字段的构造函数.只对MyBatis3有效,默认为false. 如果属性immutable被设置了,则这个属性会被忽略.可以在
<table>
中对具体的一个表进行设置. - enableSubPackages : 是否根据表的 catalog 和 schema 来生成一个子包,默认是false
- immutable : 这个属性用于选择这些类是否是可变的,如果设置true,则这些类是不可变的,所有没有setter方法,且会忽略constructorBased属性,来默认提供一个含有所有参数的构造函数.默认是false.
- rootClass : 这个属性用来指定所有生成的Java Model的基类,需要使用 fully qualified class name 如 com.xxx.xxx.RootClass. 如果生成对象生成的类型或者getter和setter方法在RootClass中存在,则不会自动生成和覆盖rootClass中的内容.
- trimStrings : 这个属性用来设置对从数据库取回的字符串进行trim操作,默认为false.
sqlMapGenerator (0 or 1)
定义SQL映射生成器(Mapper.xml)的属性,SQL映射生成器会为每个表生成Mybatis使用的XML文件.如果没有指定这个元素,不会生成SQL映射的XML文件.如果使用MyBatis3,且设置了javaClientGenerator需要XML时,这个属性才是必选子元素.
可选属性:
- targetPackage : 包所在位置
- targetProject : 指定目标项目
可以通过子元素 来设置一个属性 :enableSubPackages:是否通过目录和schema来生成子包.
javaClientGenerator (0 or 1)
用于定义Java客户端代码生成器的属性.会生成Java的接口和类,可以简单的使用生成的Java Model和XML映射文件.在MyBatis中,会生成Mapper接口形式的代码.
必选属性:
type : 用户选择一个默认的生成器,或者使用用户自定义的DAO生成器.自定义需要继承与
org.mybatis.generator.codegen.AbstractJavaClientGenerator
类.如果当前targetRuntime是 MyBatis3,有以下三个选项:
- ANNOTATEDMAPPER : 生成对象是 MyBatis3.x映射器基础结构的Java接口,这些接口会基于注解和SqlProviders,不会有XML文件生成.就是纯接口使用注解.会有Provider生成.
- MIXEDMAPPER :注解与XML混合,注解用在简单注解可以实现的地方,客户端不会生成SqlProvider,复杂的动态SQL都会生成在XML中.
- XMLMAPPER : 生成接口依赖XML文件.
如果targetRuntime是MyBatis3Simple没有MIXEDMAPPER选项.
- targetPackage和targetProject
可选属性 :
- implementationPackage : 如果指定了该属性,实现类就会生成在这个包中.
通过子元素 来设置属性:
- enableSubPackages : 是否根据 catolog和scheme来生成不同的包.
- exampleMethodVisibility :设置byExample方法是否可见,默认是public,可见,且在接口中声明方法.可以设置的属性有: public,private,protected,default,但是在MyBatis3中,忽略该属性.
- methodNameCalculator : 属性用于为DAO方法提供不同的名称.被Mybatis3忽略.
- rootInterface : 指定是否所有生成的接口都继承与一个父接口.使用 fully qualified class name.
- useLegacyBuilder :默认是false.设置为true,会使用SqlBuilder为MyBatis生成动态SQL,在MyBatis3.2和以后被弃用.如果为false,则使用新的SQL生成器来生成客户端代码.
table (1..N)
从数据库中选择一个表,来生成对象.
必选属性:
- tableName : 数据库表的名称,不包含 catalog和schema,可以指定SQL通配符,如”%”来匹配所有的表.名称的匹配的逻辑:如果名称中有空格,则以指定大小写来查找表,如果数据库标识为大写,则用大写,如果数据库标识为小写则用小写,否则,自行定义.在创建数据库时,如果使用”“来指定大小写了,即使数据库标识符是大写,也需要设置
delimitIdentifiers = "true"
来保留大小写格式.
可选属性:
- schema : 可以指定通配符
- catalog : 可以指定通配符
- alias : 如果指定,则设置的别名会用在select查询上.
- domainObjectName : 生成的对象的基本名称,如果没有指定,则会以表名来命名.由于带domain,所以可以生成到指定包中,如abc.Model,对象名是Model,添加到包abc中. enableInsert : 是否生成Insert语句,默认为true.
- enableSelectByPrimaryKey :是否生成根据主键查询语句,默认为true.如果不存在主键,这不会生成根据主键查询的语句.
- enableSelectByExample : 是否通过 Example进行动态查询.默认为true.
- enableUpdateByPrimaryKey : 是否通过主键根据.默认为true
- enableDeleteByPrimaryKey : 是否通过主键删除语句.默认为true.
- enableUpdateByExample : 是否生成通过Example更新语句.默认为true.
- enableDeleteByExample : 是否生成通过Example删除语句,默认为true.
- enableCountByExample : 是否生成根据Example查询总数的语句,默认为true.
- selectByPrimaryKeyQueryId : 这个值会以
<value>
as QUERYID的形式被添加到主键查询语句的select列中.这样,可以对生成的每一个查询指定一个唯一的ID. - selectByExampleQueryId : 对每一次查询设置一个唯一id.
- modelType : 可以用来重写默认的模型类型,即conditional,flat,和hierarchical三个属性.
- escapeWildcards : 这个属性表示当查询列时,是否对schema和表名中的SQL通配符(如_和%)进行转义.默认是false.
- delimitIdentifiers : 这个属性当查询表并且在生成的SQL中分割标识符时,是否使用指定的确切值.默认为false.如果catalog,schema或者tableName包含空白时,应该为true.
- delimitAllColumns : 指示是否给生成SQL中所有的列名添加分割符.默认为false.
子元素有 :
<property>
(0 .. N) : 通过property可以设置以下属性:
construtorBased : 是否产生一个含有所有字段的构造函数.默认为false
ignoreQualifiersAtRuntime: 生成的SQL的表名将不会包含schema和catalog的前缀.默认为false.
immutable :与<javaModelGenerator>
中含义相同. modelOnly : 是否值生成模型类,而不生成CRUD方法.默认是false.
rootClass : 与<javaModelGenerator>
中含义相同
rootInterface :与<javaModelGenerator>
中含义相同.
runtimeCatalog :指定生成SQL语句中的catalog,生成代码的catalog会与运行时的catalog不同.
runtimeSchema : 运行时schema
runtimeTableName : 运行时表名.
selectAllOrderByClause :在MyBatis3SseColimple中,将这个属性以 oder by的形式添加到selectAll方法中.
useActualColumnNames : 默认为false.设置为true时,将从数据库元数据获取的列名作为实体类的属性名.false时,会将名称转换为驼峰形式.如果被<columnOverride>
元素指定,则会忽略这个属性. 如START_DATE属性会变成 startDate属性.
useColumnIndexes :默认为false.且Mybatis3中不支持这个属性.如果为true,会在生成resultMaps时使用索引.
useCompoundPropertyNames : 默认为false. 如果为true,在生成属性名时,会将列名和备注连接起来.
<generatedKey>
(0 or 1) :
用于指定自动生成主键的属性.如果指定该元素,MBG会在生成insert的SQL映射文件中插入一个合适的<selectKey>
元素.简单来说,就是可以用来做自增主键的设置.
必选属性:
- column : 生成列 的列名.
- sqlStatement : 返回新值的SQL语句.一些特殊值为 :MySql,转化为`SELECT LAST_INSERT_ID() . JDBC在MyBatis3中,生成正确的代码,且脱离数据库的限制.
可选属性:
- identity : 默认为false.如果为true,被标记为identity列,且
<selectKey>
元素后被插入在insert后面.如果为false,则会被插入在insert之前. - type : 为selectKey元素指定类型, pre或post.指定类型后,selectKey永远在insert语句之前.
理解这个序列的意思,和插入前后的意思.序列表示表是一个序列,插入之前要先查询表,就需要知道当前指向的位置即主键.而自增主键要在插入之后,才能知道自己的大小.
<columnRenamingRule>
(0 or 1)列的重命名规则.MBG使用正则表达式来进行重命名规则的实现,如果有
<columnOverride>
,则忽略<columnRenamingRule>
属性.先使用这个重命名规则后,获得的结果再去使用useActualColumnNames规则来判断是非需要再次更新属性名.
必选属性:
- searchString : 定义将被替换的子字符串的正则表达式.
可选属性:
- replaceString : 替换匹配的字符串.如果没有设置,则用空字符串替换.
<columnOverride>
(0 … N)
将默认得到的列进行修改,来设置指定的类型,名称等.
必选属性:
- column : 列名
可选属性:
- property : 要使用的Java名称.
- javaType : 完全指定的Java类型.这里有必要来处理奇怪的数据库类型,如mysql中的unsigned
bigint需要被映射为java.lang.Object. - jdbcType : 该列的JDBC类型(INTEGER,DECIMAL等等)
- typeHandler : 用户定义的需要用来处理该列的类型处理器.
- delimitedColumnName : 是否需要分割列名,指的是列名可能是带空格或者保留字,所以是否需要添加分隔符.默认为false.
<ignoreColumn>
(0 … N)
忽略的列.
可选属性:
- delimitedColunmnName : 当匹配对从数据库返回列时,是否区分大小写.默认为false.
使用心得
- 可以考虑实体类类型defaultModelType为 flat,即只有一个对象,这样管理起来更加方便.
- 注释的时间戳suppressDate一般都会关闭,因为每次重新生成都会修改时间戳,SVN都要重新提交,不利于多人开发.
- 将jdbc驱动放在项目的classPath下,而不是使用
<classPathEntry>
来引入jar包. - 对于字符串类型,一般都设置trimStrings来去除空格.
- 在
<table>
中配置<generatedKey>
,来实现自增主键. - 在Mysql中,支持无符号数,但是java中的数据类型都是有符号的,所以要用
<columnOverride>
来解决这个问题,先将类型转换成java.lang.Object,然后在使用时,将返回值强制转换为适当的类型.
demo
在JDBC配置文件db.properties中,对项目文件夹布局进行指定:
# 包路径
model.package=com.artisan.mybatis.pojo
dao.package=com.artisan.mybatis.dao
xml.mapper.package=com.artisan.mybatis.mapping
target.project=src/main/java
编写配置文件generatorConfig.xml:
<?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><!-- 引用外部配置文件 --><properties resource="db.properties" /><context id="MySqlContext" targetRuntime="MyBatis3" defaultModelType="flat"><!--关闭时间注释 --><commentGenerator><property name="suppressDate" value="true"/></commentGenerator><!--数据库连接信息 --><jdbcConnection driverClass="${jdbc.driver}"connectionURL="${jdbc.url}"userId="${jdbc.username}"password="${jdbc.password}"></jdbcConnection><!--生成的model 包路径 --><javaModelGenerator targetPackage="${model.package}" targetProject="${target.project}"><property name="enableSubPackages" value="ture"/><property name="trimStrings" value="true"/></javaModelGenerator><!--生成xml mapper文件 路径 --><sqlMapGenerator targetPackage="${xml.mapper.package}" targetProject="${target.project}"><property name="enableSubPackages" value="ture"/></sqlMapGenerator><!-- 生成的Dao接口 的包路径 --><javaClientGenerator type="XMLMAPPER" targetPackage="${dao.package}" targetProject="${target.project}"><property name="enableSubPackages" value="ture"/></javaClientGenerator><!--对应数据库表名 --><table tableName="%"><generatedKey column="id" sqlStatement="Mysql"/></table></context>
</generatorConfiguration>
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- SQL 标准发布第 15 部分:ISO/IEC 9075-15:2019 多维数组(SQL/MDA)
文章目录SQL/MDASQL/PGQSQL 流数据处理 SQL/MDA2019 年 6 月,SQL 标准发布了第 15 部分:ISO/IEC 9075-15:2019 多维数组(SQL/MDA)。 多维数组(Multi-Dimensional Arrays)是各种科学和工程数据的核心基础结构。因此,如今人们普遍认为数组在大数据中起着至关重要的作用,应…...
2024/4/20 11:56:17 - AI音箱的原理,小爱同学、天猫精灵、siry。
AI音箱的原理 简单的说,音箱工作的时,麦列始终处于拾音状态(对声音进行采样,量化)。进过基本的信号处理(静音检测、降噪等),唤醒模块会判断是否出现唤醒词,是的话就进行更复杂的语音信号处理,开始真正的语音交互流程。1.前端信号的处理 1.1语音检测(VAD voice activ…...
2024/4/23 5:15:46 - FLASH学习资料整理
视频直播需要http://www.adobe.com/products/flashmediaserver/flashmediaencoder/ 五分钟搭建 Flash 视频直播站http://www.dengjie.com/?p=1219FLASH组件相关: 下载组件地址:http://www.adobe.com/cfusion/exchange/ dalangtaosha@126.com //FLASH组件开发流程:http://www…...
2024/4/20 17:44:25 - 关于gethostbyname在多线程环境下的阻塞问题
为什么80%的码农都做不了架构师?>>> Unix/Linux下的gethostbyname函数常用来向DNS查询一个域名的IP地址。 由于DNS的递归查询,常常会发生gethostbyname函数在查询一个域名时严重超时。而该函数又不能像connect和read等函数那样通过setsockopt或者select函数那样设…...
2024/4/21 8:43:47 - AI产品经理(2)
近两年来AI产业已然成为新的焦点和风口,各互联网巨头都在布局人工智能,不少互联网产品经理也开始考虑转型AI产品经理,本文作者也同样在转型中。本篇文章是通过一段时间的学习归纳总结整理而成,力图通过这篇文章给各位考虑转型的产品经理们一个对AI的全局概括了解。本文分为…...
2024/4/21 8:43:45 - emWin 2天速成实例教程018_emWin的工作原理以及GUI_Delay()/GUI_Exec()函数
备注:(1)打开工程目录下的"Exe\GUISimulationDebug.exe"即可看到效果。(2)看完教程000~005就基本会用emWin做项目,其他章节可以需要时再参考。 看这篇文章,需要emWin一些基础,如果你还不会用emWin,请先看完” emWin 2天速成实例教程000_如何快速入门ucGUI_emW…...
2024/4/21 8:43:44 - 代码生成器的存在价值
多年前用ASP的时候,就听说了有一种叫做代码生成器的神奇的东西。只需要指定数据库链接,这个代码生成器就能够产生一个界面,然后选择你需要进行生成的数据表,按一下按钮,马上基于这个表的增删改查界面以及对应的ASP程序代码就生成出来,着实方便。当时的我对ASP已经轻车熟路…...
2024/4/21 8:43:43 - 声音导引系统(B题)
声音导引系统(B题)【本科组】 一、任务 设计并制作一声音导引系统,示意图如图1所示。下载 (19.38 KB) 11 小时前图中,AB与AC垂直,Ox是AB的中垂线,Oy是AC的中垂线,W是Ox和Oy的交点。 声音导引系统有一个可移动声源S,三个声音接收器A、B和C,声音接收器之间可以有线连接。声…...
2024/4/21 8:43:42 - Linux中SPI子系统图解和mini2440下的SPI驱动移植
1.SPI子系统框图详解:SPI总线上有两类设备:一类是主控端,通常作为SOC系统的一个子模块出现,比如很多嵌入式MPU中都常常包含SPI模块。一类是受控端,例如一些SPI接口的Flash、传感器等等。主控端是SPI总线的控制者,通过使用SPI协议主动发起SPI总线上的会话。而受控端则被动…...
2024/4/21 8:43:41 - DivCSS布局实例:很实用的图文混排CSS列表-富有语义-CSS布局实
今天我们共同学习一款“图文混排CSS列表”的制作。首先从分析一下此列表的特点,然后编写HTML代码,最终应用CSS样式实现最终的效果。列表的效果如图所示:最顶部是栏目名称“模板无忧 MB5U.com ”与栏目导航“CSS酷站欣赏 DivCSS教程 CSS模板下载”。栏目名称用标题元素Hx来表…...
2024/4/21 8:43:41 - C# WPF写的 漂亮实用的代码生成器
下载链接: https://pan.baidu.com/s/1Rn1xnoXrTYzVO5P6MJecyw 提取码: 7vc5说明下载后将 CodeGenerater.exe 发送一个快捷方试于桌面,双击就可以运行。可以生成代码 C# 类 和枚举。java 代码 的实现功能和 Mybatis3-Generate 一样(实体类的 Service类,Maper类 ,MapperXml)…...
2024/4/21 8:43:40 - C#编写最小花时隐藏为任务栏图标的Window appllication
关键词: C#编写最小花时隐藏为任务栏图 appllication 1.设置窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标。 3.添加窗体最小化事件(首先需要添加事件引用): // this…...
2024/4/21 8:43:38 - 语音交互设备 前端信号处理技术和语音交互过程介绍
一、前端信号处理1. 语音检测(VAD)语音检测(英文一般称为 Voice Activity Detection,VAD)的目标是,准确的检测出音频信号的语音段起始位置,从而分离出语音段和非语音段(静音或噪声)信号。由于能够滤除不相干非语音信号,高效准确的 VAD 不但能减轻后续处理的计算量,提…...
2024/4/21 10:36:21 - 2019最新PHP100项目实战(PHP新手入门教程)
PHP 视频教程下载目录: PHP100 视频教程 1:环境配置与代码调试 PHP100 视频教程 2:PHP 的数据类型与源码调试 PHP100 视频教程 3:常用 PHP 运算类型介绍与应用 PHP100 视频教程 4: PHP 条件语句介绍与应用 PHP100 视频教程 5:PHP 循环语句的介绍与应用 PHP100 视频教…...
2024/4/20 9:37:48 - Flash实用编程--下雨动画的制作
先画一滴从下落再到散开的雨滴,然后持续不断地将这个雨滴复制到画面上,从而产生下雨的效果. 步骤:1.打开Flash MX 2004,新建文档,设置文档大小550*400像素,帧频设为30FPS,背景设为黑色.2.按ctrl+F8新建一电影剪辑元件,在该元件中绘制一滴从下落再到散开的雨滴(形状渐变和动作…...
2024/4/21 8:43:35 - 每日一练 之 .Net模拟QQ的托盘方式
有些应用程序是长时间运行的,但又不想让它占据任务栏,还想经常调出来看下结果,这个时候就可以使用托盘式的程序。 .Net实现托盘程序不复杂,基本的原理是这个样子的: 1 给应用程序窗体拖一个NotifyIcon控件。其实托盘区在微软的标准称呼就叫 通知区域,所以这个控件的名字叫…...
2024/4/22 5:18:02 - 3D游戏引擎剖析
介绍 自Doom游戏时代以来我们已经走了很远。 DOOM不只是一款伟大的游戏,它同时也开创了一种新的游戏编程模式: 游戏 "引擎"。 这种模块化,可伸缩和扩展的设计观念可以让游戏玩家和程序设计者深入到游戏核心,用新的模型,场景和声音创造新的游戏, 或向已有的游戏…...
2024/4/20 18:24:39 - .Net代码生成工具XCodeBuilder
一直写重复代码,所以干脆写了个代码生成器,希望和大家学习交流http://d.download.csdn.net/down/1649339/xianyiqi以下是简介: DotNet代码生成工具XCodeBuilder,根据已有的SqlServer数据库生成数据库存储过程及三层(Model,Dal,Bll)代码。另外还将生成ExtJs脚本和基于ashx处…...
2024/4/21 6:03:35 - 整理DOTNET代码生成器 [转]
1:CodeSmith一款人气很旺国外的基于模板的dotnet代码生成器官方网站:http://www.codesmithtools.com官方论坛:http://forum.codesmithtools.com/default.aspx 版权形式:30天试用开源:否需要先注册确认后才能下载2:MyGeneratorMyGenerator是又一个国外很不错的代码生成工具,…...
2024/4/20 18:24:37 - Apache Flex 应用环境搭建
1.Flash Builder插件下载 Flash Builder:http://www.adobe.com/products/flash-builder.html或者您可以在:https://creative.adobe.com/products/flash-builder 注:Adobe官网上下载比较慢,你可以找一些网盘资源进行下载(64bit下载:http://adobe-flash-builder-64-bit.upd…...
2024/4/22 6:55:21
最新文章
- 积极探索新质生产力,九河云携手华为云技术交流引领数智跃迁
4月18日,九河云携手华为云举办了华为云SA技术培训会议,培训邀请到华为云技术人员作为主讲人,通过理论讲解与案例结合的方式,围绕ECS和EBS之间的联动,调优和数据保护等方面展开,深入浅出地讲解了基于EBS部署…...
2024/4/23 16:33:08 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - STL--vector有哪些应用场景
vector 在 C 中是一种非常灵活和强大的容器,适用于多种不同的应用场景。以下是一些常见的应用场景: 1 动态数据集合:当你不确定数据集的大小,或者数据集的大小会随时间变化时,vector 是理想的选择。例如,在…...
2024/4/21 18:27:11 - Golang Gin框架
1、这篇文章我们简要讨论一些Gin框架 主要是给大家一个基本概念 1、Gin主要是分为路由和中间件部分。 Gin底层使用的是net/http的逻辑,net/http主要是说,当来一个网络请求时,go func开启另一个协程去处理后续(类似epoll)。 然后主协程持续…...
2024/4/23 6:22:17 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/22 17:02:52 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/23 13:30:22 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/23 13:28:06 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/20 23:26:47 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/23 13:27:44 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/19 11:57:53 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/23 13:29:53 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/23 13:27:22 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/23 13:28:42 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/21 20:01:37 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/23 13:29:23 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/23 13:27:46 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/23 13:47:22 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/19 11:59:23 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/19 11:59:44 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/23 13:28:08 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/23 13:29:47 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/23 13:28:14 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/23 13:27:51 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/23 13:27:19 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57