MySql FORMAT() Function Example using Java Servlet

MySql FORMAT() Function Example using Java Servlet


Posted in : Java Posted on : November 11, 2011 at 5:59 PM Comments : [ 0 ]

In this tutorial you will learn about how to use the format() function of mysql math function with java servlet

MySql FORMAT() Function Example using Java Servlet

In this tutorial you will learn about how to use the format() function of mysql math function with java servlet

FORMAT() function in mysql rounds up the number passed as first argument to a significant decimal places passed as second argument and also formats the number given as 12345.678 to like 12,345.678. According to the signature of this function if the number i.e. second argument which specifies the number upto how many decimal places the actual number have to be rounded is given 0 in such case the actual number i.e. first argument will be formats and rounded from the left of the number specified for the rounding of decimal places i.e. the second argument.

Syntax :

format(num, dnum);

Here the argument 'num' is an actual number which have to be format and rounded upto 'dnum' decimal places and the argument 'dnum' is a number which specifies upto how many decimal places the 'num' has to be rounded up.

Now, since I have to use this function in java servlet program, therefore I have created a java servlet class named MysqlFormatServlet 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 input 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 FORMAT("+num+","+i+")";  (Here 'num' and 'i'  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 :

format.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>FORMAT() Function</title>
</head>
<body>
<form method="get" action="MysqlFormatServlet">
<table>
<tr>
<td>Enter the number to be format </td>
<td> <input type="text" name="text1"/></td>
</tr>
<tr>
<td>Enter number of decimal places to round up </td>
<td><input type="text" name="text2"/></td>
</tr>
<tr>
<td></td>
<td align="center"><input type="submit" value="OK"/></td>
</tr>
</table>
</form>
</body>
</html>

MysqlFormatServlet.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 MysqlFormatServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();

double num = Double.parseDouble(request.getParameter("text1"));
int dnum = Integer.parseInt(request.getParameter("text2"));

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);

if(dnum==0)
{
int i=0;
String sql = "SELECT FORMAT("+num+","+i+")";
System.out.println(sql);
ps = con.prepareStatement(sql);
rs= ps.executeQuery();
while(rs.next())
{
String rnd = rs.getString(1);
out.println("After format and round the value is = "+rnd);
}
}
else
{
int i=dnum;
String sql = "SELECT FORMAT("+num+","+i+")";
System.out.println(sql);
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next())
{
String rnd = rs.getString(1);
out.println("After format and round the the value is = "+rnd);
}
}
}
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>mysqlMathematicalFunction</display-name>
<servlet>
<servlet-name>MysqlFormatServlet</servlet-name>
<servlet-class>MysqlFormatServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>MysqlFormatServlet</servlet-name>
<url-pattern>/MysqlFormatServlet</url-pattern>
</servlet-mapping>

</web-app>

Output :

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

 1.

  2. When you will enter the value like the below

  3. You will get the output as :

  4. But when you will enter the value like the below

  5. You will get the output as :

Download Source Code

Go to Topic «PreviousHomeNext»

Your Comment:


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

 
Tutorial Topics