本文档主要介绍Java中嵌入式MySQL的使用。对于一些应用项目,需要提供Mysql和Oracle的安装版本。但是有时候如果是小工具,可以安装或者是便携性强的小软件。重新安装数据库可能会比较麻烦。其实MySQL也有嵌入式版本,不需要安装。在使用过程中,它会自动创建一个数据库,并通过代码启动或关闭它。下面提供一些代码片段,会给出具体的下载地址。这是核心代码类,实现了Mysql的启停和数据库的启动状态。packagenet.simple.mysql;importjava.io.File;importjava.util.HashMap;importjava.util.Map;importjava.util.Properties;importjava.util.Set;importcom.mysql.management.MysqldResource;/****@作者李燕飞*@emaileliyanfei@126.com*November2,20161:44:55pm**/publicfinalclassEmbedMySqlServer{privateMysqldResourcemysqlInstance;//配置信息publicfinalPropertiesprops;//端口信息privateStringport;/***考虑数据库的性能问题,允许数据库放在其他磁盘*/privateStringembedMySqlHome;publicEmbedMySqlServer(finalPropertiesprops){this.props=props;}publicEmbedMySqlServer(finalPropertiesprops,StringembedMySqlHome){this.embedMySqlHome=embedMySqlHome;MySqlHome;==embedMySqlHome?getPlatformBaseDir():embedMySqlHome;}/***获取当前应用主目录*@return当前应用启动器所在目录*/publicstaticStringgetPlatformBaseDir(){returnSystem.getProperty("user.dir");}publicstaticbooleanisBlank(finalStringstr){intstrLen;if(str==null||(strLen=str.length())==0){returntrue;}for(inti=0;ikeys=props.keySet();finalMapoptions=newHashMap(keys.size());for(finalObjectkey:keys){finalStringval=props.getProperty(key.toString());if("".equals(val))options.put(key.toString(),null);elseoptions.put(key.toString(),val.replace("{$contextPath}",getPlatformBaseDir()));}if(!mysqlInstance.isRunning())mysqlInstance.start("Em_MySQL",options,false,keys.contains("defaults-file"));}publicStringgetPort(){returnport;}/***判断mysql是否正在运行*/publicbooleanisRunning(){returnull==mysqlInstance?false:mysqlInstance.isRunning();}publicvoidshutdown(){if(mysqlInstance!=null)mysqlInstance.shutdown();}publicvoidcleanup(){if(mysqlInstance!=null)mysqlInstance.cleanup();}}下面是启动demo,publicstaticvoidmain(String[]args){try{Propertiespro=newProperties();//根据机器配置,设置不同的参数pro.load(MysqlTest.class.getResourceAsStream("MySql_medium.properties"));newEmbedMySqlServer(pro).startup();//你可以把数据库放在另一个磁盘上//newEmbedMySqlServer(pro,"f:\\").startup();Connectionconn=getTestConnection();System.out.println(conn.isClosed());conn.close();}catch(Exceptione){e.printStackTrace();}}MySql_general.properties通用机配置示例MySql_medium.properties中型机配置示例MySql_large.properties高端机配置示例具体参数可以根据定义不同的需求,比如端口可以自由定义需要引用的两个mysqljar,mysql-connector-mxj-gpl-6-0-11-db-files.jar、mysql-connector-mxj-gpl-6-0-11.jar代码在Git上,地址为:https://git.oschina。net/eliyanfei/api_tools.git