Hibernate 5.4 Configuration

 

Core Hibernate 5.4 Configuration

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>HibernateProj</groupId>
  <artifactId>HibernateProj</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
      <version>5.4.10.Final</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.15</version>
    </dependency>
  </dependencies>
</project>
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
    	<!-- <property name="hibernate.current_session_context_class">thread</property> -->
    	<property name="hibernate.current_session_context_class">org.hibernate.context.internal.ThreadLocalSessionContext</property>
        <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password"></property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
    </session-factory>
</hibernate-configuration>
package com;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.Query;

public class MainClass {
  @SuppressWarnings("deprecation")
  public static void main(String[] args) {

    try{  
      Class.forName("com.mysql.cj.jdbc.Driver");  
      Connection con=DriverManager.getConnection(  
          "jdbc:mysql://localhost:3306/test","root","");  
      //here sonoo is database name, root is username and password  
      Statement stmt=con.createStatement();
//			stmt.executeUpdate("insert into emp VALUES (null, 'shailesh', 31, 'Nagpur')");
      ResultSet rs=stmt.executeQuery("select * from emp");  
      while(rs.next())
        System.out.println(rs.getString(1)+"  "+rs.getString(2)+"  "+rs.getString(3)+"  "+rs.getString(4));  
      con.close();  
    } catch(Exception e){ System.out.println(e);}  

    System.out.println("Hibernate connection established successfully...");

    Session session = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory().openSession();
    Query query = session.createNativeQuery("select * from emp");
    List<Student[]> list = query.list();
    System.out.println(list);

    for(Object[] obj : list) {
      Student std = new Student((Integer)obj[0], (String)obj[1], (Integer)obj[2], (String)obj[3]);
      System.out.println(std);
    }		
    ////////////////////////////////////////////////
    Query query2 = session.createNativeQuery("Select id, name, age, city from emp");
    query2.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
    List<Student> students = query2.list();
    System.out.println(students);
    session.close();
    //==============================//
    Session session2 = new Configuration().configure("database.cfg.xml").buildSessionFactory().openSession();
    List list2 = session2.createNativeQuery("select * from testdmarc").list();
    System.out.println(list2);
  }
}

 

Reference:

https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#sql

https://tools.jboss.org/downloads/jbosstools/2019-09/4.13.0.Final.html#update_site

https://www.tutorialspoint.com/hibernate/hibernate_examples.htm

Hibernate Native SQL Query Example

Servlet File Upload

Ref:
https://www.codejava.net/java-ee/servlet/java-file-upload-example-with-servlet-30-api

https://www.baeldung.com/upload-file-servlet

Servlet 3 File Upload – @MultipartConfig, Part

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

/**
 * Servlet implementation class MultiPartServlet
 */
@WebServlet("/multiPartServlet")
@MultipartConfig(fileSizeThreshold=1024*1024*10, 	// 10 MB 
maxFileSize=1024*1024*50,      	// 50 MB
maxRequestSize=1024*1024*100)   	// 100 MB
public class MultiPartServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public MultiPartServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    response.getWriter().append("Served at: ").append(request.getContextPath());
    
    PrintWriter out = response.getWriter();
  }

  private static final String SAVE_DIR = "uploadFiles";
  
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    // gets absolute path of the web application
        String appPath = request.getServletContext().getRealPath("");
        // constructs path of the directory to save uploaded file
        String savePath = appPath + File.separator + SAVE_DIR;
         
        // creates the save directory if it does not exists
        File fileSaveDir = new File(savePath);
        if (!fileSaveDir.exists()) {
            fileSaveDir.mkdir();
        }
    
    
    for (Part part : request.getParts()) {
        String fileName = extractFileName(part);
//		    part.write(fileName);
        response.getWriter().println("/home/shailesh/eclipse-workspace/TestProject/WebContent/images/" + fileName);
        part.write("/home/shailesh/eclipse-workspace/TestProject/WebContent/images/" + fileName);
    }
    response.getWriter().println("Uploaded...");
    doGet(request, response);
  }
  
  private String extractFileName(Part part) {
      String contentDisp = part.getHeader("content-disposition");
      String[] items = contentDisp.split(";");
      for (String s : items) {
          if (s.trim().startsWith("filename")) {
              return s.substring(s.indexOf("=") + 2, s.length()-1);
          }
      }
      return "";
  }

}

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>TestProject</groupId>
  <artifactId>TestProject</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.3</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
  	<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
  <dependency>
    	<groupId>org.springframework</groupId>
   	 	<artifactId>spring-webmvc</artifactId>
    	<version>5.2.1.RELEASE</version>
  </dependency>
  
  <!-- Apache Commons FileUpload -->
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.3.2</version>
    </dependency>

    <!-- Apache Commons IO -->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.5</version>
    </dependency>
  
  </dependencies>
</project>
<form method="post" action="multiPartServlet" enctype="multipart/form-data">
  Choose a file: <input type="file" name="multiPartServlet" />
    <input type="submit" value="Upload" />
</form>

 

Core Java Assignment

Classes and Objects
1. Create class Rectangle
a) data members
– length
– breadth
b) methods
– setDimensions
– area
– perimeter

2. Create class Cube
a) data members
– length
– breadth
– height
b) methods
– setDimensions
– volume

3. Create class Worker
a) data members
– wages
– wdays
b) methods
– setData
– payment

Method Overloading

1. Create class Box
a) data members
– length
– breadth
– height
b) methods
– setDimensions(3 args)
– setDimensions(1 arg)
– volume

Method Returning Value
1. WAP to find total payment of two employeesCreate
Create class Worker
a) data members
– wages
– wdays
b) methods
– setData
– int payment

Constructors
1. Create class Circle and initialize radius using a default constructor
2. Create class Circle and initialize radius using parameterized constructor
3. Create class Circle and define two constructor default and parameterized (Constructor overloading)

Static data members and member functions
1. Create a class Circle and find its area
a) data members
– int radius
– static double pi
b) methods
– area

2. Create a class Bank Account and find interest
a) data members
– int account_number
– int balance
– static double interest_rate
b) methods
– interest (balance * interest_rate * no_of_period / 100.0)
– changeRate (change interest_rate)

OOPS

  1. Design a class Rectangle
    data members:
    length
    breadthmember function / method:
    setDimension()
    area()
    perimeter()
    ——————————————————–
  2. Design a class Worker
    data members:
    wages
    wdaysmember function / method:
    setData()
    payment()
    ——————————————————–
  3. Design a class Box
    data members:
    length
    breadth
    heightmember functions / methods:
    setDimension()
    volume()
    ——————————————————–
  4. Design a class Rectangle
    data members:
    length
    breadth
    member functions / methods:
    setDimension()
    area()
    perimeter()It must overload setDimension() method twice:
    – by passing 1 parameter / argument
    – by passing 2 parameter / argument
    ——————————————————–
  5. Design a class Box
    data members:
    length
    breadth
    height
    member functions / methods:
    volume()It must contain 3 constructors:
    – 1 parameter / argument
    – 2 parameter / argument
    – 3 parameter / argument
    ——————————————————–
  6. Design a class Account
    data members:
    account_number
    balance
    member functions / methods:
    deposit()
    withdraw()
    showBalance()
    ——————————————————–
  7. Design a class Set
    data members:
    3 numbersmember functions / methods:
    SUM()
    MEAN()
    MAX()
    MIN()
    ——————————————————–
  8. Design a class Student
    data members:
    roll_number
    namemember functions / methods:
    setData()
    getData()
    ——————————————————–
  9. Design a class Account
    data members:
    account_number
    balance
    interest_rateinterest_rate must be shared by all objects (static modifier) and its default value 10.25member function:
    interest(no_of_years)
    ——————————————————–
  10. Design a class Student
    data members:
    roll_number
    namemember functions / methods:
    getData()roll_number must be automatically generated.It also keep track of total number of Students.
    ——————————————————–
  11. Design a package MyCircle and MyRectangle
    data members:
    radius
    length
    breadthmember functions / methods:
    area()
    circumference()
    perimeter()
    ——————————————————–
  12. Design a class Studentdata members:
    roll_number
    namemember functions / methods:
    getData()
    showData()Create 5 objects of Student using Array
    ——————————————————–
  13. Design a class Student and List ClassRoom
    add list of Students in ClassRoom
    display List
    ——————————————————–
  14. Design a class Account and List Bank
    add list of Account in Bank
    display List
    ——————————————————–
  15. Create array of Student Objects
    data members:
    roll_no
    name
    collegemember functions / methods:
    readData()
    showData()
    ——————————————————–
  16.  Create a class RBI
    data members:
    balance
    member functions / methods:
    RBI()
    deposit(int amt)
    withdraw(int amt)
    showBalance()

Array to CSV in Java

 

package com.demo;

import java.io.IOException;
import com.csvreader.CsvWriter;

public class ArrayToCSVDemo {

  public static void main(String[] args) {
    
    String array[] = {"Suryanagar, Vikhroli", "Java", "SQL", "13"};
    
    try {
      
      CsvWriter writer = new CsvWriter("awesomefile.csv");
      
      writer.writeRecord(array);
      
      writer.close();
      
    } catch (IOException e) {

      e.printStackTrace();
    }
    
  }

}

Reference Link: http://www.journaldev.com/12014/opencsv-csvreader-csvwriter-example

Jar File: http://www.java2s.com/Code/Jar/j/Downloadjavacsvjar.htm

Using FileWriter class

import java.io.FileWriter;

public class TestFileWriter {

  public static String implodeString(String[] split) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < split.length; i++) {			
        sb.append(split[i]);
        if (i != split.length - 1) {
            sb.append("\",\"");
        }
    }
    return "\"" . concat(sb.toString()) .concat("\"");
  }
  
  public static void main(String[] args) {
    
    String array[] = {"Suryanagar, Vikhroli", "Java", "SQL", "13"};
    
    try {
      
      FileWriter fw = new FileWriter("testout.csv");
      //fw.write("\"Suryanagar, Vikhroli\", Java, SQL, 13");
      fw.write(implodeString(array));
      fw.close();
    } catch (Exception e) {
      System.out.println(e);
    }

    System.out.println("Success...");

  }

}

 

 

Apache POI (Poor Obfuscation Implementation File System)

Prerequisite
Download all poi jar files
https://poi.apache.org/download.html


  1.  Terms
    • Workbook – The file contains number of sheets
    • Sheet – Matrix contains rows and cell
    • Row – Record of an entity in one row
    • Cell – A single cell which hold value
  2. JFileChooser fileChooser = new JFileChooser();
            int returnValue = fileChooser.showDialog(null, "Select File");
            
            if(returnValue == JFileChooser.APPROVE_OPTION) {
                Workbook workbook = new HSSFWorkbook(new FileInputStream(fileChooser.getSelectedFile()));
                
                Sheet sheet = workbook.getSheetAt(0);
                
                for(Iterator<Row> rit = sheet.rowIterator(); rit.hasNext();){
                    for(Iterator<Cell> cit = rit.next().cellIterator(); cit.hasNext();){
                        System.out.println(cit.next());
                    }
                    System.out.println("");
                }
            } else {
                System.out.println("Invalid output");
            }
  3. JFileChooser fileChooser = new JFileChooser();
            int returnValue = fileChooser.showDialog(null, "Select File");
            
            if(returnValue == JFileChooser.APPROVE_OPTION) {
                FileInputStream excelFile = new FileInputStream(fileChooser.getSelectedFile());
                Workbook workbook = new XSSFWorkbook(excelFile);
                
                Sheet sheet = workbook.getSheetAt(0);
                
                for(Iterator<Row> rit = sheet.rowIterator(); rit.hasNext();) {
                    for(Iterator<Cell> cit = rit.next().cellIterator(); cit.hasNext();) {
                        System.out.print(cit.next() + "\t" + cit.next());
                    }
                    System.out.println("");
                }
            }
  4.  Workbook workbook = new HSSFWorkbook();
            
            Sheet sheet1 = workbook.createSheet("movies");
    //        Sheet sheet2 = workbook.createSheet("Test Cases");
    //        Sheet sheet3 = workbook.createSheet(WorkbookUtil.createSafeSheetName("$*(^&?"));
            
            Row row = sheet1.createRow(0);
            
    //        Cell cell = row.createCell(4);
    //        cell.setCellValue("Hello World");
    //        Cell cell2 = row.createCell(3);
    //        cell2.setCellValue("terminator");
    //        System.out.println(cell.getRichStringCellValue().toString());
    //        System.out.println(cell2.getRichStringCellValue().toString());
    
            Cell cell1 = row.createCell(0);
            Cell cell2 = row.createCell(1);
            Cell cell3 = row.createCell(2);
            Cell cell4 = row.createCell(3);
            Cell cell5 = row.createCell(4);
            
            cell1.setCellValue(5);
            cell2.setCellValue("+");
            cell3.setCellValue(6);
            cell4.setCellValue("=");
            cell5.setCellFormula("A1+C1");
            
            try {
                FileOutputStream outputStream = new FileOutputStream("test1.xlsx");
                workbook.write(outputStream);
                outputStream.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
  5.  Complete Program
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Iterator;
    import javax.swing.JFileChooser;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.util.WorkbookUtil;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    
    /**
     *
     * @author Shailesh Sonare
     */
    public class ApachePOIDemo {
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] shailesh) throws IOException {
            
            /*
            
            Workbook workbook = new HSSFWorkbook();
            
            Sheet sheet1 = workbook.createSheet("movies");
    //        Sheet sheet2 = workbook.createSheet("Test Cases");
    //        Sheet sheet3 = workbook.createSheet(WorkbookUtil.createSafeSheetName("$*(^&?"));
            
            Row row = sheet1.createRow(0);
            
    //        Cell cell = row.createCell(4);
    //        cell.setCellValue("Hello World");
    //        Cell cell2 = row.createCell(3);
    //        cell2.setCellValue("terminator");
    //        System.out.println(cell.getRichStringCellValue().toString());
    //        System.out.println(cell2.getRichStringCellValue().toString());
    
            Cell cell1 = row.createCell(0);
            Cell cell2 = row.createCell(1);
            Cell cell3 = row.createCell(2);
            Cell cell4 = row.createCell(3);
            Cell cell5 = row.createCell(4);
            
            cell1.setCellValue(5);
            cell2.setCellValue("+");
            cell3.setCellValue(6);
            cell4.setCellValue("=");
            cell5.setCellFormula("A1+C1");
            
            try {
                FileOutputStream outputStream = new FileOutputStream("test1.xlsx");
                workbook.write(outputStream);
                outputStream.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            */
            /*
            JFileChooser fileChooser = new JFileChooser();
            int returnValue = fileChooser.showDialog(null, "Select File");
            
            if(returnValue == JFileChooser.APPROVE_OPTION) {
                Workbook workbook = new HSSFWorkbook(new FileInputStream(fileChooser.getSelectedFile()));
                
                Sheet sheet = workbook.getSheetAt(0);
                
                for(Iterator<Row> rit = sheet.rowIterator(); rit.hasNext();){
                    for(Iterator<Cell> cit = rit.next().cellIterator(); cit.hasNext();){
                        System.out.println(cit.next());
                    }
                    System.out.println("");
                }
            } else {
                System.out.println("Invalid output");
            }
            */
            
            JFileChooser fileChooser = new JFileChooser();
            int returnValue = fileChooser.showDialog(null, "Select File");
            
            if(returnValue == JFileChooser.APPROVE_OPTION) {
                FileInputStream excelFile = new FileInputStream(fileChooser.getSelectedFile());
                Workbook workbook = new XSSFWorkbook(excelFile);
                
                Sheet sheet = workbook.getSheetAt(0);
                
                for(Iterator<Row> rit = sheet.rowIterator(); rit.hasNext();) {
                    for(Iterator<Cell> cit = rit.next().cellIterator(); cit.hasNext();) {
                        System.out.print(cit.next() + "\t" + cit.next());
                    }
                    System.out.println("");
                }
            }
            
        }    
    }
    

     

     

polymorphism

class A {
    public void test(){
        System.out.println("hello");
    }
    
    public void foo(){
        System.out.println("fooo");
    }
}

class B extends A {
    @Override
    public void test(){
        System.out.println("world");
    }
    public void bar(){
        System.out.println("baar");
    }
}


public class PolymorphismDemo {

    public static void main(String[] args) {
        
        A a = new A();
        a.test(); // allowed: will print hello
        a.foo(); // allowed: will print fooo
        //a.bar(); // not allowed: compile time error
        
        B b = new B();
        b.test(); // allowed: will print world
        b.foo(); // allowed: will print fooo
        b.bar(); // allowed: will print baar
        
        A c = new B();
        c.test(); // allowed: will print world
        c.foo(); // allowed: will print fooo
        //c.bar(); // not allowed: compile time error
        
        //B d = new A(); // not allowed: compile time error
        
        A e = new B();
        A f = (A)e;
        f.test(); // allowed: will print world
        f.foo(); // allowed: will print fooo
        //f.bar(); // not allowed: compile time error
        
        B g = new B();
        A h = (A)g;
        h.test(); // allowed: will print world
        h.foo(); // allowed: will print fooo
        //h.bar(); // not allowed: compile time error
    }    
}

 

Sorting User Defined Collection Using Comparator

public class Student {
    String name;
    int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" + "name=" + name + ", age=" + age + '}';
    }
}

 

package collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;


/**
 *
 * @author Shailesh Sonare
 */
public class MyCollections {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(0, 5);
        list.add(1, 2);
        list.add(2, 3);
        list.add(3, 8);
        
        Collections.sort(list, new Comparator<Integer>(){
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1.compareTo(o2);
            }            
        });
        
        for(Iterator i = list.iterator(); i.hasNext();) {
            System.out.println("" + i.next());
        }
        
        
        Hashtable ht = new Hashtable();
        ht.put(0, "Shailesh Sonare");
        
        HashMap hm = new HashMap();
        hm.put(0, "Mahesh Sonare");
        
        ArrayList<Student> sl = new ArrayList<Student>();
        
        sl.add(new Student("Shailesh", 28));
        sl.add(new Student("Mahesh", 20));
        sl.add(new Student("Shilpa", 22));
        
        Collections.sort(sl, new Comparator<Student>(){
            @Override
            public int compare(Student o1, Student o2) {
                if(o1.age > o2.age) {
                    return 1;
                } else if(o1.age < o2.age) {
                    return -1;
                } else {
                    return 0;
                }
            }
        });
        
        for(Iterator i = sl.iterator(); i.hasNext();) {
            System.out.println((Student)i.next());
        }
        
    }
    
}