140 lines
4.0 KiB
Plaintext
140 lines
4.0 KiB
Plaintext
/* NetRexx */
|
|
options replace format comments java crossref symbols nobinary
|
|
|
|
import java.sql.
|
|
|
|
-- =============================================================================
|
|
class RParameterizedSQLSimple public
|
|
|
|
properties indirect
|
|
connexion = Connection
|
|
|
|
properties inheritable constant
|
|
DRIVER = "org.apache.derby.jdbc.EmbeddedDriver"
|
|
DBURL = "jdbc:derby:"
|
|
DBNAME = "/workspace/DB.DerbySamples/DB/TEAMS01"
|
|
DBMODE_CREATE = ";create=true"
|
|
DBMODE_NOCREATE = ";create=false"
|
|
DBMODE_SHUTDOWN = ";shutdown=true"
|
|
|
|
-- =============================================================================
|
|
method RParameterizedSQLSimple()
|
|
setConnexion(null)
|
|
return
|
|
|
|
-- =============================================================================
|
|
method createConnexion() inheritable returns Connection signals ClassNotFoundException, InstantiationException, IllegalAccessException
|
|
if getConnexion() = null then do
|
|
props = Properties()
|
|
props.put("user", "user1")
|
|
props.put("password", "user1")
|
|
|
|
xURL = String DBURL || DBNAME || DBMODE_CREATE
|
|
loadDriver(DRIVER)
|
|
setConnexion(DriverManager.getConnection(xURL, props))
|
|
end
|
|
|
|
return getConnexion()
|
|
|
|
-- =============================================================================
|
|
method shutdownConnexion() inheritable returns boolean signals SQLException
|
|
|
|
dbState = boolean
|
|
xURL = String DBURL || DBNAME || DBMODE_SHUTDOWN
|
|
|
|
do
|
|
DriverManager.getConnection(xURL)
|
|
dbState = isTrue
|
|
|
|
catch se = SQLException
|
|
if (se.getErrorCode() = 50000) & ("XJ015".equals(se.getSQLState())) then do
|
|
say "Derby shut down normally"
|
|
dbState = isTrue
|
|
end
|
|
else if (se.getErrorCode() = 45000) & ("08006".equals(se.getSQLState())) then do
|
|
say "Derby database shut down normally"
|
|
dbState = isTrue
|
|
end
|
|
else do
|
|
say "Derby did not shut down normally"
|
|
dbState = isFalse
|
|
signal se
|
|
end
|
|
end
|
|
|
|
return dbState
|
|
|
|
-- =============================================================================
|
|
method loadDriver(xdriver = String) inheritable static signals ClassNotFoundException, InstantiationException, IllegalAccessException
|
|
|
|
do
|
|
Class.forName(xdriver).newInstance()
|
|
say "Loaded the appropriate driver"
|
|
|
|
catch cnfe = ClassNotFoundException
|
|
say "Unable to load the JDBC driver" xdriver
|
|
say "Please check your CLASSPATH."
|
|
signal cnfe
|
|
|
|
catch ie = InstantiationException
|
|
say "Unable to instantiate the JDBC driver" xdriver
|
|
signal ie
|
|
|
|
catch iae = IllegalAccessException
|
|
say "Not allowed to access the JDBC driver" xdriver
|
|
signal iae
|
|
|
|
end
|
|
|
|
return
|
|
|
|
-- =============================================================================
|
|
method updatePlayer(jerseyNum = int, name = String, score = int, active = boolean) binary inheritable returns int signals SQLException
|
|
|
|
updateSQL = "" -
|
|
|| "UPDATE TEAM.PLAYERS" -
|
|
|| " SET NAME = ?, SCORE = ?, ACTIVE = ?" -
|
|
|| " WHERE JERSEYNUM = ?"
|
|
|
|
rowCt = int
|
|
ix = int 0
|
|
|
|
ps = getConnexion().prepareStatement(updateSQL)
|
|
ix = ix + 1; ps.setString(ix, name)
|
|
ix = ix + 1; ps.setInt(ix, score)
|
|
ix = ix + 1; ps.setBoolean(ix, active)
|
|
ix = ix + 1; ps.setInt(ix, jerseyNum)
|
|
rowCt = ps.executeUpdate()
|
|
|
|
return rowCt
|
|
|
|
-- =============================================================================
|
|
method main(args = String[]) public static
|
|
|
|
do
|
|
tda = RParameterizedSQLSimple()
|
|
tda.createConnexion()
|
|
|
|
if tda.getConnexion() \= null then do
|
|
updated = tda.updatePlayer(99, "Smith, Steve", 42, isTrue)
|
|
if updated > 0 then say "Update successful"
|
|
else say "Update failed"
|
|
|
|
finally
|
|
tda.shutdownConnexion()
|
|
end
|
|
|
|
catch ex = Exception
|
|
ex.printStackTrace
|
|
end
|
|
|
|
return
|
|
|
|
-- =============================================================================
|
|
method isTrue() public static returns boolean
|
|
return 1 == 1
|
|
|
|
-- =============================================================================
|
|
method isFalse() public static returns boolean
|
|
return \isTrue
|