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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1166閲覧

DAOがエラー、動かない

boobooboo

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/04/09 06:46

下記のコードを書いたらDAOがエラー出ます。
戻り値が必要らしいんですけど、どこにどんな風に書けばよいのでしょうか。

public

1 2 public List<Entity3> findAll() throws IOException { 3 4 List<Entity3> list = new ArrayList<>(); 5 6 7 /* 事前準備(JAR配置を含む) */ 8 9 try { 10 11 Class.forName("com.mysql.cj.jdbc.Driver"); 12 13 } catch (ClassNotFoundException e) { 14 15 //JDBCドライバが見つからない場合の処理 16 17 e.printStackTrace(); 18 19 } 20 21 Connection con = null; 22 23 try { 24 25 con = DriverManager.getConnection( 26 "jdbc:mysql://~""); 27 28 29 30 31 PreparedStatement pstmt = con.prepareStatement("SELECT* FROM employee_info WHERE employee_id >= ?"); 32 33 pstmt.setInt(1, 0); 34 35 ResultSet rs; 36 37 rs = pstmt.executeQuery(); 38 39 40 41 /* インスタンス化、ファイルの書き出し */ 42 ArrayList<Entity3> listen = new ArrayList<Entity3>(); 43 44 45 46 FileWriter f = new FileWriter("C:\Output\before.csv", true); 47 Entity3 entity = new Entity3(); 48 49 while (rs.next()) { 50 51 entity.setEmployeeId(rs.getInt("employee_id")); 52 entity.setName(rs.getString("name")); 53 entity.setNameHiragana(rs.getString("name_hiragana")); 54 entity.setBirthday(rs.getString("birthday")); 55 entity.setSex(rs.getInt("sex")); 56 entity.setMailAddress(rs.getString("mail_address")); 57 entity.setTelephoneNumber(rs.getString("telephone_number")); 58 entity.setCompanyInfoId(rs.getInt("company_info_id")); 59 entity.setHireDate(rs.getString("hire_date")); 60 entity.setEnrollmentYear(rs.getString("enrollment_year")); 61 entity.setEnrollmentMonth(rs.getString("enrollment_month")); 62 entity.setEnrollmentDay(rs.getString("enrollment_day")); 63 64 listen.add(entity); 65 66 f.write(String.valueOf(entity.getEmployeeId())); 67 f.write(","); 68 f.write(entity.getName()); 69 f.write(","); 70 f.write(entity.getNameHiragana()); 71 f.write(","); 72 f.write(entity.getBirthday()); 73 f.write(","); 74 f.write(String.valueOf(entity.getSex())); 75 f.write(","); 76 f.write(entity.getMailAddress()); 77 f.write(","); 78 f.write(entity.getTelephoneNumber()); 79 f.write(","); 80 f.write(String.valueOf(entity.getCompanyInfoId())); 81 f.write(","); 82 f.write(entity.getHireDate()); 83 f.write(","); 84 f.write(entity.getEnrollmentYear()); 85 f.write(","); 86 f.write(entity.getEnrollmentMonth()); 87 f.write(","); 88 f.write(entity.getEnrollmentDay()); 89 f.write(","); 90 f.flush(); 91 f.close(); 92 93 } 94 95 rs.close(); 96 pstmt.close(); 97 98 return list; 99 100 101 } 102 103 catch (SQLException e) { 104 //例外発生時の処理 105 try { 106 //ロールバックする 107 con.rollback(); 108 109 } 110 111 catch (SQLException e2) { 112 113 // 接続や、SQL処理の失敗時の処理 114 115 e2.printStackTrace(); //エラー内容をコンソールに出力する 116 117 } 118 119 } finally { 120 121 /* データベース接続の切断 */ 122 123 if (con != null) { 124 125 try { 126 127 con.close(); 128 129 } catch (SQLException e3) { 130 131 //接続失敗時の処理 132 133 e3.printStackTrace(); 134 135 } 136 137 } 138 139 } 140 141 142 143 144 } 145 146} 147 ここに言語を入力 148コード

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

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

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

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

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

y_waiwai

2019/04/09 08:00

エラーメッセージを提示してください
boobooboo

2019/04/09 08:16

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at test.DAO22.findAll(DAO22.java:30) at test.Main2.main(Main2.java:31) Exception in thread "main" java.lang.NullPointerException at test.DAO22.findAll(DAO22.java:102) at test.Main2.main(Main2.java:31) エラー内容です。 よろしくお願いします。
退会済みユーザー

退会済みユーザー

2019/04/09 13:37 編集

しかし、12年以上前に不要になったコードをなんでいまだに書く人は消えないんだろうな
退会済みユーザー

退会済みユーザー

2019/04/12 12:43

ちなみに、問題のあるドライバー以外は forname不要になりました
guest

回答1

0

ベストアンサー

MySQL の JDBC ドライバにクラスパスが通っているか確認することをお勧め致します.

投稿2019/04/09 17:34

jimbe

総合スコア12545

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

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

boobooboo

2019/04/12 05:15

ありがとうございます。 パスが通ってない凡ミスでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問