* changed signature (it's more important to provide a database name than user and password)

* added var keyword before constants
* check user and password individually
* added execute() method
This commit is contained in:
Tobi Schäfer 2006-07-18 15:09:36 +00:00
parent f2cc5103b4
commit 971a740a0a

View file

@ -8,10 +8,10 @@
* *
* Copyright 1998-2006 Helma Software. All Rights Reserved. * Copyright 1998-2006 Helma Software. All Rights Reserved.
* *
* $RCSfile: helma.Database.js,v $ * $RCSfile: Database.js,v $
* $Author: czv $ * $Author: czv $
* $Revision: 1.5 $ * $Revision: 1.2 $
* $Date: 2006/04/18 13:06:58 $ * $Date: 2006/04/24 07:02:17 $
*/ */
@ -19,19 +19,17 @@ if (!global.helma) {
global.helma = {}; global.helma = {};
} }
helma.Database = function(driver, url, user, password, name) { helma.Database = function(driver, url, name, user, password) {
if (!driver || !url || !user) if (!driver || !url || !name)
throw("Insufficient arguments to create helma.db.Connection"); throw("Insufficient arguments to create helma.db.Connection");
if (!name)
name = "db" + new Date().getTime();
if (typeof password != "string") if (typeof password != "string")
password = ""; password = "";
MYSQL = "mysql"; var MYSQL = "mysql";
ORACLE = "oracle"; var ORACLE = "oracle";
JDBC = "jdbc:"; var JDBC = "jdbc:";
DRIVER_MYSQL = "org.gjt.mm.mysql.Driver"; var DRIVER_MYSQL = "org.gjt.mm.mysql.Driver";
DRIVER_ORACLE = "oracle.jdbc.driver.OracleDriver"; var DRIVER_ORACLE = "oracle.jdbc.driver.OracleDriver";
if (driver == MYSQL) { if (driver == MYSQL) {
driver = DRIVER_MYSQL; driver = DRIVER_MYSQL;
@ -45,13 +43,15 @@ helma.Database = function(driver, url, user, password, name) {
var DbSource = Packages.helma.objectmodel.db.DbSource; var DbSource = Packages.helma.objectmodel.db.DbSource;
var DatabaseObject = Packages.helma.scripting.rhino.extensions.DatabaseObject; var DatabaseObject = Packages.helma.scripting.rhino.extensions.DatabaseObject;
var DbSource = Packages.helma.objectmodel.db.DbSource; var DbSource = Packages.helma.objectmodel.db.DbSource;
var props = new Packages.helma.util.ResourceProperties(); var props = new Packages.helma.util.ResourceProperties();
props.put(name + ".url", url); props.put(name + ".url", url);
props.put(name + ".driver", driver); props.put(name + ".driver", driver);
if (user) { if (user) {
props.put(name + ".user", user); props.put(name + ".user", user)
}
if (password) {
props.put(name + ".password", password); props.put(name + ".password", password);
} }
var source = new DbSource(name, props); var source = new DbSource(name, props);
@ -77,9 +77,9 @@ helma.Database = function(driver, url, user, password, name) {
return this.getProductName() == MYSQL; return this.getProductName() == MYSQL;
}; };
this.query = function(query) { this.query = function(sql) {
var statement = connection.createStatement(); var statement = connection.createStatement();
var resultSet = statement.executeQuery(query); var resultSet = statement.executeQuery(sql);
var metaData = resultSet.getMetaData(); var metaData = resultSet.getMetaData();
var max = metaData.getColumnCount(); var max = metaData.getColumnCount();
var result = []; var result = [];
@ -92,6 +92,11 @@ helma.Database = function(driver, url, user, password, name) {
return result; return result;
}; };
this.execute = function(sql) {
var statement = connection.createStatement();
return statement.execute(sql);
};
this.getName = function() { this.getName = function() {
return source.getName(); return source.getName();
}; };