Hallo,
die Frage ist (zu sehr) allgemein gestellt.
Welche Randbedingungen setzt du voraus? Welche Umgebung? Klingt zunächst nach Beschränkung auf LotusScript (?).
Wenn du Java nutzen würdest, kannst du über jDBC die DB-Verbindung so herstellen, wie gewünscht.
In dem Beispiel stellst du eine Verbindung mit einer PostgreSQL-RDBMS her:
import java.sql.*;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
import java.util.Vector;
public class CDatabase {
Connection conn;
String pghost, pgbase, pguser, pgpass, pgEnv;
/*
* Constructor - ohne Parameter
* Wertet die DB-Umgebung aus
* Stellt die Verbindung mit der DB her
*/
public CDatabase () throws SQLException
{
pghost = "hostname";
pgbase = "datenbank";
pguser = "beutzer";
pgpass = "geheim";
// Setup env for authenticating
if (System.getenv("PGHOST") != null) {
pghost = System.getenv("PGHOST");
}
if (System.getenv("PGDATADASE") != null) {
pgbase = System.getenv("PGDATABASE");
}
if (System.getenv("PGUSER") != null) {
pguser = System.getenv("PGUSER");
}
if (System.getenv("PGPASSWORD") != null) {
pgpass = System.getenv("PGPASSWORD");
}
String url = "jdbc:postgresql://"+pghost+"/"+pgbase+"?user="+pguser+"&password="+pgpass;
conn = DriverManager.getConnection(url);
}
....
}
Viele Grüße
wichtig sind eigentlich nur 2 Dinge:
1. Benutze PreparedStatements, wann immer möglich. https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
Dann brauchst Du dir keine Gedanken zu SQL Injection machen.
2. Wenn Java 6 (wahrscheinlich) musst Du zumindest die Connection selbst closen.
Dieser Codeblock hinter dem link oben
} finally {
if (updateSales != null) {
updateSales.close();
}
if (updateTotal != null) {
updateTotal.close();
}
con.setAutoCommit(true);
}
}
ist nicht zum Spass da und kann als Beispiel dienen...
Mit Java 7 gibt es Autocloseable Ressources. Das ist syntaktisch ein wenig besser. stackoverflow.com/questions/9260159/java-7-automatic-resource-management-jdbc-try-with-resources-statement
In erstaunlichen 50% der Fälle, in denen ich JDBC code sehe, halten sich die Entwickler nicht an diese 2 einfachen Grundsätze. Das kann leicht zu blockierten Ressourcen in Produktion und echt nicht so witzigen Security Lücken führen.
Übrigens war das schon 1999 bekannt, als ich meinen ersten JDBC code geschrieben hab.
PRO-TIP: Es kommt heute relativ selten vor, dass ich nacktes JDBC programmiere. Normal ist das eingewickelt in Frameworks wie JPA oder/und Hibernate oder auch ibatis. Es ist aber für bestimmte Aufgaben völlig i.O. nacktes JDBC zu verwenden, insbesondere wenn das kein reines Java Projekt ist. Dann hab ich mir den Source Code - unter der Beachtung obiger Regeln - eigentlich immer aus dem JDBC Tutorial von Oracle (link oben) bzw. früher SUN copy-und-pasted.
Gruß Axel