In this tutorial you will learn how to use replace() function of mysql with java servlet.
Mysql REPLACE() Function Example Using Java Servlet
In this tutorial you will learn how to use replace() function of mysql with java servlet.
In REPLACE() function of MySql a substring or a string is replaced by a specified string or substring within a string. There are three arguments passed into this function first argument is an actual string, second is the replaceable string within the actual string, and the third argument is a replaced string within the actual string. This function replaces a replaceable string with replaced string number of times that the number of times replaceable string is repeated in the actual string. If a replaceable string is not found in the actual string it just returns the actual string as it is.
Syntax :
replace('str', 'str1','str2')';
Here "str" is an actual string that is taken as first argument, "str1" is a replaceable string taken as second argument and "str2" is a replaced string that is taken as the third argument of this function.
Now, since I have to use this function in java servlet program, therefore I have created a java servlet class named MysqlReplaceServlet which extends the HttpServlet class. In the body of class I overridden the method doGet() and created an objects of HttpServletRequest and HttpServletResponse into its parameter. Inside the doGet() method first I set the mime type that in which format the browser will show the output. In the next line I used the getWriter() method of ServletResponse interface with the object of HttpServletResponse. HttpServletResponse interface extends this method from the ServletResponse. In Next step I am taking inputs using the getParameter() method of ServletRequest with the object of HttpServletRequest. In continue we have to establish a connection between java code and database system. So, since I am using Mysql in the example given below therefore, I am loading the driver of mysql and make a connection by using the getConnection() method of DriverManager class. It returns a Connection. Further I passed the query "SELECT REPLACE(" + "'" +str+"'"+","+"'"+str1+"'"+","+"'"+str2+"'"+")"; (Here 'str', 'str1', 'str2' are variables that stores the value given by the user in their respective textfields.) into the parameter of prepareStatement() method of Connection interface which gives an object of PreparedStatement interface. In the next line I used the executeQuery() method of PreparedStatement interface which returns a ResultSet object that holds the result of query. At last I have extracted the result from the ResultSet object.
Example :
replace.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>REPALCE function</title> </head> <body> <form action="MysqlReplaceServlet" method="get"> <table> <tr> <td>Enter a String </td> <td><input type="text" name="text1"/></td> </tr> <tr> <td>Enter string you want to replace </td> <td><input type="text" name="text2"/></td> </tr> <tr> <td>Enter string you want to replace with</td> <td><input type="text" name="text3"/></td> </tr> <tr> <td></td> <td><input type="submit" value="submit"/></td> </tr> </table> </form> </body> </html>
MysqlReplaceServlet.java
import java.io.IOException; import java.io.PrintWriter; import java.sql.SQLException; import java.sql.DriverManager; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MysqlReplaceServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String str =request.getParameter("text1"); String str1 =request.getParameter("text2"); String str2 =request.getParameter("text3"); String className = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://192.168.10.13"; String user = "root"; String password = "root"; Connection con; PreparedStatement ps; ResultSet rs; try { Class.forName(className); con = DriverManager.getConnection(url, user, password); String sql = "SELECT REPLACE(" + "'" +str+"'"+","+"'"+str1+"'"+","+"'"+str2+"'"+")"; ps = con.prepareStatement(sql); rs = ps.executeQuery(); while (rs.next()) { sql = rs.getString(1); if(!sql.equals(str)) out.println("After replacing the string "+"\'"+str1+"' with "+"\""+str2+ "\" actual string become = "+ sql); else { out.println("String "+str1+" is not found."); out.println("Therefore string will remain same i.e. string = "+sql); } } } catch (SQLException sx) { out.println(sx); } catch (ClassNotFoundException cx) { out.println(cx); } } }
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>mysqlStringFunction</display-name> <servlet> <servlet-name>MysqlReplaceServlet</servlet-name> <servlet-class>MysqlReplaceServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MysqlReplaceServlet</servlet-name> <url-pattern>/MysqlReplaceServlet</url-pattern> </servlet-mapping> </web-app>
Output
When you will execute the above example you will get the output as :
1.
2.
3.
4. But when you will give the input like this :
5. You will get the output as :
[ 0 ] Comments