Mysql SOUNDEX() Function Example Using Java Servlet

Mysql SOUNDEX() Function Example Using Java Servlet


Posted in : Java Posted on : September 28, 2011 at 7:37 PM Comments : [ 0 ]

In this tutorial you will learn how to use soundex() String function of mysql with java servlet.

Mysql SOUNDEX() Function Example Using Java Servlet

In this tutorial you will learn how to use soundex() String function of mysql with java servlet.

SOUNDEX is one of the popular phonetic algorithm that indexs names as said in English. It encodes a name of the English letters that consist a first letter of the name and the further consonant letters are encoded into their respective digits. The soundex code for a name contains the three numerical digits that are comes after a letter. In this algorithm the digits are defined as their sound of letters. The similar sounding consonants have the common digit. It encodes the English strings by replacing with the their respective digits as defined below :

  1. It keeps the first letter of name and removes all the further happening of the letters a, e, i, o, u, h, w, y.
  2. After the first letter it puts the respective digits in place of the following constants as :
    •  b, f, p, v :- 1
    • c, g, j, k, q, s, x, z :- 2
    • d, t :- 3
    • l :- 4
    • m, n :- 5
    • r :- 6
  3. If the two similar sounding letters are used adjacently then the only respective single digit is coded.

So, in MySql SOUNDEX() function returns a value after encoding the English letters into their respective digit except the first letter.

Syntax :

soundex('string');

Here the argument "string" is the English letters

Now, since I have to use this function in java servlet program, therefore I have created a java servlet class named MysqlSoundExServlet 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 SOUNDEX(" + "'" + str + "'" +")"; (Here 'str' is a variable 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 :

soundEx.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>SOUNDEX function</title>
</head>
<body>
<form action="MysqlSoundExServlet" method="get">
<table>
<tr>
<td>Enter a String </td>
<td><input type="text" name="text1"/></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="submit"/></td>
</tr>
</table>
</form>
</body>
</html>

MysqlSoundExServlet.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 MysqlSoundExServlet 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 className = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://192.168.10.13";
String user = "root";
String password = "root";

Connection con;
PreparedStatement ps, ps1;
ResultSet rs, rs1;

try {
Class.forName(className);
con = DriverManager.getConnection(url, user, password);

String sql = "SELECT SOUNDEX(" + "'" + str + "'" +")";
ps = con.prepareStatement(sql);
rs = ps.executeQuery();

while (rs.next()) {
sql = rs.getString(1);
out.println("The string "+"'"+str+"'"+" after using soundex() function =" + "\"" + 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>MysqlSoundExServlet</servlet-name>
<servlet-class>MysqlSoundExServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MysqlSoundExServlet</servlet-name>
<url-pattern>/MysqlSoundExServlet</url-pattern>
</servlet-mapping>

</web-app>

Output

When you will execute the above example you will get the output as :

  1.

  2.

  3.

 Download Source Code

Go to Topic «PreviousHomeNext»

Your Comment:


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 

 
Tutorial Topics