oracle数据库一条sql语句批量插入数据

最近有个功能是需要重置不同身份的密码根据不同的规则,其中一个规则就是手机号码后六位,有多个身份,并且底层数据封装的比较死,只能通过公用方法去更新密码,但是这好几个身份都有共同的数据特性,用户编码,用户名称,手机号码,将这些字段存入一张临时表,在开始时根据需要选中某个单位的某个身份进行密码重置,这就涉及多个表插入临时表,当数据多的时候每次插入一条记录,一万条数据执行一万次记录很不现实,所以需要执行一次sql插入多条记录到数据库当中

ORACLE 数据库插入多条记录的sql结构为:

INSERT ALL 
    INTO TABLENAME(FIELDS1, FIELD2) VALUES(VALUE1, VALUE2)  
    INTO TABLENAME(FIELDS1, FIELD2) VALUES(VALUE1, VALUE2)
SELECT 1 FROM DUAL;

与mysql稍有不同,

比如在前台根据需要选择要初始化密码的身份

StringBuilder strSQL = new StringBuilder ();
if(选中身份1)
{
        strSQL.Append ("INTO TABLENAME(FIELD1, FIELD2) VALUES (VALUE1, VALUE2  ")
}
if(选中身份2)
{
        strSQL.Append ("INTO TABLENAME(FIELD1, FIELD2) VALUES (VALUE1, VALUEE2 ")
}
if(选中身份3)
{
        strSQL.Append ("INTO TABLENAME(FIELD1, FIELD2) VALUES (VALUE1, VALUE2  ")
}
if (strSQL.Length == 0)
{
       “未查询到数据”
        return;
}
strSQL.Insert (0, "INSERT ALL ");
 strSQL.Append (" SELECT 1 FROM DUAL ");
bool = 执行sql

在后续截取密码中,先判断手机号码是否合法,

strTelphone = "15641481111";
strTelphone.substring(strTelphone.length -6); //后六位
posted @ 2020-08-26 15:28  木马不是马  阅读(1380)  评论(0编辑  收藏  举报