Write long columns in streaming mode if need be (if setString() throws an exception)
Log inserts, updates and deletes if logSql is set to true.
This commit is contained in:
parent
d3eb3b8d5d
commit
fb2e0d6369
1 changed files with 34 additions and 7 deletions
|
@ -426,7 +426,6 @@ public final class NodeManager {
|
||||||
{
|
{
|
||||||
b1.append (", "+columns[i].getName());
|
b1.append (", "+columns[i].getName());
|
||||||
b2.append (", ?");
|
b2.append (", ?");
|
||||||
System.err.println ("ADDING COLUMN: "+columns[i].getName());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -435,6 +434,10 @@ public final class NodeManager {
|
||||||
|
|
||||||
Connection con = dbm.getConnection ();
|
Connection con = dbm.getConnection ();
|
||||||
PreparedStatement stmt = con.prepareStatement (b1.toString ());
|
PreparedStatement stmt = con.prepareStatement (b1.toString ());
|
||||||
|
|
||||||
|
if (logSql)
|
||||||
|
app.logEvent ("### insertNode: "+b1.toString ());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
int stmtNumber = 1;
|
int stmtNumber = 1;
|
||||||
|
@ -473,14 +476,23 @@ public final class NodeManager {
|
||||||
stmt.setDouble (stmtNumber, p.getFloatValue());
|
stmt.setDouble (stmtNumber, p.getFloatValue());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Types.LONGVARBINARY:
|
|
||||||
case Types.VARBINARY:
|
case Types.VARBINARY:
|
||||||
case Types.BINARY:
|
case Types.BINARY:
|
||||||
case Types.BLOB:
|
case Types.BLOB:
|
||||||
stmt.setString (stmtNumber, p.getStringValue());
|
stmt.setString (stmtNumber, p.getStringValue());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case Types.LONGVARBINARY:
|
||||||
case Types.LONGVARCHAR:
|
case Types.LONGVARCHAR:
|
||||||
|
try {
|
||||||
|
stmt.setString (stmtNumber, p.getStringValue());
|
||||||
|
} catch (SQLException x) {
|
||||||
|
String str = p.getStringValue();
|
||||||
|
Reader r = new StringReader (str);
|
||||||
|
stmt.setCharacterStream (stmtNumber, r, str.length());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case Types.CHAR:
|
case Types.CHAR:
|
||||||
case Types.VARCHAR:
|
case Types.VARCHAR:
|
||||||
case Types.OTHER:
|
case Types.OTHER:
|
||||||
|
@ -594,7 +606,10 @@ public final class NodeManager {
|
||||||
|
|
||||||
Connection con = dbm.getConnection ();
|
Connection con = dbm.getConnection ();
|
||||||
PreparedStatement stmt = con.prepareStatement (b.toString ());
|
PreparedStatement stmt = con.prepareStatement (b.toString ());
|
||||||
System.err.println (b.toString());
|
|
||||||
|
if (logSql)
|
||||||
|
app.logEvent ("### updateNode: "+b.toString ());
|
||||||
|
|
||||||
int stmtNumber = 0;
|
int stmtNumber = 0;
|
||||||
try {
|
try {
|
||||||
for (int i=0; i<props.length; i++) {
|
for (int i=0; i<props.length; i++) {
|
||||||
|
@ -625,14 +640,23 @@ public final class NodeManager {
|
||||||
stmt.setDouble (stmtNumber, p.getFloatValue());
|
stmt.setDouble (stmtNumber, p.getFloatValue());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Types.LONGVARBINARY:
|
|
||||||
case Types.VARBINARY:
|
case Types.VARBINARY:
|
||||||
case Types.BINARY:
|
case Types.BINARY:
|
||||||
case Types.BLOB:
|
case Types.BLOB:
|
||||||
stmt.setString (stmtNumber, p.getStringValue());
|
stmt.setString (stmtNumber, p.getStringValue());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case Types.LONGVARBINARY:
|
||||||
case Types.LONGVARCHAR:
|
case Types.LONGVARCHAR:
|
||||||
|
try {
|
||||||
|
stmt.setString (stmtNumber, p.getStringValue());
|
||||||
|
} catch (SQLException x) {
|
||||||
|
String str = p.getStringValue();
|
||||||
|
Reader r = new StringReader (str);
|
||||||
|
stmt.setCharacterStream (stmtNumber, r, str.length());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case Types.CHAR:
|
case Types.CHAR:
|
||||||
case Types.VARCHAR:
|
case Types.VARCHAR:
|
||||||
case Types.OTHER:
|
case Types.OTHER:
|
||||||
|
@ -699,14 +723,17 @@ public final class NodeManager {
|
||||||
Statement st = null;
|
Statement st = null;
|
||||||
try {
|
try {
|
||||||
Connection con = dbm.getConnection ();
|
Connection con = dbm.getConnection ();
|
||||||
st = con.createStatement ();
|
String str = new StringBuffer ("DELETE FROM ")
|
||||||
st.executeUpdate (new StringBuffer ("DELETE FROM ")
|
|
||||||
.append(dbm.getTableName ())
|
.append(dbm.getTableName ())
|
||||||
.append(" WHERE ")
|
.append(" WHERE ")
|
||||||
.append(dbm.getIDField())
|
.append(dbm.getIDField())
|
||||||
.append(" = ")
|
.append(" = ")
|
||||||
.append(node.getID())
|
.append(node.getID())
|
||||||
.toString());
|
.toString();
|
||||||
|
st = con.createStatement ();
|
||||||
|
st.executeUpdate (str);
|
||||||
|
if (logSql)
|
||||||
|
app.logEvent ("### deleteNode: "+str);
|
||||||
} finally {
|
} finally {
|
||||||
if (st != null) try {
|
if (st != null) try {
|
||||||
st.close ();
|
st.close ();
|
||||||
|
|
Loading…
Add table
Reference in a new issue