[pgsql-jp: 32992] Q) DbUtils & postgresql.jar
Yamada Ken Takeshi
ken @ tydfam.jp
2004年 5月 25日 (火) 22:51:51 JST
山田@町田市です。
困った時にしか現れず、恐縮です。また、ひょっとしたら、PostgreSQLの
問題ではないのかも知れませんが、御容赦ください。
Java+Struts で開発しようとしているのですが、SQL の所をO/Rにする程
の事は無いし、でも楽したい、ということで commons-dbutils を使ってみよう
と考え WEB+DB No.20 の記事(p.66)を HSQLDB から PostgreSQL にして
実験してみたのですが、
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(DriverManager.java:532)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at DbUtilTest.dbutilsTest.execute(dbutilsTest.java:34)
at DbUtilTest.dbutilsTest.main(dbutilsTest.java:64)
と、driver が見付からない、と言って来てしまいます。
プログラムの内容は、WEB+DB No.20 の記事と同じで、DB を HSQLDB から
postgresql にしただけなのですが、、、。
Driver の登録が間違っている? のかとも思ったのですが、同様にして JDBCTest
は動いているので、、、??
どなたか、私の間違いを御指摘頂けませんでしょうか?
以下長くなりますが、使ったソースです。
====================== DbUtilTest.java ===============
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.postgresql.Driver;
public class dbutilsTest {
public static void execute() {
try {
Connection conn = null;
try {
DriverManager.registerDriver(new Driver());
conn =
DriverManager.getConnection(
"jdbc:postogresql://localhost/webapps",
"ken",
"");
QueryRunner runner = new QueryRunner();
List accounts =
(List) runner.query(
conn,
"select * from account",
new BeanListHandler(Account.class));
Account temp;
for (int i = 0; i < accounts.size(); i++) {
temp = (Account) accounts.get(i);
System.out.println(temp.getId() + ", " + temp.getName());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (conn != null)
conn.close();
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
public static void main(String[] args) {
long start = System.currentTimeMillis();
execute();
long end = System.currentTimeMillis();
System.out.println(end - start + " ms");
}
}
======================== JDBCTest.java =========================
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.postgresql.Driver;
public class jdbcTest {
public static void execute() {
try {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
DriverManager.registerDriver(new Driver());
conn =
DriverManager.getConnection(
"jdbc:postgresql://localhost/webapps",
"ken",
"");
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from account");
rs.next();
do {
System.out.println(
rs.getObject(1) + ", " + rs.getObject(2));
rs.next();
} while (!rs.isLast());
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
public static void main(String[] args) {
long start = System.currentTimeMillis();
execute();
long end = System.currentTimeMillis();
System.out.println(end - start + " ms");
}
}
pgsql-jp メーリングリストの案内