Sunday 22 April 2012

Call mysql user define function using JAVA

mysql function :-

DELIMITER $$

DROP FUNCTION IF EXISTS `country`.`test_function`$$

CREATE DEFINER=`root`@`localhost` FUNCTION `test_function`() RETURNS int(11)
BEGIN
    declare total int;

    select count(*) into total from country;

    return total;
    END$$

DELIMITER ;



java code :-

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Types;

public class MySqlFunction {

    static Connection connection = null;
    static CallableStatement pstat = null;
    static String connectionURL = "jdbc:mysql://localhost:3306/country";
   
    public static void main(String[] args) {
        try{
        Class.forName("com.mysql.jdbc.Driver");
        connection = DriverManager.getConnection(connectionURL,"root","dreams");
        pstat = connection.prepareCall("{ ? = call test_function()}");
        int count = 0;
        pstat.registerOutParameter(1, Types.INTEGER);
        pstat.execute();
        count = pstat.getInt(1);
        System.out.println(count);
              
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

Learn more java tutorial and java blog visit : Visions Developer

Call Mysql procedure from JAVA

mysql procedure :-

DELIMITER $$

DROP PROCEDURE IF EXISTS `country`.`test_country`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `test_country`(
        IN  p_id                           INT(11)       ,
        IN  p_country_name                      VARCHAR(30)
     )
BEGIN
    INSERT INTO country
    (id,name)
    VALUES
         (
           p_id,
           p_country_name
         ) ;
    END$$

DELIMITER ;


java code :

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;


public class MySqlProcedure {

    static Connection connection = null;
    static CallableStatement pstat = null;
    static String connectionURL = "jdbc:mysql://localhost:3306/country";
   
    public static void main(String[] args) {
        try{
        Class.forName("com.mysql.jdbc.Driver");
        connection = DriverManager.getConnection(connectionURL,"root","dreams");
        pstat = connection.prepareCall("{ call test_country(?,?)}"); // test_country is procedure name
        pstat.setInt(1, 5);
        pstat.setString(2, "test");
        pstat.executeUpdate();
       
        }catch(Exception e){
            e.printStackTrace();
        }

    }

}

Learn more java tutorial and java blog visit : Visions Developer

Access the Private method from outside class in Java

You can access private method from outside class by changing the runtime behavior of the class

public method getDeclareMethod(String name,Class[] parameterTypes) throws NoSuchMethodException,SecurityException : returns a Method object that reflects the specified declared method of the class or interface represented by this Class object.


public class DynamicClass {
 
    private void show(){
     System.out.println("Test");
    }
}
 
 
 
import java.lang.reflect.Method;
 
public class AccessPrivateMethod {
 
    public static void main(String args[]){
        try{
            Class clsClass = Class.forName("DynamicClass");
            Object o = clsClass.newInstance();
            Method method = clsClass.getDeclaredMethod("show", null);
            method.setAccessible(true);
            method.invoke(o, null);
        }catch(Exception e){
         e.printStackTrace();
        }
 
    }
}

Result : Test

Wednesday 9 November 2011

Struts2 UI Example


Struts 2 -> UI Example

Index.jsp
Register.jsp
Success.jsp
Struts.xml
Web.xml
Country.java
RegisterAction.java


Following figure show the struts 2 application structure.       






web.xml

web.xml is used to configure the servlet container properties of the First Simple appliation. The filter and the filter-mapping elements are used to setup the Struts 2 FilterDispatcher. The filter is mapped to the URL pattern "/*". This means all the incoming request that targets to the Struts 2 action will be handled by FilterDispatcher class.


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>


struts.xml

 

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
     <package name="default" extends="struts-default">
           <action name="*Register" method="{1}" class="com.RegisterAction">
                <result name="success">/success.jsp</result>
                <result name="populate">/register.jsp</result>
           </action>
     </package>
</struts>

Com.RegisterAction -> RegisterAction is a class where you can write the action for the form.
In action tag * Register means you can call RegisterAction class using (e.g insertRegister,updateRegister etc) in place of * you can write any thing.



Index.jsp
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=populateRegister.action">
Register.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
            pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib uri="/struts-tags" prefix="s"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Registration Form</title>
</head>
<body>
<table border="1" align="center">
<s:form action="Register">
<tr>
<td><s:textfield name="userName" label="User Name"></s:textfield></td>
</tr>
<tr>
<td><s:password name="password" label="Password"></s:password></td>
</tr>
<tr>
<td><s:radio list="{'Male','Female'}" name="gender"           label="Gender"></s:radio></td>
</tr>
<tr>
<td><s:textarea name="address" label="Address"></s:textarea></td>
</tr>
<tr>
<td><s:select list="countryList" name="country" label="Country"
            listKey="countryId" listValue="countryName" headerKey="0"
                                                headerValue="Country"></s:select></td>
</tr>
<tr>
<td><s:checkbox name="licence" label="Licence Agreement"></s:checkbox></td>
</tr>
<tr>
<td><s:checkboxlist list="hobbyList" name="hobby"
                        label="Hobbies"></s:checkboxlist></td>
</tr>
<tr>
<td><s:submit value="Register" /></td>
</tr>
</s:form>
</table>
</body>
</html>

If you want to store static value in combo box then write (list = “’a’,’b’,’c’”)
->listKey is store as a comb obox value and listValue is display in combo box and header value is by default display in combo box.

Success.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Successfully Register</title>
</head>
<body>
User Name : <s:property value="userName"/></br>
Password : <s:property value="password"/></br>
Gender : <s:property value="gender"/></br>
Address : <s:property value="address"/><br>
Country : <s:property value="country"/></br>
Licence : <s:property value="licence"/></br>
Hobbies : <s:property value="hobby"/>
</body>
</html>


Country.java

package com;

public class Country {

     public Country(int countryId, String countryName) {
           this.countryId = countryId;
           this.countryName = countryName;
     }

     private int countryId;
    
     private String countryName;

     public int getCountryId() {
           return countryId;
     }

     public void setCountryId(int countryId) {
           this.countryId = countryId;
     }

     public String getCountryName() {
           return countryName;
     }

     public void setCountryName(String countryName) {
           this.countryName = countryName;
     }
}


RegisterAction.java

package com;

import java.util.ArrayList;

import com.opensymphony.xwork2.ActionSupport;

public class RegisterAction extends ActionSupport{

     private String userName;
    
     private String password;
    
     private String gender;
    
     private String address;
    
     private Boolean licence;
    
     private String[] hobby;
    
     private ArrayList<String> hobbyList;
    
     private String country;
    
     private ArrayList<Country> countryList;
    
     public ArrayList<Country> getCountryList() {
           return countryList;
     }

     public void setCountryList(ArrayList<Country> countryList) {
           this.countryList = countryList;
     }

     public String getCountry() {
           return country;
     }

     public void setCountry(String country) {
           this.country = country;
     }

     public String[] getHobby() {
           return hobby;
     }

     public void setHobby(String[] hobby) {
           this.hobby = hobby;
     }

     public ArrayList<String> getHobbyList() {
           return hobbyList;
     }

     public void setHobbyList(ArrayList<String> hobbyList) {
           this.hobbyList = hobbyList;
     }

     public Boolean getLicence() {
           return licence;
     }

     public void setLicence(Boolean licence) {
           this.licence = licence;
     }

     public String getAddress() {
           return address;
     }

     public void setAddress(String address) {
           this.address = address;
     }

     public RegisterAction(){
          
     }
    
     public String execute(){
           return "success";
     }
    
     public String populate(){
           hobbyList = new ArrayList<String>();
           hobbyList.add("Cricket");
           hobbyList.add("Music");
           hobbyList.add("Reading");
          
           countryList = new ArrayList<Country>();
           countryList.add(new Country(1,"India"));
           countryList.add(new Country(2,"USA"));
           countryList.add(new Country(3,"Pakistan"));
          
           return "populate";
     }

     public String getUserName() {
           return userName;
     }

     public String getGender() {
           return gender;
     }

     public void setGender(String gender) {
           this.gender = gender;
     }

     public void setUserName(String userName) {
           this.userName = userName;
     }

     public String getPassword() {
           return password;
     }

     public void setPassword(String password) {
           this.password = password;
     }
}




Learn more java tutorial and java blog visit : Visions Developer

Wednesday 2 November 2011

Struts 2 Simple Example


Struts 2 -> First Simple Application

Login.java
Index.jsp
Success.jsp
Struts.xml
Web.xml


Following figure show the struts 2 application structure.


 web.xml
web.xml is used to configure the servlet container properties of the First Simple appliation. The filter and the filter-mapping elements are used to setup the Struts 2 FilterDispatcher. The filter is mapped to the URL pattern "/*". This means all the incoming request that targets to the Struts 2 action will be handled by FilterDispatcher class.


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>


We can change welcome fiel name like register.jsp or login.jsp

struts.xml

 

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="default" extends="struts-default">
        <action name="Login" class="com.Login">
            <result name="SUCCESS">/success.jsp</result>
        </action>
    </package>
</struts>

 

Index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@taglib uri="/struts-tags" prefix="s" %>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Login Page</title>
    </head>
    <body>
        <s:form action="Login">
            <s:textfield name="userName" label="User Name"></s:textfield>
            <s:submit name="submit" value="Submit"></s:submit>
        </s:form>
    </body>
</html>


Login.java

package com;

public class Login {
      private String userName;

      public Login(){
           
      }
     
      public String execute(){
            return "SUCCESS";
      }
      public String getUserName() {
            return userName;
      }

      public void setUserName(String userName) {
            this.userName = userName;
      }
     
}


Success.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib uri="/struts-tags" prefix="s" %>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Login Information</title>
    </head>
    <body>
        <h1><s:property value="userName" /></h1>
    </body>
</html>


Type the following url in the browser "http://localhost:8080/Example1/index.jsp". The index page will be displayed.


Enter the user name and submit the form. Welcome <<user name>> message will be displayed.