При выполнении запроса вместо русских символов появляются знаки вопроса. Был написан тестовый код, для проверки методов работы с БД, но при попытке прочитать или записать в БД русские символы, появляются вопросительные знаки. Пробовал добавлять в url useUnicode=true&characterEncoding=Cp1251 эффекта никакого.
public class OpTradingAgents { FileInputStream fis; Properties properties = new Properties(); private String dbLogin; private String dbPassword; private String url;
public OpTradingAgents() throws IOException { try { fis = new FileInputStream("G:\\Универ\\Диплом\\Program\\diplom\\src\\main\\resources\\config.properties"); properties.load(fis);
Был написан тестовый код, для проверки методов работы с БД, но при попытке прочитать или записать в БД русские символы, появляются вопросительные знаки.
Пробовал добавлять в url useUnicode=true&characterEncoding=Cp1251 эффекта никакого.
public class OpTradingAgents {
FileInputStream fis;
Properties properties = new Properties();
private String dbLogin;
private String dbPassword;
private String url;
public OpTradingAgents() throws IOException {
try {
fis = new FileInputStream("G:\\Универ\\Диплом\\Program\\diplom\\src\\main\\resources\\config.properties");
properties.load(fis);
String dbType = properties.getProperty("dbType");
String dbIp = properties.getProperty("dbIp");
String dbPort = properties.getProperty("dbPort");
String dbName = properties.getProperty("dbName");
dbLogin = properties.getProperty("dbLogin");
dbPassword = properties.getProperty("dbPassword");
url = "jdbc:" + dbType + "://" + dbIp + ":" + dbPort + ";database=" + dbName +";useUnicode=true&characterEncoding=Cp1251";
} catch (Exception e) {
e.printStackTrace();
} finally {
fis.close();
}
}
public ArrayList getByLogin(String impLogin) {
ArrayList tradingAgents = new ArrayList<>();
String query = "SELECT * FROM TradingAgents WHERE login=?";
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
try (Connection con = DriverManager.getConnection(url, dbLogin, dbPassword)) {
PreparedStatement ps = con.prepareStatement(query);
ps.setString(1, impLogin);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
int workerCode = rs.getInt(1);
String pasportId = rs.getString(2);
String name = rs.getString(3);
String surname = rs.getString(4);
String patronymic = rs.getString(5);
String login = rs.getString(6);
String password = rs.getString(7);
String phoneNumber = rs.getString(8);
String eMail = rs.getString(9);
TradingAgents tradingAgent = new TradingAgents(workerCode, pasportId, name, surname, patronymic, login, password, phoneNumber, eMail);
tradingAgents.add(tradingAgent);
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return tradingAgents;
}
}