apache.commons.dbutils.QueryRunner.queryメソッドのhandlerパラメータ
1797 ワード
初めてapacheを使いました.commons.dbutils.QueryRunnerがデータベースにアクセスする人には疑問があります.
QueryRunner.queryメソッドの戻り値は、データベースから取得したデータを保存するObjectオブジェクトであり、
そのタイプ(明示的に変換可能なタイプ)はqueryメソッドを呼び出すときのhandlerパラメータによって決定される.
すなわち、保存データのObjectオブジェクトの明示的な変換タイプは、handlerパラメータによって決定する.
handlerパラメータと戻りオブジェクトタイプの対照表を次に示します.
AbstractListHandler--複数行のリストの抽象クラスを返します
ArrayHandler--1行のObject[]を返します.
ArrayListHandler--各行がObject[]であるListを返します.
BeanHandler--最初のBeanオブジェクトを返します
BeanListHandler--各行がBeanであるリストを返します.
ColumnListHandler--リストを返す
KeyedHandler--Mapを返します.具体的にはコードを参照してください.
MapHandler--単一のMapを返します
「MapListHandler」--各行がMapであるListを返します.
「ScalarHandler」--列の最初の値を返します.
String url = "jdbc:mysql://localhost:3306/test";
Connection con = DriverManager.getConnection(url, "root", "pwd");
String sql = "select * from myTable";
QueryRunner qr = new QueryRunner();
qr.query(con, sql, handler); //con , sql , handler ?
QueryRunner.queryメソッドの戻り値は、データベースから取得したデータを保存するObjectオブジェクトであり、
そのタイプ(明示的に変換可能なタイプ)はqueryメソッドを呼び出すときのhandlerパラメータによって決定される.
ResultSetHandler handler = new ArrayHandler();
Object obj = qr.query(con, sql, handler);
Object[] arr = (Object[])obj;
ResultSetHandler handler = new ArrayListHandler();
Object obj = qr.query(con, sql, handler);
List list = (List)obj;
すなわち、保存データのObjectオブジェクトの明示的な変換タイプは、handlerパラメータによって決定する.
handlerパラメータと戻りオブジェクトタイプの対照表を次に示します.
AbstractListHandler--複数行のリストの抽象クラスを返します
ArrayHandler--1行のObject[]を返します.
ArrayListHandler--各行がObject[]であるListを返します.
BeanHandler--最初のBeanオブジェクトを返します
BeanListHandler--各行がBeanであるリストを返します.
ColumnListHandler--リストを返す
KeyedHandler--Mapを返します.具体的にはコードを参照してください.
MapHandler--単一のMapを返します
「MapListHandler」--各行がMapであるListを返します.
「ScalarHandler」--列の最初の値を返します.