- 论坛徽章:
- 0
|
在如果SQL里有引号,应该怎么处理?
package netkiller.database;
import java.util.*;
public class Database extends DBConnect{
private String sqlFrom = null;
private String sqlWhere = null;
private String sqlOrder = null;
private String sqlGroup = null;
private String sqlLimit = null;
private String sqlOffset = null;
//private HashMap sqlHashField = new HashMap();
private Hashtable sqlHashField = new Hashtable();
private Vector sqlVectorField = new Vector();
private StringBuffer sql = new StringBuffer();
private boolean isError = false;
private final static String ERROR = "ERROR:";
public Database() {
// TODO: Add your code here
}
public void setFrom(String value){
this.sqlFrom = value;
}
public String getFrom(){
if(sqlFrom == null){
isError = true;
return "<table>;";
}
return this.sqlFrom;
}
public void setWhere(String value){
this.sqlWhere = value;
}
public String getWhere(){
/*
if(sqlWhere == null){
return "<where>;";
}
*/
return sqlWhere;
}
public void setOrder(String value){
this.sqlOrder = value;
}
public void setGroup(String value){
this.sqlGroup = value;
}
public void setLimit(String value){
this.sqlLimit = value;
}
public void setOffset(String value){
this.sqlOffset = value;
}
public void setLimit(int value){
this.sqlLimit = value+"";
}
public void setOffset(int value){
this.sqlOffset = value+"";
}
public void put(Object key,Object value){
sqlHashField.put(key,value);
}
public void add(Object object){
sqlVectorField.add(object);
}
public String Select(){
sql = new StringBuffer(1024);
sql.append("Select " ;
Enumeration enumer = sqlVectorField.elements();
while(enumer.hasMoreElements()){
sql.append(enumer.nextElement());
if(enumer.hasMoreElements()) sql.append("," ;
}
sql.append(" From "+ getFrom());
if(sqlOrder != null) sql.append(" Where "+ getWhere());
if(sqlOrder != null) sql.append(" Order By "+ sqlOrder);
if(sqlGroup != null) sql.append(" Group By "+ sqlGroup);
if(sqlLimit != null) sql.append(" Limit "+ sqlLimit);
if(sqlOffset!= null) sql.append(" Offset "+ sqlOffset);
return isError?ERROR+sql.toString():sql.toString();
}
public String Delete(){
sql = new StringBuffer(255);
sql.append("Delete From " ;
sql.append(getFrom());
if(sqlOrder != null) sql.append(" Where "+ getWhere());
return isError?ERROR+sql.toString():sql.toString();
}
/*
public String Update(){
sql = new StringBuffer(1024);
Iterator iterator = sqlHashField.entrySet().iterator();
sql.append("Update " ;
String key,value;
if(sqlFrom != null) sql.append(sqlFrom+ " Set " ;
while(iterator.hasNext()){
Map.Entry map = (Map.Entry)iterator.next();
key = (String)map.getKey();
value = (String)map.getValue();
sql.append(key+"="+value);
if(iterator.hasNext())sql.append("," ;
}
if(sqlWhere != null) sql.append(" Where "+ sqlWhere);
return sql.toString();
}
*/
public String Update(){
sql = new StringBuffer(1024);
Iterator iterator = sqlHashField.entrySet().iterator();
sql.append("Update " ;
String key,value,swap = "";
sql.append(getFrom()+ " Set " ;
while(iterator.hasNext()){
Map.Entry map = (Map.Entry)iterator.next();
key = (String)map.getKey();
value = (String)map.getValue();
if(iterator.hasNext()){
swap = ","+key+"="+value + swap;
}else{
swap = key+"="+value + swap;
}
}
sql.append(swap);
if(sqlOrder != null) sql.append(" Where "+ getWhere());
return isError?ERROR+sql.toString():sql.toString();
}
public String Insert(){
sql = new StringBuffer(1024);
Enumeration enumer = sqlHashField.keys();
sql.append("Insert Into " ;
String key = "", value = "";
sql.append(getFrom()+ "(" ;
sqlHashField.size();
while(enumer.hasMoreElements()){
String tmp = (String)enumer.nextElement();
if(enumer.hasMoreElements()){
key = "," + tmp + key;
value = ","+ sqlHashField.get(tmp) +value;
}else{
key = tmp + key;
value = sqlHashField.get(tmp) + value;
}
}
sql.append(key);
sql.append(") value(");
sql.append(value);
sql.append(")");
return isError?ERROR+sql.toString():sql.toString();
}
public static void main(String[] args) {
// TODO: Add your code here
Database db = new Database();
db.add("id");
db.add("name");
db.add("company");
db.add("pages");
db.put("id","1");
db.put("name","netkiller");
db.put("company","none");
db.put("number","10");
db.put("tel","0755-1234666");
db.put("fax","0755-2556888");
db.setFrom("ctoc.test");
//db.setWhere("chen = chen");
db.setOrder("id");
db.setGroup("name");
db.setLimit(10);
db.setOffset("0");
String sql = db.Select();
System.out.println(sql);
System.out.println(db.Delete());
System.out.println(db.Update());
System.out.println(db.Insert());
}
} |
|