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、液体火箭发动机系统、分系统的概念是什么&…

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

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

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…

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

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

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…

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

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

linux上php指向mysql_linux环境下 php如何配置mysql

展开全部Linux下配置安装PHP环境参考别人的做法,遇到问题上网查,下面就是安装步骤.一、安装Apache2.2.221、到官网下636f707962616964757a686964616f31333339666133载 http://httpd.apache.org/download.cgi2、解压tar -zxvf httpd-2.2.22.tar.gz3、建立目标文件夹(注意以下所有…

Java 7 Swing:创建半透明和成形的Windows

Java 7 Swing支持具有透明和非矩形形状的窗口。 以下屏幕截图显示了创建的不透明度为75&#xff05;的圆形窗口。 您可以通过在JFrame上使用setOpacity方法更改其不透明度来创建半透明窗口。 请注意&#xff0c;只有底层操作系统支持时&#xff0c;您才能创建半透明窗口。 另外…

mac mysql创建本地数据库_【mac】配置本地数据库

1.【安装数据库】brew 安装mysql -- brew install mysql安装成功后在命令行敲入 which mysql 查看安装路径2.【配置数据库】如果直接打mysql会报错&#xff0c;需要将mysql添加到环境变量&#xff0c;具体方法参阅后台学习-环境变量检查mysql是否启动 ps -ef | grep mysqld开启…

糖豆人维修服务器多长时间,服务器不稳定的《糖豆人》凭啥还这么火?只因做到了这三点...

8月4日&#xff0c;《糖豆人&#xff1a;终极淘汰赛》在steam平台上线&#xff0c;不到一周的时间直接登上steam畅销榜第六位。这款看起来似乎并不具备3A制作级别的游戏&#xff0c;到底是怎么获得了这么多玩家的追捧和青睐的呢&#xff1f;不妨跟着汇智妹一起看看这款游戏到底…

虚拟机游戏获取服务器地址,vue获取服务器地址

vue获取服务器地址 内容精选换一换Atlas 500 Pro 智能边缘服务器(型号 3000)安装上架、服务器基础参数配置、安装操作系统等操作请参见《Atlas 500 Pro 智能边缘服务器 用户指南(型号 3000)》&#xff0c;安装操作系统完成后&#xff0c;配置业务网口IP地址&#xff0c;请参见配…

使用Selenium和HTML中的动态ID进行Java测试

Selenium最酷的方面之一是&#xff0c;您不仅可以使用网站进行录制&#xff0c;还可以将其实际用作junit测试。 首先&#xff0c;我将在Firefox中安装Selenium&#xff08;因为这是正式版本&#xff09;并进行快速测试。 重要的是要注意&#xff0c;Selenium将为您提供多种不同…

查看表空间名称、大小、使用大小、剩余大小和使用率

查看表空间名称、大小、使用大小、剩余大小和使用率&#xff1a; SELECT a.tablespace_name "表空间名称", total / (1024 * 1024) "表空间大小(M)", free / (1024 * 1024) "表空间剩余大小(M)", (total - free) / (1024 * 1024 ) "表空…

编译安装PHP-7.2.8

一 下载并软件包 wget http://124.205.69.169/files/A218000006E9730A/cn2.php.net/distributions/php-7.2.8.tar.gz tar xf php-7.2.8.tar.gz cd php-7.2.8 二 安装依赖程序 yum -y install pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c autoconf libjpeg l…

常用操作符

2 1. 转换类型数据&#xff0c;可以先定义一个数据&#xff0c;然后在采用调用的方法进行转换。 2. 进行查看相关数据&#xff0c;使用type类型数据进行查看&#xff0c;例如&#xff1a;type(**),然后就可以查到所属的类型了。但是对于单个字符来说&#xff0c;例如红线方…

重要通知,事关校营宝新老用户,敬请知悉!

尊敬的校营宝用户&#xff0c;感谢您选择校营宝培训学校管理系统&#xff0c;我们的发展离不开您的支持鼓励&#xff0c;只要您选择校营宝&#xff0c;就是我们的终身客户&#xff0c;我们承诺给您终身的售后咨询服务&#xff01; 校营宝培训学校管理系统是面向校外艺术类培训…

从条纹边框的实现谈盒子模型

类似下面这个图形&#xff0c;只使用一个标签&#xff0c;可以有多少种实现方式&#xff1a;(不考虑兼容性的情况下) 假设我们的单标签为 div : 定义如下通用 CSS: div{ position:relative; width: 180px; height: 180px; } NO.1 方案一&#xff1a;div上是棕色背景&#xf…