H2を使用すると、データベースURL自体でデータベースを初期化できます。例:初期化するすべてのスクリプトを含むSQLスクリプト「start.sql」があります。これには、CSVファイルからのテーブルの作成も含まれます。次に、の形式のデータベースURLを使用しますjdbc:h2:~/temp/test;init=runscript from '~/temp/start.sql'
。start.sqlは次のようになります(これはとにかく私が取り組んでいる例です-CSVファイルからテーブルを作成する方法を示しています):
create table if not exists location(id int primary key, country varchar,
region varchar, city varchar, postalCode varchar, latitude float, longitude float,
metroCode varchar, areaCode varchar)
as select * from csvread('~/Downloads/GeoLiteCity/GeoLiteCity-Location.csv');
create table if not exists blocks(start long, end long primary key, location int)
as select * from csvread('~/Downloads/GeoLiteCity/GeoLiteCity-Blocks.csv');
create alias if not exists ip2id deterministic as $$
long ip2id(String s) {
String[] x = s.split("\\.");
return (Long.parseLong(x[0]) << 24) + (Long.parseLong(x[1]) << 16) +
(Long.parseLong(x[2]) << 8) + Long.parseLong(x[3]);
} $$;
create alias if not exists id2ip deterministic as $$
String id2ip(long x) {
return (x >> 24) + "." + ((x >> 16) & 255) + "." +
((x >> 8) & 255) + "." + (x & 255);
} $$;