2
클래스, 섹션 및 날짜의 세 가지 필터가 있습니다. 이제 칠 가능성이 있습니다 :Java의 다중 필터 처리 -MySql
1 사용자 입력 클래스 사용자 입력 날짜
3)
2) 사용자 입력 섹션
4-) 사용자 입력 날짜 및 클래스
등등 ...
Java에서 이러한 가능성을 처리하기 위해 다음 코드를 작성했습니다 :
if(mySection.equals("0") && myClass.equals("0") && (FDate.trim().compareTo("")==0 || TDate.trim().compareTo("")==0 ))
{
out.println("Note: Please provide valid filteration attributes. Atleast one filter is required.");
return;
}
if(!mySection.equals("0") && myClass.equals("0") && (FDate.trim().compareTo("")==0 || TDate.trim().compareTo("")==0 ))
{
Query = "select st.rollno, concat(st.firstname,' ',st.midname,' ',st.lastname), st.level, st.section, st.rfidtag, sc.schoolname, sa.time, date_format(sa.time,'%T') from AAV.studentattendence sa, AAV.Students st, AAV.Schools sc where sa.studentindexptr=st.indexptr and sc.indexptr=st.schoolindexptr and st.section='"+mySection+"'";
}
if(!mySection.equals("0") && !myClass.equals("0") && (FDate.trim().compareTo("")==0 || TDate.trim().compareTo("")==0 ))
{
Query = "select st.rollno, concat(st.firstname,' ',st.midname,' ',st.lastname), st.level, st.section, st.rfidtag, sc.schoolname, sa.time, date_format(sa.time,'%T') from AAV.studentattendence sa, AAV.Students st, AAV.Schools sc where sa.studentindexptr=st.indexptr and sc.indexptr=st.schoolindexptr and st.section='"+mySection+"' and st.level='"+myClass+"' ";
}
if(mySection.equals("0") && !myClass.equals("0") && (FDate.trim().compareTo("")==0 || TDate.trim().compareTo("")==0 ))
{
Query = "select st.rollno, concat(st.firstname,' ',st.midname,' ',st.lastname), st.level, st.section, st.rfidtag, sc.schoolname, sa.time, date_format(sa.time,'%T') from AAV.studentattendence sa, AAV.Students st, AAV.Schools sc where sa.studentindexptr=st.indexptr and sc.indexptr=st.schoolindexptr and st.level='"+myClass+"' ";
}
if(mySection.equals("0") && myClass.equals("0") && (!(FDate.trim().compareTo("")==0) && !(TDate.trim().compareTo("")==0) ))
{
Query = "select st.rollno, concat(st.firstname,' ',st.midname,' ',st.lastname), st.level, st.section, st.rfidtag, sc.schoolname, sa.time, date_format(sa.time,'%T') from AAV.studentattendence sa, AAV.Students st, AAV.Schools sc where sa.studentindexptr=st.indexptr and sc.indexptr=st.schoolindexptr and date_format(time,'%Y-%m-%d %T') between '"+FromDate+"' and '"+ToDate+"'";
}
if(mySection.equals("0") && !myClass.equals("0") && (!(FDate.trim().compareTo("")==0) && !(TDate.trim().compareTo("")==0) ))
{
Query = "select st.rollno, concat(st.firstname,' ',st.midname,' ',st.lastname), st.level, st.section, st.rfidtag, sc.schoolname, sa.time, date_format(sa.time,'%T') from AAV.studentattendence sa, AAV.Students st, AAV.Schools sc where sa.studentindexptr=st.indexptr and sc.indexptr=st.schoolindexptr and date_format(time,'%Y-%m-%d %T') between '"+FromDate+"' and '"+ToDate+"' and st.level='"+myClass+"'";
}
if(!mySection.equals("0") && myClass.equals("0") && (!(FDate.trim().compareTo("")==0) && !(TDate.trim().compareTo("")==0) ))
{
Query = "select st.rollno, concat(st.firstname,' ',st.midname,' ',st.lastname), st.level, st.section, st.rfidtag, sc.schoolname, sa.time, date_format(sa.time,'%T') from AAV.studentattendence sa, AAV.Students st, AAV.Schools sc where sa.studentindexptr=st.indexptr and sc.indexptr=st.schoolindexptr and date_format(time,'%Y-%m-%d %T') between '"+FromDate+"' and '"+ToDate+"' st.section='"+mySection+"'";
}
if(!mySection.equals("0") && !myClass.equals("0") && (!(FDate.trim().compareTo("")==0) && !(TDate.trim().compareTo("")==0) ))
{
Query = "select st.rollno, concat(st.firstname,' ',st.midname,' ',st.lastname), st.level, st.section, st.rfidtag, sc.schoolname, sa.time, date_format(sa.time,'%T') from AAV.studentattendence sa, AAV.Students st, AAV.Schools sc where sa.studentindexptr=st.indexptr and sc.indexptr=st.schoolindexptr and date_format(time,'%Y-%m-%d %T') between '"+FromDate+"' and '"+ToDate+"' and st.section='"+mySection+"' and st.level='"+myClass+"'";
}
여기에 문제가 있습니다. 다른 필터를 추가하면 이러한 가능성이 크게 높아져 쿼리 및 처리가 늘어납니다. JAVA 또는 MYSQL을 통해이를 효율적으로 처리하려면 방법이 있어야합니다.
이 경우의 일반적인 SQL 문은 무엇입니까?
여러 입력 쿼리를 처리하는 Java 라이브러리가 있습니까?
뭔가 또는 다른 ...
가능성과 수 (필터에 추가 할 수 고려)와 같은 적은 코드로이 사건을 처리하기 위해 무엇을 할 수 있는지?