Java中如何使用嵌入MySQL

发布时间:2024-03-14 23:36:42

对于一些的应用项目,提供安装版的Mysql,Oracle是必须的工作。下面小编为大家介绍Java中如何使用嵌入MySQL,希望能帮到大家!

其实MySQL也有嵌入式的,不需要安装,在使用的过程中,会自动创建数据库以及通过代码的方式启动或者关闭。下面提供一些代码片段,具体的会提供下载地址。

这个是核心代码类,这个类实现了Mysql的启动和停止以及数据库的启动状态。

下面这个是启动Demo。

MySql_general.properties一般机器的配置样例

MySql_medium.properties中等机器的配置样例

MySql_large.properties高配机的配置样例

具体的参数可以根据不同需求进行定义,比如端口可以自由定义。

需要引用的mysql两个jar,mysql-connector-mxj-gpl-6-0-11-db-files.jar,mysql-connector-mxj-gpl-6-0-11.jar

第2篇:Java中嵌入式MySQL的使用方法介绍

这篇文件主要介绍在Java中嵌入式MySQL的使用,对于一些的应用项目,提供安装版的Mysql,Oracle是必须的工作。但是有时候如果是一个小的工具,可安装或者移植*比较强的小软件。再去安装数据库可能就比较麻烦了。

其实MySQL也有嵌入式的,不需要安装,在使用的过程中,会自动创建数据库以及通过代码的方式启动或者关闭。下面提供一些代码片段,具体的会提供下载地址。

这个是核心代码类,这个类实现了Mysql的启动和停止以及数据库的启动状态。

package.simple.mysql;importjava.io.File;importjava.util.HashMap;importjava.util.Map;importjava.util.Properties;importjava.util.Set;import.mysql.management.MysqldResource;publicfinalclassEmbedMySqlServer{privateMysqldResourcemysqlInstance;//配置信息publicfinalPropertiesprops;//端口信息privateStringport;privateStringembedMySqlHome;publicEmbedMySqlServer(finalPropertiesprops){this.props=props;}publicEmbedMySqlServer(finalPropertiesprops,StringembedMySqlHome){this.embedMySqlHome=embedMySqlHome;this.props=props;}publicfinalStringgetEmbedMySqlHome(){returnnull==embedMySqlHome?getPlatformBaseDir():embedMySqlHome;}publicstaticStringgetPlatformBaseDir(){returnSystem.getProperty("user.dir");}publicstaticbooleanisBlank(finalStringstr){intstrLen;if(str==null||(strLen=str.length())==0){returntrue;}for(inti=0;i<strLen;i++){if(Character.isWhitespace(str.charAt(i))==false){returnfalse;}}returntrue;}publicvoidstartup(){finalFilebaseDir=newFile(getEmbedMySqlHome(),"mysql-em");mysqlInstance=newMysqldResource(baseDir);port=props.getProperty("port");if(isBlank(port))props.put("port",port=String.valueOf((int)(Math.random()*40000)));finalSet

keys=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;}publicbooleanisRunning(){returnnull==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高配机的配置样例

具体的参数可以根据不同需求进行定义,比如端口可以自由定义。

需要引用的mysql两个jar,mysql-connector-mxj-gpl-6-0-11-db-files.jar,mysql-connector-mxj-gpl-6-0-11.jar

代码在Git上,地址是:git.oschina/eliyanfei/api_tools.git

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

第3篇:Java入门教程:如何使用一个Java

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。下面是百分网小编整理的关于使用java语言的内容,欢迎阅读!

一、背景

Java编程语言最初是由Sun微系统公司,这是由杰姆斯Gosling发起并发布1995为sun公司的java平台的核心组件开发。

Java的标准版的最新版本是javaSE8。用java和广泛普及的进程,多个配置套房各类平台。例如:企业应用J2EE、J2ME移动应用。

二、组成

Java大概由四个方面组成:

Java编程语言,即语法;

Java文件格式,即各种文件夹、文件的后缀;

Java虚拟机(JVM),即处理*.class文件的解释器

JavaAPI(JavaSE8)

三、基本含义

抽象类:规定一个或多个抽象方法的类别本身必须定义为abstract,抽象类只是用来派生子类,而不能用它来创建对象。

final类:又称“最终类”,它只能用来创建对象,而不能被继承,与抽象类刚好相反,而且抽象类与最终类不能同时修饰同一个类。

包:Java中的包是相关类和接口的*,创建包须使用关键字package。

继承:Java作为面向对象编程语言,支持继承这基本概念。但Java只支持单根继承,java.lang.Object是所有其他类的基类。

多态类:在Java中,对象变量是多态的。而Java中不支持多重继承。

接口:Java中的接口是一系列方法的声明,是一些方法特征的*,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为。

通用编程:任何类类型的所有值都可以同Object类型的变量来代替。

封装:把数据和行为结合起在一个包中,并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instancefield)。

重载:当多个方法具有相同的名字而含有不同的参数时,便发生重载。编译器必须挑选出调用哪个方法进行编译。

重写:也可称为方法的“覆盖”。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。值得注意的是,子类在重新定义父类已有的方法时,应保持与父类完全相同的方法头声明。

Class类:Object类中的getClass方法返回Class类型的一个实例,程序启动时包含在main方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类。

第4篇:java语言类的嵌入

导语:Java语言程序的设计环环相扣,下面,让我们了解一下java语言类的嵌入知识吧!

(1)类可以嵌入另一个类中,但不能嵌入接口中。

(2)在静态方法或其他方法中,不能直接创建内部类对象,需通过手段来取得。

手段有两种:

classA{

classB{}

BgetB(){

Bb=newB();

returnb;

}

}

staticvoidm(){

Aa=newA();

A.Bab=a.getB();//或者是A.Bab=a.newB();

}

(3)一个类继承了另一个类的内部类,因为超类是内部类,而内部类的构造方法不能自动

被调用,这样就需要在子类的构造方法中明确的调用超类的构造方法。

接上例:

classCextendsA.B{

C(){

newA().super();//这一句就实现了对内部类构造方法的调用。

}

}

构造方法也可这样写:

C(Aa){

a.super();

}//使用这个构造方法创建对象,要写成Cc=newC(a);a是A的对象。

第5篇:如何在HTML中嵌入PHP代码

对于一个有经验PHPWeb开发者,在HTML中嵌入PHP代码是一件非常容易的事情。但是对于刚开始接触PHP编程语言的新手这就是一个问题。下面是小编为大家带来的在HTML中嵌入PHP代码的方法,欢迎阅读。

在常规的HTML中嵌入PHP代码

创建一个hello脚本,命名为hello.php:

<html>

<head>

<title>PHPTest</title>

</head>

<body>

<?phpecho'<p>HelloWorld</p>';?>

</body>

</html>

上面的HTML代码中,在PHP代码中打印Hello。在HTML中编写PHP代码需要使用tags。集成PHP和HTML是非常简单的事情。

我们也可以在HTML中编写更复杂的PHP代码,需要使用tag。

更高级的代码示例:

<html>

<head>PHPHTMLIntegration</head>

<body>

<ul><?phpfor($i=1;$i<=5;$i++){?><li>ItemNo<?phpecho$i;?></li><?php}?></ul>

</body>

</html>

输出结果:

ItemNo1

ItemNo2

ItemNo3

ItemNo4

ItemNo5

以上所述就是本文的全部内容了,希望大家能够喜欢。

第6篇:如何使用java多线程

Java多线程是我们很多时候都会用到的,在不断学习的过程中有很多的应用方法大家知道怎么使用Java多线程吗?以下是小编为大家搜索整理的如何使用java多线程,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!

Java多线程程序中经常用到的方法有以下几个:run(),start(),wait(),sleep(),notify(),notifyAll(),yield(),join(),还有一个重要的关键字synchronized。下面分别对这些方法进行解释:

一、run()和start()

这两个方法应该都比较熟悉,把需要并行处理的代码放在run()方法中,start()方法启动线程将自动调用run()方法,这是由Java的内存机制规定的。并且run()方法必须是public访问权限,返回值类型为void。

二、关键字Synchronized

这个关键字用于保护共享数据,当然前提是要分清哪些数据是共享数据。每个对象都有一个锁标志,当一个线程访问该对象时,被Synchronized修饰的数据将被“上锁”,阻止其他线程访问。当前线程访问完这部分数据后释放锁标志,其他线程就可以访问了。

1.publicThreadTestimplementsRunnable

2.{

3.publicsynchronizedvoidrun(){

4.for(inti=0;i<10;i++)

5.{

6.System.out.println(""+i);

7.}

8.}

9.publicstaticvoidmain(String[]args)

10.{

11.Runnabler1=newThreadTest();

12.Runnabler2=newThreadTest();

13.Threadt1=newThread(r1);

14.Threadt2=newThread(r2);

15.t1.start();

16.t2.start();

17.}

18.}

以上这段程序中的i变量并不是共享数据,也就是这里的Synchronized关键字并未起作用。因为t1,t2两个线程是两个对象(r1,r2)的线程。不同的对象其数据是不同的,所以r1和r2两个对象的i变量是并不是共享数据。

当把代码改成如下:Synchronized关键字才会起作用

19.Runnabler=newThreadTest();

20.Threadt1=newThread(r);

21.Threadt2=newThread(r);

22.t1.start();

23.t2.start();