Belajardengan.com merupakan domain blog lama dari delajardengan.blogspot.com. Mohon kritik dan sarannya untuk perkembangan blog ini.
email: blog.tkx.pnp@gmail.com

Showing posts with label J2EE. Show all posts
Showing posts with label J2EE. Show all posts

Belajar Java 8.

♠ Posted by Unknown in ,
Berikut adalah contoh hal-hal baru yang bisa dilakukan dengan java 8.

A. Comparator, Sorting dengan class Collection
---
public class Test_1 {
    public static void main(String[] args) {
        List stringList = new ArrayList<>();
        stringList.add("fdasadQ");
        stringList.add("qfdasadQ");
        stringList.add("fwwdasadQ");
        stringList.add("sfdfsfdasadQ");
        stringList.add("4543fdasadQ");

        System.out.println(stringList);
//        Collections.sort(stringList); //
//        Collections.sort(stringList, (s1, s2) -> s1.compareTo(s2));        
Collections.sort(stringList, (s1, s2) -> s2.compareTo(s1)); 
//decending       
 System.out.println("setelah di sorting");
        System.out.println(stringList);
    }
}
result:
[fdasadQ, qfdasadQ, fwwdasadQ, sfdfsfdasadQ, 4543fdasadQ]
setelah di sorting
[sfdfsfdasadQ, qfdasadQ, fwwdasadQ, fdasadQ, 4543fdasadQ]
---

B. Functional Interface
public class Test_1 {
    public static void main(String[] args) {

        TesPrin tesPrin = () -> System.out.println("cetak terserah");
        TesPrinParam tesPrinParam = (ss) -> System.out.println("cetak "+ss);

        System.out.println("memanggil default method di interface >>> "+tesPrin.srqt(9));
        tesPrin.prin();
        tesPrinParam.prin("param");

        Operasi tambah = (int bilA,int bilB)-> bilA + bilB;
        Operasi kurang = (int bilA,int bilB)-> bilA - bilB;
        Operasi kali = (int bilA,int bilB)-> bilA * bilB;
        Operasi bagi = (int bilA,int bilB)-> bilA / bilB;

        System.out.println(kalkulator(3,4, tambah));
        System.out.println(kalkulator(3,4, kurang));
        System.out.println(kalkulator(3,4, kali));
        System.out.println(kalkulator(3,4, bagi));
    }


    interface TesPrin{
        void prin();

        default double srqt(double angka){
            return  Math.sqrt(angka);
        }
    }

    interface TesPrinParam{
        void prin(String param);
    }

    interface Operasi{
        int aksi(int bilA,int bilB);
    }

    public static int kalkulator(int bilA,int bilB, Operasi operasi){
        return operasi.aksi(bilA,bilB);
    }
}
result:
cetak terserah
cetak param
memanggil default method di interface >>> 3.0
cetak terserah
cetak param
7
-1
12
0

C. For Each

public class Test_1 {

    public static void main(String[] args) {

        List<Siswa> siswaList = new ArrayList<>();
        siswaList.add(new Siswa("Sucipto", "Pintar"));
        siswaList.add(new Siswa("Elnanda", "Pintar Sekali"));
        siswaList.add(new Siswa("Ujup", "1"));
        siswaList.add(new Siswa("Nazar", "1"));
        siswaList.add(new Siswa("Suseno", "XL"));
        System.out.println("forEach Siswa");
        siswaList.forEach(siswa -> System.out.println(siswa));
        System.out.println();
        siswaList.forEach(siswa -> {
            if (siswa!=null && siswa.getName().equals("Sucipto"))
                System.out.println(siswa);
        });
    }
}

class Siswa{

    String name;
    String kelas;
// get set

    @Override    public String toString() {
        return "Siswa{" +
                "name='" + name + '\'' +
                ", kelas='" + kelas + '\'' +
                '}';
    }
}


D. Stream
siswaList.stream()
        .filter(siswa -> siswa.getKelas().contains("Pintar"))
        .forEach(System.out::println);

List<Siswa> siswaList1 = siswaList.stream()
        .filter(siswa -> siswa.getKelas().contains("X"))
        .collect(Collectors.toList());
siswaList1.forEach(System.out::println);

steam grouping
Map<String, List<Siswa>> collect = siswaList.stream().collect(Collectors.groupingBy(Siswa::getName));
collect.forEach(
        (s, siswas) -> {
            System.out.println(s+"|"+siswas);
        }
);

E. Bla bla


F. Bla bla


G. Bla bla

Generate Column Name to POJO

♠ Posted by Unknown in ,,

Di kantor saya sekarang execute statement JDBC diganti dengan SQL2O, alasannya adalah masalah performance ketika mapping ke Object "katanya..!!!"). Dan emang ini kelihatan lebih cepat dari pada sebelumnya, namun SQL2O tidak suport mapping relasi seperti Hibernate, huff. capeekx
Dan satu lagi SQL2O belum ada tool untuk generate tabel to pojo secara auto. dan oleh sebab itu... kemaren ada yg nanya juga, kali ini saya sedikit share bagamana cara gila generate tabel db to pojo.


---
public class Nera extends SingleFrameApplication {
    JLabel label;
 
    @Override
    protected void startup() {
     ColumnDAO dao = new ColumnDAO();
     List<ColumnModel> list = dao.getColumnInfo("try2.student");
     for (ColumnModel columnModel : list) {
   System.out.println("private "+getVeriabel(columnModel.getType())+" "+getVeriabelName(columnModel.getField()) +";");
  }
   
     System.out.println("Map<String, String> map = new HashMap();");
   
    }
 
    String getVeriabel(String type){
     String[] typeOne = type.split("\\(");  
     String typeJava = Preference.map.get(typeOne[0]);
     if(typeJava==null){
      typeJava = Preference.map.get(typeOne[0].toUpperCase());
     }
     if(typeJava!=null && typeJava.equals("enum")){//need additional
      String[] enumtypes = typeJava.split("\\)");
      String[] enums =  enumtypes[0].split(",");
      return "enum";
     }
     return typeJava;
    }
 
    String getVeriabelName(String type){
     String name = "";
     type = type.toLowerCase();
     String[] nameOne = type.split("_");
     if(nameOne.length>0){
      name += nameOne[0];
      for (int i = 1; i < nameOne.length; i++) {
    char[] charNames= nameOne[i].toCharArray();
    String namePart = (""+charNames[0]).toString().toUpperCase();
    for (int j = 1; j < charNames.length; j++) {
     namePart+=""+charNames[j];
    }
    name+=namePart;
   }
     }
     return name;
    }
    public static void main(String[] args) {
        Application.launch(Nera .class, args);
    }  
}
public class ColumnDAO {

 Sql2o sql2o = new Sql2o("jdbc:mysql://localhost:3306/master", "root", "");

 public List<ColumnModel> getColumnInfo(String tablename){
     String sql = "SHOW COLUMNS FROM "+tablename;
     Map<String, String> map = new HashMap();
     map.put("Field", "Field");
     map.put("Type", "Type");
     map.put("Null", "Null");
     map.put("Key", "Key");
     map.put("Default", "Default");
     map.put("Extra", "Extra");
   
     sql2o.setDefaultColumnMappings(map);
     try (Connection con = sql2o.open()) {
         return con.createQuery(sql)
             .executeAndFetch(ColumnModel.class);
     }
   
 }
}
public class ColumnModel {
 String Field;
 String Type;
 String Null;
 String Key;
 String Default;
 String Extra;
//getset
}
public class Preference {
 public static Map<String, String> map = new HashMap();
 static {
  map.put("INT", "int");
  map.put("TINYINT", "boolean");
  map.put("SMALLINT", "int");
  map.put("MEDIUMINT", "int");
  map.put("BIGINT", "int");
  map.put("FLOAT", "double");
  map.put("DOUBLE", "double");
  map.put("DECIMAL", "double");
  map.put("DATE", "Date");
  map.put("DATETIME", "Date");
  map.put("TIMESTAMP", "Date");
  map.put("TIME", "Date");
  map.put("YEAR", "Date");
  map.put("CHAR", "char");
  map.put("VARCHAR", "String");
  map.put("BLOB", "String");
  map.put("TEXT", "String");
  map.put("TINYBLOB", "String");
  map.put("TINYTEXT", "String");
  map.put("MEDIUMBLOB", "String");
  map.put("MEDIUMTEXT", "String");
  map.put("LONGBLOB", "String");
  map.put("LONGTEXT", "String");
  map.put("ENUM", "[enum]");
 }
}
---

Dasar JEE : Pengalihan Response

♠ Posted by Unknown in
Latihan dasar JEE #1

Pada J2EE terdapat 2 methos pangalihan resposse:

  1. RequestDispacher
  2. Send Direct

Request Dispacher
Kali ini saya akan mencoba membuat sebuah form login sederhana. Disini terdapat dua buah inputtan, yaitu:
1. namauser
2. password
apabila user masuk sebagai admin maka akan dialihkan ke admin.jsp, apabia user memasukkan salah maka akan di alihkan kembali ke halaman login

index.jsp
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>login</h1>
        <form action="LoginDispacher" method="POST">
            <fieldset>
                UserName : <input type="text" name="nama" value="" />
            </fieldset>
            <fieldset>
                Password : <input type="password" name="pass" value="" />
            </fieldset>
            <fieldset>
                <input type="submit" value="Login" />
            </fieldset>
        </form>
    </body>
</html>

admin.jsp
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Halaman Admin</title>
    </head>
    <body>
        <h1> Anda Login sebagai "Admin"</h1>
        
    </body>
</html>

user.jsp
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>User Page</title>
    </head>
    <body>
        <h1>Anda login sebagai "Users"</h1>
    </body>
</html>

Login.java ---> servlet
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        String username= request.getParameter("nama");
        String password= request.getParameter("pass");
        RequestDispatcher dis=null;
        if(username.equalsIgnoreCase("admin")&&password.equals("admin")){
            dis= request.getRequestDispatcher("/admin.jsp");
        }else if(username.equalsIgnoreCase("user")&&password.equals("user")){
            dis =request.getRequestDispatcher("/user.jsp");
        }else{
            out.println("Login Salah");
            dis = request.getRequestDispatcher("/index.jsp");
        }
        dis.include(request, response);
    }




apabila pada baris 'dis.include(request, response);' login.java(servlet) diganti dengan 'dis.forward(request, response);' tulisan login salah tidak akan include ke login.

Send Direct
untuk penggunaan method sendDirect kita tinggal ganti login.java (servlet) jadi seperti :
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        String username= request.getParameter("nama");
        String password= request.getParameter("pass");
        //RequestDispatcher dis=null;
        if(username.equalsIgnoreCase("admin")&&password.equals("admin")){
            //dis= request.getRequestDispatcher("/admin.jsp");
            response.sendRedirect("admin.jsp");
        }else if(username.equalsIgnoreCase("user")&&password.equals("user")){
            //dis =request.getRequestDispatcher("/user.jsp");
            response.sendRedirect("user.jsp");
        }else{
            out.println("Login Salah");
            //dis = request.getRequestDispatcher("/index.jsp");
            response.sendRedirect("index.jsp");
        }
        //dis.forward(request, response);
    }

Perbedaan Pengalihan response dengan method Dispacher dan sendDirect adalah terdapat pada tampilan url di Browser......