「sqljava解析」java 语法解析库
今天给各位分享sqljava解析的知识,其中也会对java 语法解析库进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java将json数据解析为sql语句?
- 2、java解析sql语句是实现不了的
- 3、java 怎么用正则表达式解析sql中的表名,已有半成品,求改善
- 4、大数据分析师面试必备:java与mysql解析
- 5、java解析字符串(解析sql语句,得到需要查询显示的字段名)。
- 6、使用java jdbc方法查询数据库 ora sql 报错 无效的列类型 但是使用java 解析出来的sql 去数据库查执行成
java将json数据解析为sql语句?
import java.util.Iterator;
import java.util.Set;
import java.util.Map.Entry;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class Sql
{
public static String parseSQL(String json)
{
JsonParser parser = new JsonParser();
JsonObject obj = (JsonObject) parser.parse(json);;
String table = obj.get("table").getAsString();
String op_type = obj.get("op_type").getAsString();
String sql = "";
if("I".equals(op_type))
{
sql += "INSERT INTO " + table + " (";
JsonObject after = (JsonObject) obj.get("after");
SetEntryString, JsonElement entry = after.entrySet();
IteratorEntryString, JsonElement it = entry.iterator();
String vs = " values (";
while(it.hasNext())
{
EntryString, JsonElement elem = it.next();
String key = elem.getKey();
String val = elem.getValue().toString();
sql += key + ", ";
vs += val + ", ";
}
sql = sql.replaceAll(",\\s*$", "");
vs = vs.replaceAll(",\\s*$", "");
sql += ") " + vs + ")";
}
else if("U".equals(op_type))
{
sql += "UPDATE " + table + " SET ";
JsonObject after = (JsonObject) obj.get("after");
SetEntryString, JsonElement entry = after.entrySet();
IteratorEntryString, JsonElement it = entry.iterator();
while(it.hasNext())
{
EntryString, JsonElement elem = it.next();
String key = elem.getKey();
String val = elem.getValue().toString();
sql += key + "=" + val + ", ";
}
sql = sql.replaceAll(",\\s*$", "");
sql += " WHERE ";
after = (JsonObject) obj.get("before");
entry = after.entrySet();
it = entry.iterator();
while(it.hasNext())
{
EntryString, JsonElement elem = it.next();
String key = elem.getKey();
String val = elem.getValue().toString();
sql += key + "=" + val + " AND ";
}
sql = sql.replaceAll("\\s*AND\\s*$", "");
}
else if("D".equals(op_type))
{
sql += "DELETE FROM " + table + " WHERE ";
JsonObject after = (JsonObject) obj.get("before");
SetEntryString, JsonElement entry = after.entrySet();
IteratorEntryString, JsonElement it = entry.iterator();
while(it.hasNext())
{
EntryString, JsonElement elem = it.next();
String key = elem.getKey();
String val = elem.getValue().toString();
sql += key + "=" + val + " AND ";
}
sql = sql.replaceAll("\\s*AND\\s*$", "");
}
return sql;
}
public static void main(String[] args)
{
String insert =
"{\"table\":\"GG.TCUSTORD\",\"op_type\":\"I\",\"op_ts\":\"2013-06-02 22:14:36.000000\",\"current_ts\":\"2015-09-18T13:39:35.447000\",\"pos\":\"00000000000000001444\",\"tokens\":{\"R\":\"AADPkvAAEAAEqL2AAA\"},\"after\":{\"CUST_CODE\":\"WILL\",\"ORDER_DATE\":\"1994-09-30:15:33:00\",\"PRODUCT_CODE\":\"CAR\",\"ORDER_ID\":\"144\",\"PRODUCT_PRICE\":17520.00,\"PRODUCT_AMOUNT\":3,\"TRANSACTION_ID\":\"100\"}}";
String update =
"{\"table\":\"GG.TCUSTORD\",\"op_type\":\"U\",\"op_ts\":\"2013-06-02 22:14:41.000000\",\"current_ts\":\"2015-09-18T13:39:35.748000\",\"pos\":\"00000000000000002891\",\"tokens\":{\"L\":\"206080450\",\"6\":\"9.0.80330\",\"R\":\"AADPkvAAEAAEqLzAAC\"},\"before\":{\"CUST_CODE\":\"BILL\",\"ORDER_DATE\":\"1995-12-31:15:00:00\",\"PRODUCT_CODE\":\"CAR\",\"ORDER_ID\":\"765\",\"PRODUCT_PRICE\":15000.00,\"PRODUCT_AMOUNT\":3,\"TRANSACTION_ID\":\"100\"},\"after\":{\"CUST_CODE\":\"BILL\",\"ORDER_DATE\":\"1995-12-31:15:00:00\",\"PRODUCT_CODE\":\"CAR\",\"ORDER_ID\":\"765\",\"PRODUCT_PRICE\":14000.00,\"PRODUCT_AMOUNT\":3,\"TRANSCATION_ID\":\"100\"}}";
String delete =
"{\"table\":\"GG.TCUSTORD\",\"op_type\":\"D\",\"op_ts\":\"2013-06-02 22:14:41.000000\",\"current_ts\":\"2015-09-18T13:39:35.766000\",\"pos\":\"00000000000000004338\",\"tokens\":{\"L\":\"206080450\",\"6\":\"9.0.80330\",\"R\":\"AADPkvAAEAAEqLzAAC\"},\"before\":{\"CUST_CODE\":\"DAVE\",\"ORDER_DATE\":\"1993-11-03:07:51:35\",\"PRODUCT_CODE\":\"PLANE\",\"ORDER_ID\":\"600\"}}";
System.out.println(parseSQL(insert));
System.out.println(parseSQL(update));
System.out.println(parseSQL(delete));
}
}
java解析sql语句是实现不了的
哈哈,楼主没文化了。这个是需要词法解析和语法解析的。总体的思路是设计一个分词器,按规则将语句进行分词。例如,关键字用1表示,字符串用2表示,当分词到 select时,标识1,分词到'select'时标识为2。然后语法解析器用来分析怎么样的词法组合才合理,需要构造语法树等。
整体来说还是很复杂的,但是是完全可以实现的。
最后推荐个很好的java实现: JavaCC
java 怎么用正则表达式解析sql中的表名,已有半成品,求改善
String str="from\\s+(.*)\\s+where?";
String sql="select * from table,table2 where a=b";
Pattern p=Pattern.compile(str);
Matcher matcher=p.matcher(sql);
while (matcher.find()) {
String string =matcher.group(1);
System.out.println(string);
}
大数据分析师面试必备:java与mysql解析
【导读】作为大数据工程师,其必须要掌握的基础知识就是java与mysql的关系、交互和连接,作为基础,也是面试考官经常会考的内容,为了帮助大家都能顺利通过考试,今天小编就来和大家唠一唠java与mysql的关系、交互和连接,好了,开始今天的内容大数据分析师面试必备:java与mysql解析。
1. SQL语言四大类:
DQL 数据查询语言 select
DML 数据操作语言 insert、update、delete
DDL 数据界说语言 create、alter
DCL 数据控制语言 grant权限
2. mysql数据库中的decimal类型(是数值型,不能存放字符串):
举例:decimal(18,0) 常用于身份证号码,但是带x的不可以。
举例:decimal(5,2)
状况一:假设小数点前面是3位,后边是2位,正常状况。
状况二:5指的是小数点前后不能超过5位,小数点后有必要是2位。
3. mysql中InnoDB和MyISAM引擎的差异:
innodb支撑:事务和主外键
myisam不支撑:事务和主外键
4. 【不需要背诵,选择题考点】向mysql中,a向表中添加数据的几种写法,题目:id int 主键自增,name varchar(11)
不为空。
5. 操作mysql数据库表有两种方式,第一种:点八点吧;第二种:写代码。【不需要背诵,只需要了解,考试选择题会出】
6. 在Java中,简述面向对象三大特征。
7. 在Java中,常用关键字:
1. 定义类的关键字是什么? class
2. 继承的关键字是什么? extends
3. 定义接口的关键字是什么? interface
4. 实现接口的关键字是什么? implements
5. 抽象类的关键字是什么? abstract
8. 在Java中,抽象类和接口的区别:
1. 抽象类中可以包含普通方法和抽象方法,接口中只能包含抽象方法
2. 抽象类中可以有构造方法,接口中没有构造方法
3. 抽象类只能单继承,可以实现多个接口
9. Java接口中有哪些成员?
1. 构造方法,没有
2. 常量,默认访问修饰符public static final,没有变量
3. 抽象方法,默认访问修饰符public abstract
10. 在Java中,抽象类和抽象方法的关系:
1. 抽象类中可以包含普通方法和抽象方法,抽象方法一定存在抽象类中。
2. 子类继承抽象父类,必须实现|重写抽象方法,除非子类也是抽象类。
3. 【判断题】抽象类中必须包含抽象方法?【错误×】
4. 【判断题】抽象方法一定存在抽象类中?【正确√】
11. Java重载的特点:
1. 在同一个类中
2. 方法名相同
3. 参数列表(个数、类型、顺序)不同
4. 与返回值类型和访问修饰符无关
12. Java重写的特点:
1. 在父子类中
2. 方法名相同
3. 参数列表相同
4. 返回值类型相同,或是其子类
5. 访问修饰符相同,或不能严于父类
13. 列举几种Java实现多态的形式:
1. 继承的存在
2. 父类引用指向子类对象 | 向上转型
3. 父类作为方法的返回值类型,父类作为方法的参数
14. Java接口的特性:单根性和传递性
15. 在Java中,throws和throw的区别:
1. throws 声明异常,用在定义方法小括号的后面
2. throw 抛出异常,写在方法体内
以上就是小编今天给大家整理发送的关于大数据分析师面试必备:java与mysql解析的相关内容,希望对各位考生有所帮助,想知道更多关于数据分析师的基本要求有哪些,关注小编持续更新数据分析师岗位解析。
java解析字符串(解析sql语句,得到需要查询显示的字段名)。
我写一条把
String aa=''select "+f_spbm+" from 表1"
主要注意其中的空格 select 后面的, from前面的空格。。
第二条一样。。表不固定,字段也就不能固定,功能也就不能固定,一般编写都会将表固定的。
使用java jdbc方法查询数据库 ora sql 报错 无效的列类型 但是使用java 解析出来的sql 去数据库查执行成
select LG_TNAME from SYS_CHANGHIS_SET where DB_CLASS=?];
这个SQL有问题 Object args=new Object[]{dbclass};这个变量需要正确声明
关于sqljava解析和java 语法解析库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-24,除非注明,否则均为
原创文章,转载请注明出处。