📄 hqlgenerator.java
字号:
package qinyi.beans;
import java.util.ArrayList;
import java.util.List;
public class HQLGenerator {
public static void main(String[] args) {
HQLGenerator hqlGenerator = new HQLGenerator();
hqlGenerator.setClassName("OrderDetails");
//List filters = new ArrayList();
//List sorters = new ArrayList();
//Filter filter = new Filter();
hqlGenerator.setOperator("<");
hqlGenerator.setValue("10");
hqlGenerator.setColumn("id");
hqlGenerator.setLogic("and");
hqlGenerator.getWhereString();
hqlGenerator.setColumn("orderId");
hqlGenerator.setLogic("or");
hqlGenerator.setOperator("<");
hqlGenerator.setValue("2");
//Filter filter1 = new Filter();
hqlGenerator.setSortBy("1");
hqlGenerator.setSortBy("1");
hqlGenerator.setSortBy("2");
// sqlGenerator.setSortBy(1);
//sqlGenerator.setSortBy(1);
//sqlGenerator.setSortBy(6);
// System.out.println(dbtrans.getWhereString());
System.out.println(hqlGenerator.getGeneratedHql());
}
private String originWhere="";
private String whereString="";
private boolean showAll=true;
private String column;
public String getHql(){
return "for "+className;
}
private String logic;
private String operator;;
private List sorters = new ArrayList();
private String className;
private String value;
public List getSorters() {
return sorters;
}
public HQLGenerator() {
}
public String getGeneratedHql() {
// sorters=new Sorter[rsmt.getMetaData().getColumnCount()];
String generatedHql = "from "+className + " where 1=1 "+originWhere+whereString + getOrderbyString();
System.out.println(generatedHql);
return generatedHql;
}
private String getOrderbyString() {
String orderbyString = " ORDER BY ";
if (sorters != null)
for (int i = 0; i < sorters.size(); i++)
orderbyString += (i > 0 ? "," : "")
+ ((Sorter) sorters.get(i)).getOrderbyString();
return orderbyString.equalsIgnoreCase(" ORDER BY ") ? "" : orderbyString;
}
public String getSortString(String column) {
if (sorters.size() > 0)
for (int i = 0; i < sorters.size(); i++)
if (((Sorter) sorters.get(i)).getColumn().equalsIgnoreCase(column))
return ((Sorter) sorters.get(i)).getDescString();
return null;
}
public String getWhereString() {
//String whereString= " where 1=1";
if(value!=null&&column!=null&&operator!=null&&logic!=null)
{showAll=false;
if(!whereString.toLowerCase().contains((logic+" "+column+" "+operator+" "+value).toLowerCase()))
whereString +=" "+logic+" "+column+" "+operator+" "+value;
value=null;
logic=null;
column=null;
operator=null;
}
if(showAll==true)whereString="";
return whereString;
}
public boolean isSorted(String column) {
if (sorters != null)
for (int i = 0; 0 < sorters.size(); i++)
if (((Sorter) sorters.get(i)).getColumn().equalsIgnoreCase(column))
return true;
return false;
}
public void setSortBy(String sortBy) {
if (sortBy.equals("0")) {
sorters.clear();
return;
}
for (int i = 0; i < sorters.size(); i++)
if (((Sorter) sorters.get(i)).getColumn().equalsIgnoreCase(sortBy)) {
((Sorter) sorters.get(i)).toggleDesc();
return;
}
Sorter sorter = new Sorter();
sorter.setColumn(sortBy);
sorters.add(sorter);
}
public void setSorters(List sorters) {
this.sorters = sorters;
}
public void setClassName(String className) {
this.className = className;
}
public void setShowAll(boolean showAll) {
this.showAll = showAll;
}
public void setColumn(String column) {
this.column = column;
}
public void setLogic(String logic) {
this.logic = logic;
}
public void setOperator(String operator) {
this.operator = operator;
}
public void setValue(String value) {
this.value = value;
}
public void setOriginWhere(String originWhere) {
this.originWhere = originWhere;
}
public String getOriginWhere() {
return originWhere;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -