[リストへもどる]
一括表示
タイトル1社員取得テストの失敗
記事No6686
投稿日: 2022/03/10(Thu) 11:31
投稿者kasai
/jj_mysql/1080.html/1社員取得テスト失敗しました。どうしたらよいでしょうか?よろしくお願いいたします。
コンソール出力を送付します。
[
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:829)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:449)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:242)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
at dao.ConnectBase.getConnection(ConnectBase.java:15)
at test.TestShainDAO.main(TestShainDAO.java:16)
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:89)
at com.mysql.cj.NativeSession.connect(NativeSession.java:120)
at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:949)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:819)
... 7 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.base/java.net.PlainSocketImpl.connect0(Native Method)
at java.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:101)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.base/java.net.Socket.connect(Socket.java:609)
at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:63)
... 10 more

]

タイトルRe: 1社員取得テストの失敗
記事No6687
投稿日: 2022/03/10(Thu) 18:42
投稿者サーチマン佐藤
shainDAO.javaがうまくいってない気がします。
まずは、shainDAO.javaのソースを見直してみましょう。

タイトルRe^2: 1社員取得テストの失敗
記事No6688
投稿日: 2022/03/10(Thu) 21:55
投稿者kasai
> shainDAO.javaがうまくいってない気がします。
> まずは、shainDAO.javaのソースを見直してみましょう。
shainDAO.javaのソースを見直してみましたが、よくわかりませんでした。
リストを送付しますので、よろしくお願いいたします。
[
package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import beans.ShainBean;

public class ShainDAO extends ConnectBase {

/**
* 社員IDから社員Beanを取得
* @param conn, shain_id
* @return int ShainBean
* @throws SQLException
*/
public ShainBean getShain(Connection conn, String shain_id) throws SQLException {
//社員Beanの初期化
ShainBean shainBean = new ShainBean();

//社員IDで取得するSQL
final String sql = "select shain.id, shain.name, bu.name, shain.enter_date "
+ "from shain_master shain, bu_master bu where shain.bu_id = bu.bu_id and shain.id=?";

//SQL実行の準備
try (PreparedStatement stmt = conn.prepareStatement(sql);) {
stmt.setString(1, shain_id);

//SQL実行
try (ResultSet rs = stmt.executeQuery();) {

//SQLで検索でいると、if文の中に入る
if (rs.next()) {

//一行目の値を取得
String shain_name = rs.getString("shain.name");
String bu_name = rs.getString("bu.name");
String enter_date = rs.getString("shain.enter_date");

//取得した値を社員Beanにセット
shainBean.setShain_id(shain_id);
shainBean.setShain_name(shain_name);
shainBean.setBu_name(bu_name);
shainBean.setEnter_date(enter_date);

}

}
} catch (SQLException e) {
System.out.println("SQLException: " + e.getMessage());
System.out.println("SQLState: " + e.getSQLState());
System.out.println("VendorError: " + e.getErrorCode());
e.printStackTrace();
throw e;
}

return shainBean;
}
/**
* 全社員を取得
* @param con
* @return shainList
* @throws SQLException
*/
public ArrayList<ShainBean> getAllShain(Connection con) throws SQLException {
//ArrayListの初期化
ArrayList<ShainBean> shainList = new ArrayList<ShainBean>();

//社員IDで取得するSQL
final String sql = "select shain.id, shain.name, bu.name, shain.enter_date "
+ "from shain_master shain, bu_master bu where shain.bu_id = bu.bu_id";

//SQL実行の準備
try (PreparedStatement stmt = con.prepareStatement(sql);) {

//SQL実行
try (ResultSet rs = stmt.executeQuery();) {

//取得した行数を繰り返す
while (rs.next()) {

//社員Beanの初期化
ShainBean shainBean = new ShainBean();

//値を取得
String shain_id = rs.getString("shain.id");
String shain_name = rs.getString("shain.name");
String bu_name = rs.getString("bu.name");
String enter_date = rs.getString("shain.enter_date");

//取得した値を社員Beanにセット
shainBean.setShain_id(shain_id);
shainBean.setShain_name(shain_name);
shainBean.setBu_name(bu_name);
shainBean.setEnter_date(enter_date);

//リストに社員Beanの追加
shainList.add(shainBean);

}

}
} catch (SQLException e) {
System.out.println("SQLException: " + e.getMessage());
System.out.println("SQLState: " + e.getSQLState());
System.out.println("VendorError: " + e.getErrorCode());
e.printStackTrace();
throw e;
}

return shainList;
}
}
]

タイトルRe^2: 1社員取得テストの失敗
記事No6693
投稿日: 2022/03/16(Wed) 12:00
投稿者kasai
> shainDAO.javaがうまくいってない気がします。
> まずは、shainDAO.javaのソースを見直してみましょう。
見直しても分からず、difffで比較したところ問題ありませんでした。
どうしたらよいでしょうか?
よろしくお願いいたします。

タイトルRe^3: 1社員取得テストの失敗
記事No6694
投稿日: 2022/03/16(Wed) 16:10
投稿者サーチマン佐藤
確認ですが、MySQLは起動してありますか?

タイトルRe^2: 1社員取得テストの失敗
記事No6695
投稿日: 2022/03/16(Wed) 17:02
投稿者kasai
> shainDAO.javaがうまくいってない気がします。
> まずは、shainDAO.javaのソースを見直してみましょう。
TestShainDAOを見直して、解決できました。
どうもお騒がせいたしました。

タイトルRe^3: 1社員取得テストの失敗
記事No6696
投稿日: 2022/03/16(Wed) 17:41
投稿者サーチマン佐藤
そうでしたか。よかったです。
お疲れさまでした。