0
点赞
收藏
分享

微信扫一扫

h2 基本知识1

unadlib 2022-05-12 阅读 85

一)H2文件结构:


————————————————————————————————


-h2

  -bin

    h2-1.1.116.jar //H2主文件(驱动也在里面)

    h2.bat         //H2控制台启动程序带黑屏窗口(for Windows)

    h2.sh          //H2控制台启动程序(for Linux)

    h2w.bat        //H2控制台启动程序不带黑屏窗口(for Windows)

  +docs //文档文件夹(内有手册)

  +service

  +src  //开源的吗,带源代码

  build.bat

  build.sh

  build.xml

————————————————————————————————

(二)Eclipse/MyEclipse中引入H2驱动

在指定项目中右键 -> Peoperties -> Java Build Path -> Libraries -> Add External JARs -> 引入h2-1.1.116.jar

(三)使用内存模式(关闭后内容全部消失,速度非常快):


import java.sql.Connection;  
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MenTest{
public void runInsertDelete(){
try{
String sourceURL="jdbc:h2:tcp://localhost/mem:testmemdb";//H2DB mem mode
String user="sa";
String key="";
try{
Class.forName("org.h2.Driver");//HSQLDB Driver
}catch(Exception e){
e.printStackTrace();
}
Connection conn=DriverManager.getConnection(sourceURL,user,key);//把驱动放入连接
Statement stmt=conn.createStatement();
//创建一个 Statement 对象来将 SQL 语句发送到数据库。
//stmt.executeUpdate("DELETE FROM mytable WHERE name=\'NO.2\'");
//执行方法找到一个与 methodName 属性同名的方法,并在目标上调用该方法。
//stmt.execute("CREATE TABLE idtable(id INT,name VARCHAR(100));");
stmt.execute("INSERT INTO idtable VALUES(1,\'MuSoft\')");
stmt.execute("INSERT INTO idtable VALUES(2,\'StevenStander\')");
stmt.close();
conn.close();

}catch(SQLException sqle){
System.out.println("SQL ERROR!");
}

}
public void query(String SQL){
try{
String sourceURL="jdbc:h2:tcp://localhost/mem:testmemdb";
String user="sa";
String key="";

try{
Class.forName("org.h2.Driver");
}catch(Exception e){
e.printStackTrace();
}
Connection conn=DriverManager.getConnection(sourceURL,user,key);//把驱动放入连接
Statement stmt=conn.createStatement();//创建一个 Statement 对象来将 SQL 语句发送到数据库。
ResultSet rset=stmt.executeQuery(SQL);//执行方法找到一个与 methodName 属性同名的方法,并在目标上调用该方法。
while(rset.next())
{
System.out.println(rset.getInt("id")+" "+rset.getString("name"));
}
rset.close();
stmt.close();
conn.close();
}catch(SQLException sqle){
System.err.println(sqle);
}
}
public static void main(String args[]){
MenTest mt=new MenTest();
mt.runInsertDelete();
mt.query("SELECT * FROM idtable");
}
}

(四)使用Embedded模式(Create,Insert,Delete...):


import java.sql.*;  

public class UpdateTest {
public void runInsertDelete() {
try {
String sourceURL = "jdbc:h2:h2/bin/mydb";// H2 database
String user = "sa";
String key = "";
try {
Class.forName("org.h2.Driver");// H2 Driver
} catch (Exception e) {
e.printStackTrace();
}
Connection conn = DriverManager.getConnection(sourceURL, user, key);
Statement stmt = conn.createStatement();
stmt.execute("CREATE TABLE mytable(name VARCHAR(100),sex VARCHAR(10))");
stmt.executeUpdate("INSERT INTO mytable VALUES('Steven Stander','male')");
stmt.executeUpdate("INSERT INTO mytable VALUES('Elizabeth Eames','female')");
stmt.executeUpdate("DELETE FROM mytable WHERE sex=\'male\'");
stmt.close();
conn.close();

} catch (SQLException sqle) {
System.err.println(sqle);
}
}

public static void main(String args[]) {
new UpdateTest().runInsertDelete();
}
}

(五)使用Embedded模式(Select):

import java.sql.*;  

public class SelectTest {
public void query(String SQL) {
try {
String sourceURL = "jdbc:h2:h2/bin/mydb";
String user = "sa";
String key = "";

try {
Class.forName("org.h2.Driver");
} catch (Exception e) {
e.printStackTrace();
}
Connection conn = DriverManager.getConnection(sourceURL, user, key);
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery(SQL);
while (rset.next()) {
System.out.println(rset.getString("name")+ " "+rset.getString("sex"));
}
rset.close();
stmt.close();
conn.close();
} catch (SQLException sqle) {
System.err.println(sqle);
}
}

public static void main(String args[]) {
Test tt = new Test();
tt.query("select * from mytable");
}
}


举报

相关推荐

0 条评论