解決したい疑問
Javaでデータベースに接続するためのコードを毎回書いているのですが、
・データベースに接続する用のファイル
・データベースから情報を抽出して実際に動作させるファイル
を別々にすることはできるのでしょうか?
素人なもので、「クラスの呼び出し」とか「インスタンス化」を使えばいけるんじゃないか?!と思ってしまうのですが、実際に書いてみてもエラーになってしまうので質問させていただきました。
1回呼び出して抽出表示するだけなら全部書いても煩わしさはないんですが、ファイルの数が多くなったり、選択機能を付けてユーザーが選んだ結果に応じてさらに条件を絞ったデータを抽出する、みたいな場合長くなりすぎるのが困ってしまうかな?と感じます。
それとも同一ファイル内にクラスをたくさん作るやり方の方が良いのでしょうか?
コードはこちらです。
【DB接続用のファイル】(実行部分まで含めてます)
package test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Dbtest { public static void main(String[] args) throws Exception { // PostgreSQLへの接続情報 Connection con; Statement st; ResultSet rs; String url = "jdbc:postgresql://localhost:5432/Test"; String user = "postgres"; String password = "(実際には記入してます)"; // JDBC driver setting Class.forName("org.postgresql.Driver"); // PostgreSQLへの接続 con = DriverManager.getConnection(url, user, password); st = con.createStatement(); // SELECT文の実行 rs = st.executeQuery("select shohin_mei,shohin_price,id from test"); // 結果画面の表示 System.out.println("id\tshohin_mei\tshohin_price"); while (rs.next()) { System.out.print(rs.getInt("id")+ "\t"); System.out.print(rs.getString("shohin_mei")+ "\t"); System.out.println(rs.getInt("shohin_price")); } // PostgreSQLとの接続を切断 rs.close(); st.close(); con.close(); } }
【接続部分を省いて抽出だけをするファイル】
package test; public class SimpleCode { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ Dbtest db = new Dbtest(); // SELECT文の実行 rs = st.executeQuery("select shohin_mei,shohin_price,id from test"); // 結果画面の表示 System.out.println("id\tshohin_mei\tshohin_price"); while (rs.next()) { System.out.print(rs.getInt("id")+ "\t"); System.out.print(rs.getString("shohin_mei")+ "\t"); System.out.println(rs.getInt("shohin_price")); } }
出現するエラー
・stを解決できません
・rsを変数に解決できません
回答1件
あなたの回答
tips
プレビュー