数据库语句处理

本文介绍了一个Java程序示例,该程序将JSON格式的数据转换为SQL插入语句。通过对JSON数据进行解析并将其字段转换成合适的SQL格式,文章展示了如何使用正则表达式进行字符串操作,并最终构造出SQL插入语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.sf.test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.json.JSONException;

public class JsonTry {

	public static void main(String[] args) {
		String json ="{                                                         "+
			"'InvoiceNumber': 'XM50586600',                            "+
			"'InvoiceDate':'2017-11-01',        "+
			"'SalesAmount': 14220,                                     "+
			"'TaxType': '2',                                           "+
			"'TaxRate': 0,                                             "+
			"'TaxAmount': 0,                                           "+
			"'TotalAmount': 14220,                                     "+
			"'DiscountAmount': 0,                                      "+
			"'OriginalCurrencyAmount': 0,                              "+
			"'ExchangeRate': 0,                                        "+
			"'Currency': ''                                            "+
			"}";
		StringBuilder sb = new StringBuilder();  
		List<String> keys =new ArrayList<String>();
		List<String> values =new ArrayList<String>();
        String sbString="";  
        try {  
            org.json.JSONObject jsonObject = new org.json.JSONObject(json);  
            jsonObject.remove("Attachment");
            Iterator iterator = jsonObject.keys();  
            while(iterator.hasNext()){  
                        String key = (String) iterator.next();  
                        keys.add(camel2Underline(key));
                        values.add(jsonObject.getString(key));
//                        sb.append("&"+key);  
//                        sb.append("="+jsonObject.getString(key));  
            }  
//            sb.append("&key");  
//            sbString = sb.substring(1);  
        } catch (JSONException e) {  
            e.printStackTrace();  
        }
        sbString+="insert into TI_INVOICE_DETAIL (\n";
        for(int i=0;i<keys.size();i++){
        	sbString+=keys.get(i)+",";
        }
        sbString+="\n)values(\n";
        for(int i=0;i<values.size();i++){
        	sbString+="'"+values.get(i)+"',";
        }
        sbString+="\n)";
        System.out.println(keys.size());
        System.out.println(values.size());
        System.out.println(sbString);
	}
	public static String underline2Camel(String line,boolean smallCamel){
        if(line==null||"".equals(line)){
            return "";
        }
        StringBuffer sb=new StringBuffer();
        Pattern pattern=Pattern.compile("([A-Za-z\\d]+)(_)?");
        Matcher matcher=pattern.matcher(line);
        while(matcher.find()){
            String word=matcher.group();
            sb.append(smallCamel&&matcher.start()==0?Character.toLowerCase(word.charAt(0)):Character.toUpperCase(word.charAt(0)));
            int index=word.lastIndexOf('_');
            if(index>0){
                sb.append(word.substring(1, index).toLowerCase());
            }else{
                sb.append(word.substring(1).toLowerCase());
            }
        }
        return sb.toString();
    }
	 public static String camel2Underline(String line){
	        if(line==null||"".equals(line)){
	            return "";
	        }
	        line=String.valueOf(line.charAt(0)).toUpperCase().concat(line.substring(1));
	        StringBuffer sb=new StringBuffer();
	        Pattern pattern=Pattern.compile("[A-Z]([a-z\\d]+)?");
	        Matcher matcher=pattern.matcher(line);
	        while(matcher.find()){
	            String word=matcher.group();
	            sb.append(word.toUpperCase());
	            sb.append(matcher.end()==line.length()?"":"_");
	        }
	        return sb.toString();
	    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值