@@ -149,7 +149,7 @@ public void createTable(String name, String... columns) {
149149
150150 public ResultSet executeSQL (Statement statement , String sql , String name , Type type ) {
151151 try {
152- logger .debug ("Executing " + name + ": " + sql + "with type " + type );
152+ logger .debug ("Executing " + name + ": ' " + sql + "' with type " + type );
153153 switch (type ) {
154154 case NORMAL :
155155 statement .execute (sql );
@@ -345,18 +345,17 @@ private Connection getConnection() throws SQLException {
345345 private String buildInsertStatement (String tableName , Object ... columnsAndValues ) {
346346 StringBuilder columns = new StringBuilder ();
347347 StringBuilder values = new StringBuilder ();
348-
349348 for (int i = 0 ; i < columnsAndValues .length ; i += 2 ) {
350- if (i > 0 ) {
351- columns .append (", " );
352- values .append (", " );
349+ if (columnsAndValues [i + 1 ] == null ) {
350+ throw new IllegalArgumentException ("Value for column '" + columnsAndValues [i ] + "' cannot be null" );
353351 }
354- columns .append (columnsAndValues [i ]. toString () );
355- values .append ("? " );
352+ columns .append (columnsAndValues [i ]). append ( ", " );
353+ values .append ("'" ). append ( columnsAndValues [ i + 1 ]. toString (). replace ( "'" , "''" )). append ( "', " );
356354 }
355+ columns .setLength (columns .length () - 2 );
356+ values .setLength (values .length () - 2 );
357357
358- return String .format ("INSERT INTO %s (%s) VALUES (%s)" ,
359- tableName , columns , values );
358+ return "INSERT INTO " + tableName + " (" + columns + ") VALUES (" + values + ")" ;
360359 }
361360
362361 private String buildSelectStatement (String tableName , String columnToSelect ,
0 commit comments