/**
* 对象转化sql
* o 对象 User
* objName对象名称入User
* whereSql 值如 "detailId='"+c.getDetailId()+"'"
*/
public String objectChangeInsertHql(Object o,String objName,String whereSql){
try{
List list= getFiledsInfo(o);
// StringBuffer sb=new StringBuffer("update "+o.getClass().getSimpleName()+" set ");
StringBuffer sb=new StringBuffer("insert into "+objName+"(");
StringBuffer sbb=new StringBuffer("");
for(int i=1;i<list.size();i++){//跳过id这个字段
Map<String,Object> mp=(Map<String,Object>)list.get(i);
String type=mp.get("type")+"";
String value=mp.get("value")+"";
if("null".equals(value)){
value="";
}
//mp.toString().replaceAll("null", "");
if("Integer".equals(type)){
sb.append(mp.get("name"));
sbb.append(value);
}else if("String".equals(type)){
sb.append(mp.get("name"));
sbb.append("'"+value+"'");
}else if("Double".equals(type)){
sb.append(mp.get("name"));
sbb.append(value);
}else if("Date".equals(type)){
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sb.append(mp.get("name"));
sbb.append("'"+sf.format((Date)mp.get("value"))+"'");
}else{
sb.append(mp.get("name"));
sbb.append("'"+value+"'");
}
//sb.append(mp.get("name")+"=?");
if(i==list.size()-1){
}else{
sb.append(",");
sbb.append(",");
}
}
sb.append(" ) values ("+sbb.toString()+")");
//System.out.println(sb.toString());
return sb.toString();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return "";
}
/**
* 对象转化sql
* o 对象 User
* objName对象名称入User
* whereSql 值如 "detailId='"+c.getDetailId()+"'"
*/
public String objectChangeDeleteHql(Object o,String objName,String whereSql){
try{
List list= getFiledsInfo(o);
// StringBuffer sb=new StringBuffer("update "+o.getClass().getSimpleName()+" set ");
StringBuffer sb=new StringBuffer("delete from "+objName+"");
sb.append(" where "+whereSql);
//System.out.println(sb.toString());
return sb.toString();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return "";
}
/**
* 对象转化sql
* o 对象 User
* objName对象名称入User
* whereSql 值如 "detailId='"+c.getDetailId()+"'"
*/
public String objectChangeUpdateHql(Object o,String objName,String whereSql){
try{
List list= getFiledsInfo(o);
// StringBuffer sb=new StringBuffer("update "+o.getClass().getSimpleName()+" set ");
StringBuffer sb=new StringBuffer("update "+objName+" set ");
for(int i=1;i<list.size();i++){//跳过id这个字段
Map<String,Object> mp=(Map<String,Object>)list.get(i);
String type=mp.get("type")+"";
String value=mp.get("value")+"";
if("null".equals(value)){
value="";
}
//mp.toString().replaceAll("null", "");
if("Integer".equals(type)){
sb.append(mp.get("name")+"="+value);
}else if("String".equals(type)){
sb.append(mp.get("name")+"='"+value+"'");
}else if("Double".equals(type)){
sb.append(mp.get("name")+"="+mp.get("value"));
}else if("Date".equals(type)){
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sb.append(mp.get("name")+"='"+sf.format((Date)mp.get("value"))+"'");
}else{
sb.append(mp.get("name")+"='"+value+"'");
}
//sb.append(mp.get("name")+"=?");
if(i==list.size()-1){
}else{
sb.append(",");
}
}
sb.append(" where "+whereSql);
//System.out.println(sb.toString());
return sb.toString();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return "";
}
/**
* 对象转化sql
* o 对象 User
* objName对象名称入User
* whereSql 值如 "detailId='"+c.getDetailId()+"'"
*/
public String objectChangeSelectHql(Object o,String objName,String whereSql){
try{
List list= getFiledsInfo(o);
// StringBuffer sb=new StringBuffer("update "+o.getClass().getSimpleName()+" set ");
StringBuffer sb=new StringBuffer("select ");
for(int i=0;i<list.size();i++){//跳过id这个字段
Map<String,Object> mp=(Map<String,Object>)list.get(i);
if(i<list.size()-1){
sb.append(mp.get("name")+",");
}else{
sb.append(mp.get("name")+" ");
}
}
sb.append(" from "+objName);
return sb.toString();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return "";
}
/**
* 对象转化sql
* o 对象 User
* objName对象名称入User
* antherName User u 穿入值为 u
*/
public String objectChangeSelectHqlByAntherName(Object o,String objName,String antherName){
try{
List list= getFiledsInfo(o);
// StringBuffer sb=new StringBuffer("update "+o.getClass().getSimpleName()+" set ");
StringBuffer sb=new StringBuffer("select ");
for(int i=0;i<list.size();i++){//跳过id这个字段
Map<String,Object> mp=(Map<String,Object>)list.get(i);
if(i<list.size()-1){
sb.append(antherName+"."+mp.get("name")+",");
}else{
sb.append(antherName+"."+mp.get("name")+" ");
}
}
sb.append(" from "+objName);
return sb.toString();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return "";
}
/**
* 获取属性类型(type),属性名(name),属性值(value)的map组成的list
* */
public List getFiledsInfo(Object o){
Field[] fields=o.getClass().getDeclaredFields();
String[] fieldNames=new String[fields.length];
List list = new ArrayList();
Map<String,Object> infoMap=null;
for(int i=0;i<fields.length;i++){
infoMap = new HashMap<String,Object>();
infoMap.put("type", fields[i].getType().getSimpleName());
// infoMap.put("type", fields[i].getType().toString());
infoMap.put("name", fields[i].getName());
infoMap.put("value", getFieldValueByName(fields[i].getName(), o));
list.add(infoMap);
}
return list;
}
/**
* 根据属性名获取属性值
* */
private Object getFieldValueByName(String fieldName, Object o) {
try {
String firstLetter = fieldName.substring(0, 1).toUpperCase();
String getter = "get" + firstLetter + fieldName.substring(1);
Method method = o.getClass().getMethod(getter, new Class[] {});
Object value = method.invoke(o, new Object[] {});
return value;
} catch (Exception e) {
return null;
}
}
/**
* 获取属性名数组
* */
private String[] getFiledName(Object o){
Field[] fields=o.getClass().getDeclaredFields();
String[] fieldNames=new String[fields.length];
for(int i=0;i<fields.length;i++){
System.out.println(fields[i].getType());
fieldNames[i]=fields[i].getName();
}
return fieldNames;
}
/**
* 获取对象的所有属性值,返回一个对象数组
* */
public Object[] getFiledValues(Object o){
String[] fieldNames=this.getFiledName(o);
Object[] value=new Object[fieldNames.length];
for(int i=0;i<fieldNames.length;i++){
value[i]=this.getFieldValueByName(fieldNames[i], o);
}
return value;
}
* 对象转化sql
* o 对象 User
* objName对象名称入User
* whereSql 值如 "detailId='"+c.getDetailId()+"'"
*/
public String objectChangeInsertHql(Object o,String objName,String whereSql){
try{
List list= getFiledsInfo(o);
// StringBuffer sb=new StringBuffer("update "+o.getClass().getSimpleName()+" set ");
StringBuffer sb=new StringBuffer("insert into "+objName+"(");
StringBuffer sbb=new StringBuffer("");
for(int i=1;i<list.size();i++){//跳过id这个字段
Map<String,Object> mp=(Map<String,Object>)list.get(i);
String type=mp.get("type")+"";
String value=mp.get("value")+"";
if("null".equals(value)){
value="";
}
//mp.toString().replaceAll("null", "");
if("Integer".equals(type)){
sb.append(mp.get("name"));
sbb.append(value);
}else if("String".equals(type)){
sb.append(mp.get("name"));
sbb.append("'"+value+"'");
}else if("Double".equals(type)){
sb.append(mp.get("name"));
sbb.append(value);
}else if("Date".equals(type)){
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sb.append(mp.get("name"));
sbb.append("'"+sf.format((Date)mp.get("value"))+"'");
}else{
sb.append(mp.get("name"));
sbb.append("'"+value+"'");
}
//sb.append(mp.get("name")+"=?");
if(i==list.size()-1){
}else{
sb.append(",");
sbb.append(",");
}
}
sb.append(" ) values ("+sbb.toString()+")");
//System.out.println(sb.toString());
return sb.toString();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return "";
}
/**
* 对象转化sql
* o 对象 User
* objName对象名称入User
* whereSql 值如 "detailId='"+c.getDetailId()+"'"
*/
public String objectChangeDeleteHql(Object o,String objName,String whereSql){
try{
List list= getFiledsInfo(o);
// StringBuffer sb=new StringBuffer("update "+o.getClass().getSimpleName()+" set ");
StringBuffer sb=new StringBuffer("delete from "+objName+"");
sb.append(" where "+whereSql);
//System.out.println(sb.toString());
return sb.toString();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return "";
}
/**
* 对象转化sql
* o 对象 User
* objName对象名称入User
* whereSql 值如 "detailId='"+c.getDetailId()+"'"
*/
public String objectChangeUpdateHql(Object o,String objName,String whereSql){
try{
List list= getFiledsInfo(o);
// StringBuffer sb=new StringBuffer("update "+o.getClass().getSimpleName()+" set ");
StringBuffer sb=new StringBuffer("update "+objName+" set ");
for(int i=1;i<list.size();i++){//跳过id这个字段
Map<String,Object> mp=(Map<String,Object>)list.get(i);
String type=mp.get("type")+"";
String value=mp.get("value")+"";
if("null".equals(value)){
value="";
}
//mp.toString().replaceAll("null", "");
if("Integer".equals(type)){
sb.append(mp.get("name")+"="+value);
}else if("String".equals(type)){
sb.append(mp.get("name")+"='"+value+"'");
}else if("Double".equals(type)){
sb.append(mp.get("name")+"="+mp.get("value"));
}else if("Date".equals(type)){
SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sb.append(mp.get("name")+"='"+sf.format((Date)mp.get("value"))+"'");
}else{
sb.append(mp.get("name")+"='"+value+"'");
}
//sb.append(mp.get("name")+"=?");
if(i==list.size()-1){
}else{
sb.append(",");
}
}
sb.append(" where "+whereSql);
//System.out.println(sb.toString());
return sb.toString();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return "";
}
/**
* 对象转化sql
* o 对象 User
* objName对象名称入User
* whereSql 值如 "detailId='"+c.getDetailId()+"'"
*/
public String objectChangeSelectHql(Object o,String objName,String whereSql){
try{
List list= getFiledsInfo(o);
// StringBuffer sb=new StringBuffer("update "+o.getClass().getSimpleName()+" set ");
StringBuffer sb=new StringBuffer("select ");
for(int i=0;i<list.size();i++){//跳过id这个字段
Map<String,Object> mp=(Map<String,Object>)list.get(i);
if(i<list.size()-1){
sb.append(mp.get("name")+",");
}else{
sb.append(mp.get("name")+" ");
}
}
sb.append(" from "+objName);
return sb.toString();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return "";
}
/**
* 对象转化sql
* o 对象 User
* objName对象名称入User
* antherName User u 穿入值为 u
*/
public String objectChangeSelectHqlByAntherName(Object o,String objName,String antherName){
try{
List list= getFiledsInfo(o);
// StringBuffer sb=new StringBuffer("update "+o.getClass().getSimpleName()+" set ");
StringBuffer sb=new StringBuffer("select ");
for(int i=0;i<list.size();i++){//跳过id这个字段
Map<String,Object> mp=(Map<String,Object>)list.get(i);
if(i<list.size()-1){
sb.append(antherName+"."+mp.get("name")+",");
}else{
sb.append(antherName+"."+mp.get("name")+" ");
}
}
sb.append(" from "+objName);
return sb.toString();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return "";
}
/**
* 获取属性类型(type),属性名(name),属性值(value)的map组成的list
* */
public List getFiledsInfo(Object o){
Field[] fields=o.getClass().getDeclaredFields();
String[] fieldNames=new String[fields.length];
List list = new ArrayList();
Map<String,Object> infoMap=null;
for(int i=0;i<fields.length;i++){
infoMap = new HashMap<String,Object>();
infoMap.put("type", fields[i].getType().getSimpleName());
// infoMap.put("type", fields[i].getType().toString());
infoMap.put("name", fields[i].getName());
infoMap.put("value", getFieldValueByName(fields[i].getName(), o));
list.add(infoMap);
}
return list;
}
/**
* 根据属性名获取属性值
* */
private Object getFieldValueByName(String fieldName, Object o) {
try {
String firstLetter = fieldName.substring(0, 1).toUpperCase();
String getter = "get" + firstLetter + fieldName.substring(1);
Method method = o.getClass().getMethod(getter, new Class[] {});
Object value = method.invoke(o, new Object[] {});
return value;
} catch (Exception e) {
return null;
}
}
/**
* 获取属性名数组
* */
private String[] getFiledName(Object o){
Field[] fields=o.getClass().getDeclaredFields();
String[] fieldNames=new String[fields.length];
for(int i=0;i<fields.length;i++){
System.out.println(fields[i].getType());
fieldNames[i]=fields[i].getName();
}
return fieldNames;
}
/**
* 获取对象的所有属性值,返回一个对象数组
* */
public Object[] getFiledValues(Object o){
String[] fieldNames=this.getFiledName(o);
Object[] value=new Object[fieldNames.length];
for(int i=0;i<fieldNames.length;i++){
value[i]=this.getFieldValueByName(fieldNames[i], o);
}
return value;
}