package com.meidusa.amoeba.aladdin.parser;
import java.io.StringReader;
import com.meidusa.amoeba.aladdin.parser.sql.AladdinParser;
import com.meidusa.amoeba.mysql.net.MysqlConnection;
import com.meidusa.amoeba.net.DatabaseConnection;
import com.meidusa.amoeba.parser.Parser;
import com.meidusa.amoeba.parser.expression.Expression;
import com.meidusa.amoeba.parser.statment.PropertyStatment;
import com.meidusa.amoeba.route.AbstractQueryRouter;
/**
* @author struct
*/
public class AladdinQueryRouter extends AbstractQueryRouter {
@Override
public Parser newParser(String sql) {
return new AladdinParser(new StringReader(sql));
}
@Override
protected void setProperty(DatabaseConnection conn, PropertyStatment statment,Object[] parameters) {
Expression value = null;
if((value = statment.getValue("autocommit")) != null){
//��ʱ��֧�ַ��Զ��ύ
/*if(((Long)comparable).longValue() == 1){
conn.setAutoCommit(true);
}else{
conn.setAutoCommit(false);
}*/
}else if((value = statment.getValue("names")) != null){
((MysqlConnection)conn).setCharset((String)value.evaluate(parameters));
}else if((value = statment.getValue("charset")) != null){
((MysqlConnection)conn).setCharset((String)value.evaluate(parameters));
}else if((value = statment.getValue("transactionisolation")) != null){
//conn.setTransactionIsolation((int)((Long)comparable).longValue());
}else if((value = statment.getValue("schema")) != null){
conn.setSchema((String)value.evaluate(parameters));
}
}
}