¿Cómo insertar el «lógico y» (&) en la base de datos MySQL?
Puede intentar escapar del carácter «&», pero no funciona.
Estaba tratando de leer todas las cadenas línea por línea desde el archivo txt a la base de datos MySQL. Alguna cadena contiene «&».
Hice lo siguiente:
Statement sta = conn.createStatement(); String sql = "INSERT INTO `phd`.`School` (`SchoolName` )VALUES ( '"+aLine.trim()+"');"; sta.execute(sql); |
Luego intenté escapar «&» usando la clase StringEscapeUtils de Apache’s commons. No funcionó.
En realidad, el problema se puede resolver con la clase PreparedStatement. La declaración preparada no solo puede manejar este problema de escape, sino que también puede ejecutar la declaración de manera eficiente varias veces.
PreparedStatement st = db.conn.prepareStatement("INSERT INTO `phd`.`School` (`SchoolName` )VALUES ( ?);"); st.setString(1, aLine.trim()); st.executeUpdate(); |