Utiliza sentencias SQL precompiladas con PreparedStatement, con eso te olvidas de las comillas y todo eso, la API JDBC se encarga de ahcerlo por ti, y de acuerdo al motor de base de datos que usas, pues no en todos se escapan los caracteres especiales de igual manera.
por ejemplo, si tienes esto.
Código PHP:
String nombre = "O'rian";
String sql = "INSERT INTO TABLA (NOMBRE) VALUES ('" + nombre + "')";
con.createStatement().execute(sql);
Ese codigo te daria error por que O'rian tiene una comilla simple y la sentencia SQL se hecharia a perder, por ende, deberias escapas esa comilla o reemplazarla por otro caracter. Sin embargo si usas sentencia precompiladas como esta.
Código PHP:
String nombre = "O'rian";
String sql = "INSERT INTO TABLA (NOMBRE) VALUES (?)";
PreparedStatement pstm = con.preparedStatement(sql);
pstm.insertString(1, nombre);
pstm.execute();
Ese codigo no dara ningun problema, es la API JDBC quien se encarga de todo el trabajo duro y te olvidas de los caracteres de escape.
Saludos