Извиняюсь за возможно глупый вопрос, я новичок и только разбираюсь.
Пытаюсь выполнить подключение к БД. Использую код из мануала:
class JDBCVersion
{
public static void main (String args[]) throws SQLException
{
OracleDataSource ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:jdbc/jdbc@localhost:1521/XE");
Connection conn = ods.getConnection();
// Create Oracle DatabaseMetaData object
DatabaseMetaData meta = conn.getMetaData();
// gets driver info:
System.out.println("JDBC driver version is " + meta.getDriverVersion());
}
}
Не получается:
Exception in thread "main" java.sql.SQLRecoverableException: Ошибка ввода/вывода: Undefined Error at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:774) at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:688) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:39) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:691) at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:384) at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:273) at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:198) at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:176) at JDBC.JDBCVersion.main(JDBCVersion.java:12) Caused by: oracle.net.ns.NetException: Undefined Error at oracle.net.ns.NSProtocolNIO.negotiateConnection(NSProtocolNIO.java:271) at oracle.net.ns.NSProtocol.connect(NSProtocol.java:317) at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1438) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:518) ... 8 more
Средствами IDE подключение к базе происходит нормально. Помогите пожалуйста разобраться.
Проблема решилась путём замены региональных настроек перед открытием соединения:
Locale.setDefault(Locale.ENGLISH);
Спасибо всем кто откликнулся.
Вы можете получить соединение следующим образом:
String jdbcUrl = "jdbc:oracle:thin:@localhost:1521/XE"
String userid = "hr";
String password = "hr";
Connection conn;
public void getDBConnection() throws SQLException{
OracleDataSource ds;
ds = new OracleDataSource();
ds.setURL(jdbcUrl);
conn=ds.getConnection(userid,password);
}
Как вариант, можно попробовать таким образом через DriverManager
. Он сам находит необходимый ему драйвер по виду url.
public static Connection getConnection(String url, String user, String password) {
try {
Properties props = new Properties();
props.setProperty("user", user);
props.setProperty("password", password);
return DriverManager.getConnection(url, props);
} catch (SQLException | ClassNotFoundException e) {
logger.error(e);
return null;
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Скрыл программно статус-бар и нижнюю панель навигацииНо при свайпе снизу вверх в нижней части экрана навигационная панель выезжает
Вылетает Exception при компиляции jrxml jrxml file:
Есть библиотека которая использует HashMap из стандартной библиотекиКак можно сделать так, чтобы она использовала мой HashMap? Код библиотеки трогать...