DB格式文件生成(一下操作都在eclipse中进行)
打开试图
(1)、Windows->Show View->Other…
(2)、选择Data Management->Data Source Explorer,点击OK。
创建Driver
(1)、Window->Preferences
(2)、选择Data Management->Driver Definitions
(3)、点击Add。在Name/Type标签页中,选择Generic JDBC Driver,并修改Driver name为:JDBC Driver。
在JAR List标签页中,加入h2-1.3.164.jar。
在Properties选项页中,配置如下信息:
Connection URL:jdbc:h2:E:\DataBase\yht(路径和文件名,可以自己设置)
Database Name:SAMPLE
Driver Class:org.h2.Driver
User ID:yht(数据库用户名,可以自己设置)
如下图所示:
一路OK返回开发环境。
创建Connections
(1)、File->New->Other…
(2)、选择Connection Profiles->Connection Profile。点击Next。
(3)、选择刚创建的Generic JDBC,并修改Name为:JDBC。点击Next。
(4)、输入密码。第一次输入的为密码,点击Test Connection,查看是否连接成功。
(5)、最后点击Finish:
运行sql脚本
(1)、在环境中打开sql脚本,选择创建的数据库,如下图。
(2)、右击sql文件,选择Execute All。
(3)、成功运行,如下图所示:
获取db格式文件
在路径E:\DataBase\下获取文件:yht.h2.db。
二访问db格式文件
访问内存数据库的方法
package com.visit.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 提供读取数据库的方法。可访问的数据库,如Orcale,内存数据库。
* @author MyLove
*
*/
public class CrudDatabase
{
/**
* 数据库用户的链接。
*/
private Connection conn = null;
/**
* 数据库语句实例。
*/
private Statement state = null;
/**
* 执行结果。
*/
private ResultSet result = null;
/**
* 将sql送入指定的数据库执行,并获取执行结果(执行完建议,调研close()方法关闭相关链接)。
* @param className 驱动器类
* @param url 数据库路径
* @param user 数据库用户名
* @param password 数据库用户密码
* @param sql sql语句
* @return 执行sql语句获取的结果
* @throws ClassNotFoundException 没有找到驱动器类
* @throws SQLException 链接获取失败,或sql语句实例创建失败,或将sql语句送入数据库执行失败。
*/
public ResultSet executeStatement(String className,String url,
String user,String password,String sql) throws ClassNotFoundException, SQLException
{
//1、定义链接驱动器。
Class.forName(className);
//2、获取数据库用户的链接。
conn = DriverManager.getConnection(url,user,password);
//3、定义数据库语句实例。
state = conn.createStatement();
//4、根据语句实例,将sql语句送入数据库执行并获取结果。
result = state.executeQuery(sql);
return result;
}
/**
* 关闭数据库的相关链接。
* @throws SQLException 关闭链接失败
*/
public void close() throws SQLException
{
result.close();
state.close();
conn.close();
}
}
如上访问数据库方法仅针对查询语句(result = state.executeQuery(sql);)。如果需要执行别的sql语句。可将result = state.executeQuery(sql);换成result = state.execute(sql);(result为boolean型了)。
访问内存数据库方法的调用
package test;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.visit.db.CrudDatabase;
public class TestCrudDatabase
{
public static void main(String[] args)
{
CrudDatabase cd = new CrudDatabase();
//内存数据库的驱动类,依赖于jar包h2-1.3.164.jar。
String className = "org.h2.Driver";
//jdbc:h2:./工程中的位置/内存数据库文件yht.h2.db的名称yht。
String url = "jdbc:h2:./WebContent/h2db/yht";
//数据库用户信息。
String user = "yht";
String password = "yht";
//查询语句。
String sql = "select * from person";
try
{
//查询。并将结果打印出来。
ResultSet result = cd.executeStatement(className, url, user, password, sql);
while(result.next())
{
System.out.println(result.getString("id")
+ " " + result.getString("name")
+ " " + result.getString("age"));
}
//操作完成后,关闭相关链接。
cd.close();
}
catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}