รบกวนขอคำแนะนำหน่อยค่ะ
คือ ตอนนี้ใช้ class ที่แนบมา ดึงข้อมูลขึ้นมาแสดง เป็น Tree
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class MyClass {
private static Connection conn;
private static PreparedStatement ps;
private static ResultSet rsRoot, rsParent, rsChild;
private static String sql;
public static void main(String args[]){
//arraylist to fill with the whole structure, fill it by yourself =)))
ArrayList<Object> menuArray = new ArrayList<Object>
);
try{
conn = MySQLConnector.connect2db(); //connecting
sql = "SELECT id_root,tx_root FROM menu_root"; //getting all roots
ps = conn.prepareStatement(sql);
rsRoot = ps.executeQuery();
while(rsRoot.next()){ //running through roots
String[] root = new String[2];
root[0] = rsRoot.getString(1);
root[1] = rsRoot.getString(2);
System.out.println(root[1]);
//getting parents for each root
sql = "SELECT id_parent,tx_parent FROM menu_parent WHERE id_root = ?";
ps = conn.prepareStatement(sql);
ps.setString(1,root[0]);
rsParent = ps.executeQuery();
while(rsParent.next()){ //running through parents
String[] parent = new String[2];
parent[0] = rsParent.getString(1);
parent[1] = rsParent.getString(2);
System.out.println(" "+parent[1]);
//getting all children for each parent
sql = "SELECT id_child,tx_child FROM menu_child WHERE id_parent = ?";
ps = conn.prepareStatement(sql);
ps.setString(1,parent[0]);
rsChild = ps.executeQuery();
while(rsChild.next()){ //running through children
String[] child = new String[2];
child[0] = rsChild.getString(1);
child[1] = rsChild.getString(2);
System.out.println(" "+child[1]);
}
}
}
}catch(SQLException e){
e.printStackTrace(System.out);
}finally{
try{
ps.close();
rsRoot.close();
rsParent.close();
rsChild.close();
if(!conn.isClosed()){conn.close();}
}catch(SQLException e){e.printStackTrace(System.out);}
}
}
}
class MySQLConnector {
private static Connection conn;
private static String url = "jdbc:mysql://localhost/ztest_menu"; //path to my database
private static String user = "dbuser";
private static String pwd = "dbpassword";
public static Connection connect2db(){
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, user, pwd);
}catch(Exception e){
e.printStackTrace(System.out);
}
return conn;
}
}
//
http://forums.codeguru.com/showthread.php?477415-RESOLVED-JSP-Treeview
แต่ที่นี้ RootID ประกอบไปด้วย ID หลายอัน
คือ ต้องการคลิก ปุ่มสินค้า ชนิด1 จากหน้า JSP ก็ให้แสดงเฉพาะข้อมูลที่เป็น Parent และ Child ที่อยู่ใน RootID 1
Output ที่ต้องการ :
root1
|__parent 1
|____chilld1
แต่คลาสที่ออกมาจะเป็น
Output :
root1
|__parent 1
|____chilld1
root2
|__parent 2
|____chilld2
root3
|__parent 3
|____chilld3
จะมีวิธีรับ Parameter การกดปุ่มเลือก จากหน้า JSP มายัง Class Java
ไดยังไงดีคะ เพื่อสามารถ ทำให้หน้าเว็บแสดง Tree แค่เฉพาะ RootID 1
ดังตัวอย่างข้างต้น
ขอบคุณค่ะ
สอบถามเกี่ยวกับ JSP + Java with MySQL ค่ะ
คือ ตอนนี้ใช้ class ที่แนบมา ดึงข้อมูลขึ้นมาแสดง เป็น Tree
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class MyClass {
private static Connection conn;
private static PreparedStatement ps;
private static ResultSet rsRoot, rsParent, rsChild;
private static String sql;
public static void main(String args[]){
//arraylist to fill with the whole structure, fill it by yourself =)))
ArrayList<Object> menuArray = new ArrayList<Object>);
try{
conn = MySQLConnector.connect2db(); //connecting
sql = "SELECT id_root,tx_root FROM menu_root"; //getting all roots
ps = conn.prepareStatement(sql);
rsRoot = ps.executeQuery();
while(rsRoot.next()){ //running through roots
String[] root = new String[2];
root[0] = rsRoot.getString(1);
root[1] = rsRoot.getString(2);
System.out.println(root[1]);
//getting parents for each root
sql = "SELECT id_parent,tx_parent FROM menu_parent WHERE id_root = ?";
ps = conn.prepareStatement(sql);
ps.setString(1,root[0]);
rsParent = ps.executeQuery();
while(rsParent.next()){ //running through parents
String[] parent = new String[2];
parent[0] = rsParent.getString(1);
parent[1] = rsParent.getString(2);
System.out.println(" "+parent[1]);
//getting all children for each parent
sql = "SELECT id_child,tx_child FROM menu_child WHERE id_parent = ?";
ps = conn.prepareStatement(sql);
ps.setString(1,parent[0]);
rsChild = ps.executeQuery();
while(rsChild.next()){ //running through children
String[] child = new String[2];
child[0] = rsChild.getString(1);
child[1] = rsChild.getString(2);
System.out.println(" "+child[1]);
}
}
}
}catch(SQLException e){
e.printStackTrace(System.out);
}finally{
try{
ps.close();
rsRoot.close();
rsParent.close();
rsChild.close();
if(!conn.isClosed()){conn.close();}
}catch(SQLException e){e.printStackTrace(System.out);}
}
}
}
class MySQLConnector {
private static Connection conn;
private static String url = "jdbc:mysql://localhost/ztest_menu"; //path to my database
private static String user = "dbuser";
private static String pwd = "dbpassword";
public static Connection connect2db(){
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, user, pwd);
}catch(Exception e){
e.printStackTrace(System.out);
}
return conn;
}
}
//http://forums.codeguru.com/showthread.php?477415-RESOLVED-JSP-Treeview
แต่ที่นี้ RootID ประกอบไปด้วย ID หลายอัน
คือ ต้องการคลิก ปุ่มสินค้า ชนิด1 จากหน้า JSP ก็ให้แสดงเฉพาะข้อมูลที่เป็น Parent และ Child ที่อยู่ใน RootID 1
Output ที่ต้องการ :
root1
|__parent 1
|____chilld1
แต่คลาสที่ออกมาจะเป็น
Output :
root1
|__parent 1
|____chilld1
root2
|__parent 2
|____chilld2
root3
|__parent 3
|____chilld3
จะมีวิธีรับ Parameter การกดปุ่มเลือก จากหน้า JSP มายัง Class Java
ไดยังไงดีคะ เพื่อสามารถ ทำให้หน้าเว็บแสดง Tree แค่เฉพาะ RootID 1
ดังตัวอย่างข้างต้น
ขอบคุณค่ะ