итак, победил я таки доступ сетевой к базе данных Derby из явы.
может, кому и пригодится...
-----------
имеем : базу дерби, лежит в локальной сети, в папке, например :
\\Server\mybase , IP в локальной сети у \\Server - 192.168.1.50
в eclipse добавлена библиотека derby.jar,derbyclient.jar
данные для соединения с базой лежат в
database.properties :
jdbc.netdrivers=org.apache.derby.jdbc.ClientDriver
jdbc.embeddrivers=org.apache.derby.jdbc.EmbeddedDriver
jdbc.url=jdbc:derby:\\\\Server\\mybase
jdbc.neturl=jdbc:derby://192.168.1.50:1527/mybase
jdbc.username=user
jdbc.password=user
Сама база derby, будем считать, установлена, и все настроено нормально.
Для работы в многопользовательском режиме, нужно запустить сервер на компьютере Server, причем в папке уровнем выше, чем лежит база mybase, т.е. если папка с базой mybase лежит в корне диска C:
то и сервер нужно запускать в корневой папки.
команда :
startnetworkserver.bat -h 0.0.0.0
параметр -h 0.0.0.0 обозначает, что разрешен доступ к серверу со всех адресов локальных компьютеров в сети.
когда сервер запущен, то можно запускать саму java-программу, скомпилированную в JAR, со всех машин в локальной сети.
код доступа к базе из явы:
public static Connection getConnection()
{
Properties props = new Properties();
FileInputStream in = null;
try {
in = new FileInputStream("database.properties");
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, e);
}
try {
props.load(in);
} catch (IOException e) {
JOptionPane.showMessageDialog(null, e);
}
try {
in.close();
} catch (IOException e) {
JOptionPane.showMessageDialog(null, e);
}
String NetDrivers = props.getProperty("jdbc.netdrivers");
String EmbedDrivers = props.getProperty("jdbc.embeddrivers");
if (NetDrivers != null)
System.setProperty("jdbc.drivers", NetDrivers);
String url = props.getProperty("jdbc.url");
String NetworkUrl = props.getProperty("jdbc.neturl");
String username = props.getProperty("jdbc.username");
String password = props.getProperty("jdbc.password");
Connection vozvrat = null;
try {
vozvrat= DriverManager.getConnection(NetworkUrl, username, password);
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e);
JOptionPane.showMessageDialog(null, "Сетевой сервер не запущен,пробуем запустить встроенный сервер");
try {
if (EmbedDrivers != null)
System.setProperty("jdbc.drivers", EmbedDrivers);
vozvrat= DriverManager.getConnection(url, username, password);
} catch (SQLException e1) {
JOptionPane.showMessageDialog(null, e1);
}
}
return vozvrat;
}