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();
		}
	}
}