SQL校验方法

面对大量表字段,手动对比Select与Insert字段易出错。本文分享使用Scala编写的SQL校验方法,目前支持三种类型的校验,旨在提升工作效率并减少错误。
摘要由CSDN通过智能技术生成

问题简介:在工作中,表字段多到一定程度,Select 中的字段和结果集中的字段对比很麻烦,还容易出错。于是写了一个检查Select和Insert的方法。(使用的是Scala语言)

  1. 代码如下

 

import scala.annotation.tailrec

/**
  * 校验SQL,现支持三种校验
  * select 查询校验:select语句与结果集比对
  * insert into select 查询插入校验:查询语句与插入语句
  * insert into 插入校验:insert字段与values中的值数量
  *
  */
object TestSQL extends App {

  //select语句测试sql
  val selectStr =
    """
      |select
      |name,
      |password,
      |hello2,
      |hello2,
      |hello2
      | from
      |  testTables
      |
      |rs.getString("name")
      |rs.getString("password")
      |rs.getString("hello")
      |rs.getString("hello")
    """.stripMargin

  //insert测试语句
  val insertStr =
    """
      |Insert
      |into
      |testTable
      |(name,
      |password,
      |hello2,,,)
      | values
      |(,,,,,)
    """.stripMargin

  //insert into select测试语句
  val insertAndSelectSql =
    s"""
       |insert
       |into
       |testTable
       |(name,
       |password,
       |password,
       |hello)
       | values
       |select
       |name,
       |password,
       |hello2,
       |hello2,
       |hello3
       | from
       |  testTable2
   """.stripMargin

  //测试方法
  sqlTest(insertAndSelectSql)

  /**
    * 判断字符串中关键字,匹配校验语句
    *
    * @param str 待判断的字符串
    */
  def sqlTest(str: String): Unit = {
    //将字符串转换成小写
    val strLower = str.toLowerCase
    judgeSQL(strLower) match {
      case (true, false) => selectTest(strLower)
      case (false, true) => insertTest(strLower)
      case (true, true) => insertAndSelectTest(strLower)
      case (_, _) => println("暂不支持该SQL")
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值