Mybatis之逆向工程

前面几篇基本把mybatis简单使用学习了下,今天学习下mybatis逆向工程,我们在开发中经常需要先设计数据库表结构或者先设计model,那就是能不能有工具可以只需在一边设计之后另一边自动生成呢?于是逆向工程来了。这里的逆向功能是通过数据库的表生成java po.关于逆向功能百度一下好多好多,这篇博客就是参考http://blog.csdn.net/testcs_dn/article/details/77881776# 和http://blog.csdn.net/testcs_dn/article/details/79295065,算是自己动手实验了一下。

一、使用maven引入依赖项和插件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cyw</groupId><artifactId>cuiyw</artifactId><version>0.0.1-SNAPSHOT</version><name>TestDemo</name><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.35</version></dependency><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version></dependency></dependencies>
<build><pluginManagement><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration><version>3.3</version></plugin><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.2</version><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.35</version></dependency></dependencies><configuration><!--配置文件的路径--><configurationFile>src/main/resources/generatorConfig.xml</configurationFile> <overwrite>true</overwrite></configuration></plugin></plugins></pluginManagement></build>
</project>
View Code

二、mysql中创建数据库和表

这里先创建了mybatis数据库,在数据库中创建t_user表

CREATE TABLE `t_user` (`userId` int(11) NOT NULL AUTO_INCREMENT,`userName` varchar(45) NOT NULL,`userAge` int(11) NOT NULL,PRIMARY KEY (`userId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
View Code

三、在resources目录下添加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>  
<!-- 可以用于加载配置项或者配置文件,在整个配置文件中就可以使用${propertyKey}的方式来引用配置项  resource:配置资源加载地址,使用resource,MBG从classpath开始找,比如com/myproject/generatorConfig.properties          url:配置资源加载地质,使用URL的方式,比如file:///C:/myfolder/generatorConfig.properties.  注意,两个属性只能选址一个;  另外,如果使用了mybatis-generator-maven-plugin,那么在pom.xml中定义的properties都可以直接在generatorConfig.xml中使用  
<properties resource="" url="" />  -->  <!-- 在MBG工作的时候,需要额外加载的依赖包  location属性指明加载jar/zip包的全路径  
<classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />  -->  <!--   context:生成一组对象的环境   id:必选,上下文id,用于在生成错误时提示  defaultModelType:指定生成对象的样式  1,conditional:类似hierarchical;  2,flat:所有内容(主键,blob)等全部生成在一个对象中;  3,hierarchical:主键生成一个XXKey对象(key class),Blob等单独生成一个对象,其他简单属性在一个对象中(record class)  targetRuntime:  1,MyBatis3:默认的值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample;  2,MyBatis3Simple:类似MyBatis3,只是不生成XXXBySample;  introspectedColumnImpl:类全限定名,用于扩展MBG  
-->  
<context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple" >  <!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;  一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖  -->  <property name="autoDelimitKeywords" value="false"/>  <!-- 生成的Java文件的编码 -->  <property name="javaFileEncoding" value="UTF-8"/>  <!-- 格式化java代码 -->  <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>  <!-- 格式化XML代码 -->  <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>  <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->  <property name="beginningDelimiter" value="`"/>  <property name="endingDelimiter" value="`"/>  <!-- 必须要有的,使用这个配置链接数据库  @TODO:是否可以扩展  -->  <jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root"password="123456"></jdbcConnection><!-- java类型处理器   用于处理DB中的类型到Java中的类型,默认使用JavaTypeResolverDefaultImpl;  注意一点,默认会先尝试使用Integer,Long,Short等来对应DECIMAL和 NUMERIC数据类型;   -->  <javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">  <!--   true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型  false:默认,  scale>0;length>18:使用BigDecimal;  scale=0;length[10,18]:使用Long;  scale=0;length[5,9]:使用Integer;  scale=0;length<5:使用Short;  -->  <property name="forceBigDecimals" value="false"/>  </javaTypeResolver>  <!-- java模型创建器,是必须要的元素  负责:1,key类(见context的defaultModelType);2,java类;3,查询类  targetPackage:生成的类要放的包,真实的包受enableSubPackages属性控制;  targetProject:目标项目,指定一个存在的目录下,生成的内容会放到指定目录中,如果目录不存在,MBG不会自动建目录  -->  <javaModelGenerator targetPackage="com.cuiyw.mybatis.domain" targetProject="src/main/java">  <!--  for MyBatis3/MyBatis3Simple  自动为每一个生成的类创建一个构造方法,构造方法包含了所有的field;而不是使用setter;  -->  <property name="constructorBased" value="false"/>  <!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->  <property name="enableSubPackages" value="true"/>  <!-- for MyBatis3 / MyBatis3Simple  是否创建一个不可变的类,如果为true,  那么MBG会创建一个没有setter方法的类,取而代之的是类似constructorBased的类  -->  <property name="immutable" value="false"/>  <!-- 设置一个根对象,  如果设置了这个根对象,那么生成的keyClass或者recordClass会继承这个类;在Table的rootClass属性中可以覆盖该选项  注意:如果在key class或者record class中有root class相同的属性,MBG就不会重新生成这些属性了,包括:  1,属性名相同,类型相同,有相同的getter/setter方法;  <property name="rootClass" value="com.cuiyw.mybatis.domain.BaseDomain"/>  -->  <!-- 设置是否在getter方法中,对String类型字段调用trim()方法 -->  <property name="trimStrings" value="true"/>  </javaModelGenerator>  <!-- 生成SQL map的XML文件生成器,  注意,在Mybatis3之后,我们可以使用mapper.xml文件+Mapper接口(或者不用mapper接口),  或者只使用Mapper接口+Annotation,所以,如果 javaClientGenerator配置中配置了需要生成XML的话,这个元素就必须配置  targetPackage/targetProject:同javaModelGenerator  -->  <sqlMapGenerator targetPackage="com.cuiyw.mybatis.mapper" targetProject="src/main/resources">  <!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->  <property name="enableSubPackages" value="true"/>  </sqlMapGenerator>  <!-- 对于mybatis来说,即生成Mapper接口,注意,如果没有配置该元素,那么默认不会生成Mapper接口   targetPackage/targetProject:同javaModelGenerator  type:选择怎么生成mapper接口(在MyBatis3/MyBatis3Simple下):  1,ANNOTATEDMAPPER:会生成使用Mapper接口+Annotation的方式创建(SQL生成在annotation中),不会生成对应的XML;  2,MIXEDMAPPER:使用混合配置,会生成Mapper接口,并适当添加合适的Annotation,但是XML会生成在XML中;  3,XMLMAPPER:会生成Mapper接口,接口完全依赖XML;  注意,如果context是MyBatis3Simple:只支持ANNOTATEDMAPPER和XMLMAPPER  -->  <javaClientGenerator targetPackage="com.cuiyw.mybatis.mapper" type="ANNOTATEDMAPPER" targetProject="src/main/java">  <!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->  <property name="enableSubPackages" value="true"/>  <!-- 可以为所有生成的接口添加一个父接口,但是MBG只负责生成,不负责检查  <property name="rootInterface" value=""/>  -->  </javaClientGenerator>  <!-- 选择一个table来生成相关文件,可以有一个或多个table,必须要有table元素  选择的table会生成一下文件:  1,SQL map文件  2,生成一个主键类;  3,除了BLOB和主键的其他字段的类;  4,包含BLOB的类;  5,一个用户生成动态查询的条件类(selectByExample, deleteByExample),可选;  6,Mapper接口(可选)  tableName(必要):要生成对象的表名;  注意:大小写敏感问题。正常情况下,MBG会自动的去识别数据库标识符的大小写敏感度,在一般情况下,MBG会  根据设置的schema,catalog或tablename去查询数据表,按照下面的流程:  1,如果schema,catalog或tablename中有空格,那么设置的是什么格式,就精确的使用指定的大小写格式去查询;  2,否则,如果数据库的标识符使用大写的,那么MBG自动把表名变成大写再查找;  3,否则,如果数据库的标识符使用小写的,那么MBG自动把表名变成小写再查找;  4,否则,使用指定的大小写格式查询;  另外的,如果在创建表的时候,使用的""把数据库对象规定大小写,就算数据库标识符是使用的大写,在这种情况下也会使用给定的大小写来创建表名;  这个时候,请设置delimitIdentifiers="true"即可保留大小写格式;  可选:  1,schema:数据库的schema;  2,catalog:数据库的catalog;  3,alias:为数据表设置的别名,如果设置了alias,那么生成的所有的SELECT SQL语句中,列名会变成:alias_actualColumnName  4,domainObjectName:生成的domain类的名字,如果不设置,直接使用表名作为domain类的名字;可以设置为somepck.domainName,那么会自动把domainName类再放到somepck包里面;  5,enableInsert(默认true):指定是否生成insert语句;  6,enableSelectByPrimaryKey(默认true):指定是否生成按照主键查询对象的语句(就是getById或get);  7,enableSelectByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询语句;  8,enableUpdateByPrimaryKey(默认true):指定是否生成按照主键修改对象的语句(即update);  9,enableDeleteByPrimaryKey(默认true):指定是否生成按照主键删除对象的语句(即delete);  10,enableDeleteByExample(默认true):MyBatis3Simple为false,指定是否生成动态删除语句;  11,enableCountByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询总条数语句(用于分页的总条数查询);  12,enableUpdateByExample(默认true):MyBatis3Simple为false,指定是否生成动态修改语句(只修改对象中不为空的属性);  13,modelType:参考context元素的defaultModelType,相当于覆盖;  14,delimitIdentifiers:参考tableName的解释,注意,默认的delimitIdentifiers是双引号,如果类似MYSQL这样的数据库,使用的是`(反引号,那么还需要设置context的beginningDelimiter和endingDelimiter属性)  15,delimitAllColumns:设置是否所有生成的SQL中的列名都使用标识符引起来。默认为false,delimitIdentifiers参考context的属性  注意,table里面很多参数都是对javaModelGenerator,context等元素的默认属性的一个复写;  -->  <table tableName="t_user" >  <!-- 参考 javaModelGenerator 的 constructorBased属性-->  <property name="constructorBased" value="false"/>  <!-- 默认为false,如果设置为true,在生成的SQL中,table名字不会加上catalog或schema; -->  <property name="ignoreQualifiersAtRuntime" value="false"/>  <!-- 参考 javaModelGenerator 的 immutable 属性 -->  <property name="immutable" value="false"/>  <!-- 指定是否只生成domain类,如果设置为true,只生成domain类,如果还配置了sqlMapGenerator,那么在mapper XML文件中,只生成resultMap元素 -->  <property name="modelOnly" value="false"/>  <!-- 参考 javaModelGenerator 的 rootClass 属性   <property name="rootClass" value=""/>  -->  <!-- 参考javaClientGenerator 的  rootInterface 属性  <property name="rootInterface" value=""/>  -->  <!-- 如果设置了runtimeCatalog,那么在生成的SQL中,使用该指定的catalog,而不是table元素上的catalog   <property name="runtimeCatalog" value=""/>  -->  <!-- 如果设置了runtimeSchema,那么在生成的SQL中,使用该指定的schema,而不是table元素上的schema   <property name="runtimeSchema" value=""/>  -->  <!-- 如果设置了runtimeTableName,那么在生成的SQL中,使用该指定的tablename,而不是table元素上的tablename   <property name="runtimeTableName" value=""/>  -->  <!-- 注意,该属性只针对MyBatis3Simple有用;  如果选择的runtime是MyBatis3Simple,那么会生成一个SelectAll方法,如果指定了selectAllOrderByClause,那么会在该SQL中添加指定的这个order条件;  -->  <property name="selectAllOrderByClause" value="age desc,username asc"/>  <!-- 如果设置为true,生成的model类会直接使用column本身的名字,而不会再使用驼峰命名方法,比如BORN_DATE,生成的属性名字就是BORN_DATE,而不会是bornDate -->  <property name="useActualColumnNames" value="false"/>  <!-- generatedKey用于生成生成主键的方法,  如果设置了该元素,MBG会在生成的<insert>元素中生成一条正确的<selectKey>元素,该元素可选  column:主键的列名;  sqlStatement:要生成的selectKey语句,有以下可选项:  Cloudscape:相当于selectKey的SQL为: VALUES IDENTITY_VAL_LOCAL()  DB2       :相当于selectKey的SQL为: VALUES IDENTITY_VAL_LOCAL()  DB2_MF    :相当于selectKey的SQL为:SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1  Derby      :相当于selectKey的SQL为:VALUES IDENTITY_VAL_LOCAL()  HSQLDB      :相当于selectKey的SQL为:CALL IDENTITY()  Informix  :相当于selectKey的SQL为:select dbinfo('sqlca.sqlerrd1') from systables where tabid=1  MySql      :相当于selectKey的SQL为:SELECT LAST_INSERT_ID()  SqlServer :相当于selectKey的SQL为:SELECT SCOPE_IDENTITY()  SYBASE      :相当于selectKey的SQL为:SELECT @@IDENTITY  JDBC      :相当于在生成的insert元素上添加useGeneratedKeys="true"和keyProperty属性  <generatedKey column="" sqlStatement=""/>  -->  <!--   该元素会在根据表中列名计算对象属性名之前先重命名列名,非常适合用于表中的列都有公用的前缀字符串的时候,  比如列名为:CUST_ID,CUST_NAME,CUST_EMAIL,CUST_ADDRESS等;  那么就可以设置searchString为"^CUST_",并使用空白替换,那么生成的Customer对象中的属性名称就不是  custId,custName等,而是先被替换为ID,NAME,EMAIL,然后变成属性:id,name,email;  注意,MBG是使用java.util.regex.Matcher.replaceAll来替换searchString和replaceString的,  如果使用了columnOverride元素,该属性无效;  <columnRenamingRule searchString="" replaceString=""/>  -->  <!-- 用来修改表中某个列的属性,MBG会使用修改后的列来生成domain的属性;  column:要重新设置的列名;  注意,一个table元素中可以有多个columnOverride元素哈~  -->  <columnOverride column="userId">  <!-- 使用property属性来指定列要生成的属性名称 -->  <property name="property" value="id"/>  <!-- javaType用于指定生成的domain的属性类型,使用类型的全限定名  <property name="javaType" value=""/>  -->  <!-- jdbcType用于指定该列的JDBC类型   <property name="jdbcType" value=""/>  -->  <!-- typeHandler 用于指定该列使用到的TypeHandler,如果要指定,配置类型处理器的全限定名  注意,mybatis中,不会生成到mybatis-config.xml中的typeHandler  只会生成类似:where id = #{id,jdbcType=BIGINT,typeHandler=com._520it.mybatis.MyTypeHandler}的参数描述  <property name="jdbcType" value=""/>  -->  <!-- 参考table元素的delimitAllColumns配置,默认为false  <property name="delimitedColumnName" value=""/>  -->  </columnOverride>  <!-- ignoreColumn设置一个MGB忽略的列,如果设置了改列,那么在生成的domain中,生成的SQL中,都不会有该列出现   column:指定要忽略的列的名字;  delimitedColumnName:参考table元素的delimitAllColumns配置,默认为false  注意,一个table元素中可以有多个ignoreColumn元素  <ignoreColumn column="deptId" delimitedColumnName=""/>  -->  </table>  </context>  </generatorConfiguration>  
View Code

四、生成java代码

选择工程右键run as->Maven build,如下图输入mybatis-generator:generate

 run之后可以在控制台看到类似下面的日志,刷新下项目就能看到生成的java文件了。

转载于:https://www.cnblogs.com/5ishare/p/8467923.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023航天推进理论基础考试划重点(W老师)-液体火箭发动机1

适用于期末周求生欲满满的西北工业大学学生。 1、液体火箭发动机的基本组成及功能是什么&#xff1f; 推力室组件、推进剂供应系统、阀门与调节器、发动机总装元件等组成。 2、液体火箭发动机的分类和应用是什么&#xff1f;3、液体火箭发动机系统、分系统的概念是什么&…

minio 并发数_c#(asp.net)线程配置总结

本文为大家介绍有关c#(asp.net)线程配置的相关知识&#xff0c;有需要的朋友可以参考下。同一时刻只能发起的工作线程数量。1、(maxWorkerThreads * CPU逻辑数量)-minFreeThreads比如2个CPU默认配置maxWorkerThreads100&#xff0c;minFreeThreads176&#xff0c;则同时最大只能…

Java EE 7是最终版本。 思想,见解和进一步的指针。

我们花了不到三年的时间才推出了下一个Java EE版本 。 今年4月16日&#xff0c; JCP EC对JSR 342进行了投票并获得批准。 这是一个成功的故事&#xff0c;因为在去年八月下旬的最后时刻撤消了拥有云就绪平台的最初想法。 作为EG的成员&#xff0c;撰写即将发布的功能或多或少容…

远程教育英语和计算机没过怎么办,网络教育英语统考能考几次 没考过怎么办?...

网络教育英语统考能考几次?网络教育统考是可以在学制期限内多次报考&#xff0c;直到考试合格为止。不过从2018年4月统考开始&#xff0c;所有考生只要一次弃考&#xff0c;弃考科目就只能再有3次报考机会(含以后的弃考)。网络教育统考每年有三次考试时间&#xff0c;分别是4、…

JavaScript的arguments及其子对象

首先一个最大的问题是&#xff0c;arguments这个对象哪儿来的&#xff1f;也许有人会认为它是调用函数时引擎自带的一个局部变量&#xff0c;因为我们平时使用arguments的时候都是在函数中把它当作局部变量来使用的。事实上arguments是Function实例的属性&#xff0c;只是在调用…

nginx 自动化定时切割日志

NG在默认情况下&#xff0c;是始终输出到一个日志文件中&#xff0c;日志文件在nginx.conf中 &#xff1a; access_log logs/www.access.log main; 一个文件中不是很方便查找&#xff0c;分析数据&#xff0c;因此需要按现实运维需要定时的对此文件进行切割。 1、准备个切割…

dbgrideh指定某单元格变色_一招搞定按指定名称批量新建文件夹

文 / 雷哥小鱼儿 编辑 / 小瓜子假如你有一个100行的Excel名单文件。业务需要&#xff0c;需要按姓名单独做成一个个文件夹。普通小白做法&#xff1a;用复制粘贴大法一个个去修改文件夹名字........雷哥Tips&#xff1a;EXCEL中为了实现某目标&#xff0c;出现了N次重复的操作…

如何编写自己的Java / Scala调试器

通过这篇文章&#xff0c;我们将探讨Java / Scala调试器的编写和工作方式。 诸如Windows的WinDbg或Linux / Unix的gdb之类的本机调试器通过操作系统直接提供给它们的钩子来获取其强大功能&#xff0c;以监视和操纵外部进程的状态。 JVM充当OS之上的抽象层&#xff0c;它提供了自…

软件测试bug文档模板,软件bug测试记录模板

软件bug测试记录模板 XXX软件bug测试记录表 文档编号&#xff1a; 背景信息 项目名称 测试目的 硬件环境 软件环境 测试时间 测试人员 测试说明 1、严重等级&#xff1a; A-Crash(崩溃的)&#xff1a;由于程序所引起的死机、非法退出、死循环&#xff1b;数据库发生死锁&#x…

js模版引擎handlebars.js实用教程——结束语

返回目录 有了这些功能&#xff0c;[ajax json Handlebars]替代[vo el表达式]不成问题&#xff0c;新时代的曙光已经来临&#xff0c;最佳解决方案在此&#xff0c;您还等什么&#xff1f; 教程到此结束。。。祝读者学习愉快。。。 转载请注明&#xff1a;前端录js模版引擎hand…

rem根据屏幕大小适配字体大小

(function(window, document) {function rootSize() {var screenWidth document.documentElement.clientWidth || window.innerWidth;// console.log(screenWidth);var rootSize screenWidth > 750 ? 100 :screenWidth < 320 ? 320 / 750 * 100 : screenWidth…

mac mysql 列表_Mac终端操作Mysql,以及Mysql的操作方法详解

首先手动启动Mysql应用程序打开终端输入如下命令&#xff1a; /usr/local/mysql/bin/mysql -u root -p(注意&#xff1a;Windows下的是&#xff1a; mysql -u root -p)其中root为用户名。这时会出现如下命令&#xff1a;Enter password: 123456这样就可以访问你的数据库服务…

Java即时编译:不仅仅是一个流行词

最近的Java生产性能问题迫使我重新审视并真正欣赏Java VM即时&#xff08;JIT&#xff09;编译器。 大多数Java开发人员和支持人员都听说过这种JVM运行时性能优化&#xff0c;但是有多少人真正理解并欣赏它的好处&#xff1f; 本文将与您分享在添加新的虚拟服务器&#xff08…

php ajax实现分页效果

ajaxpage.php【这里是数据展示页面的代码】: <meta charset’utf-8′> <script src” http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js ” type”text/javascript”/></script> <script type”text/javascript”> //获取当前url地址…

常用的JVM调优参数总结汇总【随时查阅学习】

本文章参数根据后期用的参数会持续更新 --- &#xff08;1&#xff09;-Xms20M 表示设置JVM启动内存的最小值为20M&#xff0c;必须以M为单位 &#xff08;2&#xff09;-Xmx20M 表示设置JVM启动内存的最大值为20M&#xff0c;必须以M为单位。将-Xmx和-Xms设置为一样可以避免J…

win10设置计算机关机时间,教你windows10电脑怎么设置定时关机

今天小编教你windows10电脑怎么设置定时关机&#xff0c;相信大家都有过这样的经历吧!那就是有时开着电脑玩累了,躺在床上睡了一会&#xff0c;结果醒来的时候发现睡了比较久&#xff0c;且还不愿意下床关电脑怎么办&#xff0c;其实我们可设置定时关机&#xff0c;有需要的用户…

Android内存优化9 内存检测工具3 MAT比Menmery Monitor更强大

在Android性能优化第&#xff08;一&#xff09;篇---基本概念中讲了JAVA的四大引用&#xff0c;讲了一下GCRoot&#xff0c;第二篇Memory Monitor检测内存泄露仅仅说了Menmery Monitor的使用&#xff0c;这篇博客谈一下MAT来寻找内存泄露&#xff0c;相对来说&#xff0c;Memo…

使用Java使用Amazon Simple Queue Service

Amazon Simple Queue Service或SQS是Amazon Webservice堆栈提供的高度可扩展的托管消息队列。 Amazon SQS可用于完全解耦系统中不同组件的操作&#xff0c;这些组件否则将交换数据以执行独立的任务。 Amazon SQS还可以帮助我们保存在应用程序关闭或组件之一不可用时丢失的数据。…

计算机三种引用方式,单元格的引用方式有哪几种

EXCEL单元格的引用包括绝对引用、相对引用和混合引用三种。单元格引用是Excel中的术语&#xff0c;指用单元格在表中的坐标位置的标识。是计算机基础的重要学习内容。1、绝对引用&#xff1a;单元格中的绝对单元格引用(例如$F$6)总是在指定位置引用单元格F6。如果公式所在单元格…

HTML5标签用法及描述

2000 年底&#xff0c;国际 W 3C 织组织公布发行了 X HTML 1.0 版本&#xff0c;到现在已经有 10 年了。这 10 年里&#xff0c; Web 飞速发展&#xff0c;X HTML 1.0 显得“力不从心”&#xff0c;已经跟不上时代的发展了&#xff0c;于是 HTML 5 孕育而生。 W 3C 在 201…