質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

2714閲覧

javaメソッドにResultSetインスタンスを渡して使用したいがうまくいかない。

onoko

総合スコア41

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2021/01/16 08:28

コード ```### 前提・実現したいこと 商品別送り先数量のDBから送り先別配送商品の帳票を出力するプログラムです。 DBの原データから作業用配列へ情報を引き写すクラスがDataGetクラスです。その情報源として結果表ResultSetのインスタンスを渡そうとしたつもりなのですがうまくいきません。結果表ResultSetを渡そうとすること自体が無理なのでしょうか。どうかDataGetクラスに結果表ResultSetをうまく渡す方法をご教授ください。 ■■な機能を実装中に以下のエラーメッセージが発生しました。 ### 発生している問題・エラーメッセージ

DataGet dg = new DataGet(ResultSet rs);の行で。
DataGetを型に解決できません。ResultSetを変数に解決できません。

### 該当のソースコード ```java import static java.awt.Font.*; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.print.PageFormat; import java.awt.print.Printable; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; public class DataPrintable implements Printable{ String[]branch; String[]itemNo; String[]item; int[][]qty; int rowcount; public void DataGet(ResultSet rs1) { ResultSetMetaData meta = rs1.getMetaData(); int i=0; int columnIndex=0; int columnCount = meta.getColumnCount()+1; System.out.println("columnCount="+ columnCount); branch = new String[columnCount-1]; itemNo = new String[rowCount]; item = new String[rowCount]; qty = new int[rowCount][columnCount]; for(int k= 3;k<columnCount;k++) {branch[k-3]=meta.getColumnName(k);} System.out.println("klass.branch="+branch); while(rs1.next()) { itemNo[i] = rs1.getString(1); item[i] = rs1.getString(2); for (columnIndex=3;columnIndex<columnCount;columnIndex++){ qty[i][columnIndex-3] = rs1.getInt(columnIndex); } i +=1; } } @Override public int print(Graphics g,PageFormat pf,int pageIndex) { if (pageIndex > 2) return NO_SUCH_PAGE; Graphics2D g2= (Graphics2D)g; int j = 0; int l = 0; String itemNow; String itemw; String qtyw; float mmpt = 72/25.4f; System.out.println(pageIndex); g2.setFont(new Font(SANS_SERIF,PLAIN,20)); g2.drawString(branch[pageIndex]+" 向け 配送商品",35*mmpt,40*mmpt); g2.setFont(new Font(SANS_SERIF,PLAIN,10)); g2.drawString("商品番号 商品名   個数",35*mmpt,56*mmpt); System.out.println("qty[0].length="+qty[0].length); System.out.println("item.length="+item.length); for (j=0;j<item.length; j++) { if(qty[j][pageIndex] > 0) { itemNow = itemNo[j]; itemw = item[j]; qtyw =String.valueOf(qty[j][pageIndex]); g2.drawString(itemNow,35*mmpt,(64+8*l)*mmpt); g2.drawString(itemw, 50*mmpt, (64+8*l)*mmpt); g2.drawString(qtyw, 81*mmpt, (64+8*l)*mmpt); l +=1; } } return PAGE_EXISTS; } public static void main(String[]args) { try { Class.forName("org.h2.Driver");} catch(ClassNotFoundException e1) { e1.printStackTrace();} Connection con = null; try { con = DriverManager.getConnection("jdbc:h2:tcp://localhost/~/mydb","sa",""); PreparedStatement pstmt = con.prepareStatement("SELECT * FROM ITEMS"); ResultSet rs2 = pstmt.executeQuery(); int rowCount; while(rs2.next()) {rowCount +=1;} System.out.println(rowCount); ResultSet rs = pstmt.executeQuery(); DataGet dg = new DataGet(ResultSet rs); PrinterJob pj = PrinterJob.getPrinterJob(); pj.setPrintable(new DataPrintable()); if (pj.printDialog()) { try{pj.print();} catch(PrinterException e) {System.out.println(e);}} } catch(SQLException e) {e.printStackTrace(); } finally { if(con != null) { try { con.close(); }catch(SQLException e) { e.printStackTrace(); } } } } }

試したこと

ResultSetMetaDataを渡すのかとも思ったが違うようだ。

補足情報(FW/ツールのバージョンなど)

OS:Windows10,エディター:Eclipse

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/01/16 08:30

eclipseの問題ではなくJavaの問題では。 タグに追加しておいてください。
dodox86

2021/01/16 08:34

> DBの原データから作業用配列へ情報を引き写すクラスがDataGetクラスです。 とのことですが、コードを見ると、 > public void DataGet(ResultSet rs1) { クラスじゃなくて、メソッドになっていますが。しかしながら、クラスであろうとメソッドであろうと、 > DataGet dg = new DataGet(ResultSet rs); と言うコードは不正です。あり得ません。
onoko

2021/01/16 08:53

このメソッドにResultSetインスタンスを渡して動かしたいのですが、どうコーディングしたらいいでしょう。当方javaプログラムはこれが第一本目でまったくわかりません。どうか懲りずによろしくご教示願います。
guest

回答1

0

ベストアンサー

DataGet dg = new DataGet(ResultSet rs);

「呼び出す」ほうの引数に型指定は必要ありません。

投稿2021/01/16 08:31

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問