SQLサーバーに接続するためにCalciteを試しています。person テーブルからデータを取得するための非常に単純な例を実行しようとしています。
スキーマを使用しているコードは次のとおりです。
public static class PersonSchema
{
public final Person[] persons;
public PersonSchema(Person[] persons)
{
this.persons = persons;
}
public PersonSchema(){
persons=null;
}
}
public static class Person {
public final int personId;
public final String firstName;
public final String lastName;
public Person(int personId, String firstName, String lastName) {
this.personId = personId;
this.firstName = firstName;
this.lastName = lastName;
}
}
}
メインコードはこちら
@Test public void testRealSqlServerData_MI() throws Exception {
Class.forName("org.apache.calcite.jdbc.Driver");
Properties info = new Properties();
info.setProperty("lex", "SQL_SERVER");
info.setProperty("UserName", "USER_XXX");
info.setProperty("Password", "XXXXXXX");
Connection connection = DriverManager.getConnection
("jdbc:calcite://SPG;databaseName=Dept", info);
CalciteConnection calciteConnection =
connection.unwrap(CalciteConnection.class);
SchemaPlus rootSchema = calciteConnection.getRootSchema();
SchemaPlus schema = rootSchema.add("PersonSchema",
new ReflectiveSchema(new PersonSchema()));
Statement statement = calciteConnection.createStatement();
ResultSet resultSet = statement.executeQuery(
"select e.personid, e.firstname, e.lastname \n"
+ "from person_tbl as e\n");
resultSet.close();
statement.close();
connection.close();
}
SQLサーバーの設定はこんな感じ。サーバー - SPG DB - 部門スキーマ - dbo
問題:
- テーブルが見つからないため、スキーマを読み取っていないようです。
- リアルタイム SQL は多くの結合でより複雑になるため、方解石でのスキーマ作成を理解したいと思います。
- SQLサーバーに接続する最良の方法は何ですか. 正しい方向のコードの上にあります。
前もって感謝します。
リシ