天道酬勤,学无止境

Java字符串转Sql语句In格式工具方法

    /**
     * 工具-字符串-转换Sql查询IN中使用的格式
     * 效果:a,b==>'a','b'
     * @param str
     * @return
     */
    public String strToDbin(String str){
        return String.format("'%s'", StringUtils.join(str.split(","),"','"));
    }
    /**
     * 工具-字符串-转换为Sql查询分组IN格式
     * 解决:Sql中in超过1000个报错问题 
     * @param field 列名,例如:ID
     * @param strIns 待拆分的字符串 a,b,c
     * @return field in('a') and field in('b') and field in('c')
     */
    public String strToSqlGroupIn(String field,String strIns) {
        int groupNum = 1;
        String groupInArr = new String();
        StringBuffer buffer=new StringBuffer();
        if(StringUtils.isNoneBlank(strIns)){
            String[] array=strIns.split(",");
            //数组总长度
            int len=array.length;
            //分组数
            int groupCount=len/groupNum;
            for(int k=0;k<groupCount;k++){
                groupInArr=new String();
                for(int i=(k*groupNum);i<(k*groupNum+groupNum);i++){
                    if(i>k*groupNum){
                        groupInArr+=",";
                    }
                    groupInArr+=array[i].trim();
                }
                if(k>0){
                    buffer.append(" and ");
                }
                buffer.append(String.format(" %s in(%s)",field,strToDbin(groupInArr)));
            }
            if(len%groupNum != 0){
                //未整除
                groupInArr=new String();
                //处理最后一组数据
                for(int j=(groupCount*groupNum);j<len;j++){
                    if(j>groupCount*groupNum){
                        groupInArr+=",";
                    }
                    groupInArr+=array[j].trim();
                }
                if(buffer.length()>0){
                    buffer.append(" and ");
                }
                buffer.append(String.format(" %s in(%s)",field,strToDbin(groupInArr)));
            }
        }
        return buffer.toString();
    }

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Scala第二章节
    文章目录 Scala第二章节章节目标1. 输出语句和分号1.1 输出语句1.2 分号 2. Scala中的常量2.1 概述2.2 分类2.3 代码演示 3. Scala中的变量3.1 概述3.2 语法格式3.3 示例3.4 val和var变量的区别3.5 使用类型推断来定义变量 4. 字符串4.1 使用双引号4.2 使用插值表达式4.3 使用三引号4.4 扩展: 惰性赋值 5. 标识符5.1 概述5.2 命名规则5.3 命名规范 6. 数据类型6.1 简述6.2 数据类型6.3 Scala类型层次结构6.4 思考题 7. 类型转换7.1 概述7.2 自动类型转换7.3 强制类型转换7.4 值类型和String类型之间的相互转换 8. 键盘录入8.1 概述8.2 使用步骤8.3 示例 9. 案例: 打招呼9.1 概述9.2 具体步骤9.3 参考代码 9. 案例: 打招呼9.1 概述9.2 具体步骤9.3 参考代码 Scala第二章节 章节目标 掌握变量, 字符串的定义和使用掌握数据类型的划分和数据类型转换的内容掌握键盘录入功能理解Scala中的常量, 标识符相关内容 1. 输出语句和分号 1.1 输出语句 方式一: 换行输出 格式: println(里边写你要打印到控制台的数据); 方式二: 不换行输出 格式: print(里边写你要打印到控制台的数据); 注意
  • 声明和PreparedStatement之间的区别(Difference between Statement and PreparedStatement)
    问题 “ Prepared Statement”是“ Statement”的稍微强大一点的版本,并且至少应始终与“ Statement”一样快捷且易于处理。 准备好的语句可能已参数化 大多数关系数据库通过四个步骤处理JDBC / SQL查询: 解析传入的SQL查询编译SQL查询规划/优化数据采集路径执行优化的查询/获取并返回数据 对于发送到数据库的每个SQL查询,一个Statement将始终执行上述四个步骤。 一条Prepared Statement预执行上述执行过程中的步骤(1)-(3)。 因此,在创建Prepared Statement时,会立即执行一些预优化。 这样做的目的是减轻执行时数据库引擎的负担。 现在我的问题是-“使用预处理语句还有其他好处吗?” 回答1 PreparedStatement的优点: SQL语句的预编译和数据库侧缓存可提高整体执行速度,并具有批量重用同一SQL语句的能力。 通过内置对引号和其他特殊字符的转义,自动防止SQL注入攻击。 请注意,这要求您使用任何PreparedStatement setXxx()方法来设置值preparedStatement = connection.prepareStatement("INSERT INTO Person (name, email, birthdate, photo) VALUES (?, ?, ?, ?)
  • JAVA操作数据库——JDBC
    一、简介 JDBC(Java Database Connectivity)Java数据库连接,是一种用于执行SQL语句的javaAPI,可以为多种关系的数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序 Java具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用的杰出语言。所需要的只是java应用程序与各种不同数据库之间进行对话的方法。 JDBC可以在各种平台上使用java,如Windows、Mac os和各种版本的UNIX。 JDBC库包括通常与数据库使用相关的下面提到的每个任务的API。 连接数据库创建SQL或MySQL语句在数据库中执行SQL或MySQL查询查看和修改生成的记录。 二、JDBC体系结构 JDBC API支持用于数据库访问的两层和三层处理模型,但通常,JDBC体系结构由两层组成: **JDBC API:**这提供了应用程序到DBC管理器连接**JDBC 驱动程序:**这支持JDBC管理器到驱动程序的连接 JDBC API使用驱动程序管理器和特定于数据库的驱动程序来提供与异构数据库的透明连接 三、JDBC核心组件(类库) **DriverManager(驱动管理器):**此类管理数据库驱动程序列表
  • JAVA基础02——Java的控制结构
    Java的控制结构 控制台的输出与输入控制台输出控制台输入 块作用域分支结构分类if单分支双分支多分支分支的嵌套 switch...case 循环概念循环类别while循环do...while循环for循环 循环嵌套循环跳转语句 控制台的输出与输入 控制台输出 System.out.println(内容); 控制台输入 //1、导入输入工具 import java.util.Scanner; //2、创建工具对象 Scanner input = new Scanner(System.in); //3、控制台获取指定类型的变量值 int age = input.nextInt(); //4、在控制台输出输入数据 System.out.println(age); //5、释放资源 input.close(); 特殊:输入一个char类型字符 char gender; Scanner input = new Scanner(System.in); gender=input.next().charAt(0); 块作用域 块,是指由若干条Java语句组成的语句,并用一对大括号括起来。块决定了变量的作用域。一块块可以嵌套在另一个块中。 public static void main(String[] args){ int n; ... { int k; ... }//k is only
  • 如何关闭Java代码某些部分的Eclipse代码格式化程序?(How to turn off the Eclipse code formatter for certain sections of Java code?)
    问题 我有一些Java代码,其中的SQL语句编写为Java字符串(请不要使用OR / M烈火,嵌入式SQL就是它-不是我的决定)。 为了简化维护,我将SQL语句从语义上分成了几行代码,并由几行代码组成。 因此,而不是像这样: String query = "SELECT FOO, BAR, BAZ FROM ABC WHERE BAR > 4"; 我有类似的东西: String query = "SELECT FOO, BAR, BAZ" + " FROM ABC " + " WHERE BAR > 4 "; 这种样式使SQL更易于阅读和维护(IMHO),尤其是对于较大的查询。 例如,我可以将编辑器置于“覆盖”模式并相当容易地就地修改文本。 请注意,此问题超出了SQL的特定示例的范围。 用任何垂直格式编写的任何代码,特别是表格结构,都容易被漂亮的打印机破坏。 现在,一些项目成员使用Eclipse编辑器,并且在格式化整个源文件时常常会破坏语义格式。 有没有一种方法可以指示Eclipse在格式化方面忽略某些源代码行? 我正在寻找类似特殊注释的东西,以切换Eclipse格式化程序。 理想情况下,这样的注释可以配置为我们选择的任何格式,并且其他格式化程序也可以编程为尊重它: // STOP-ECLIPSE-FORMATTING String query = "SELECT FOO, BAR
  • 大数据基础:JavaSE_day待续
    优秀是一种习惯 大数据基础:JavaSE_day07 Java 语言背景Java语言跨平台的原理JVM,JRE,JDK关系DOS命令HelloWorld案例详解编程中可能会出现的问题注释关键字常量变量数据类型数据类型转化自动转换/隐式转换强制转换 基础面试题键盘录入标识符运算符分类算数运算符字符参与运算:ASCII自增自减运算符 字符串参与加法运算赋值运算符比较(关系)运算符逻辑运算符短路逻辑运算符短路和非短路之间的区别 三元运算符 流程控制语句分类:顺序结构选择结构(if语句, switch.case语句)单分支双分支多分支switch(byte,short,char,int,枚举,String)...case 值:... 循环语句for循环while循环do...while循环 三种循环之间区别 ==记==死循环循环跳出随机数数组动态初始化静态初始化动态初始化和静态初始化数组元素的访问内存分配数组操作常见的两个小问题 数组遍历方法方法的调用无参无返回值的方法有参无返回值的方法无参有返回值的方法有参有返回值的方法 方法的重载方法练习题进制为什么要学进制?二进制八进制十六进制不同进制的书写格式:二进制转十进制十六进制转十进制十进制转二进制 快速进制转换 8421码二进制快速转八进制二进制快速转十六进制 原码反码补码位算符异或运算的特点数据交换反转 二维数组动态初始化静态初始化
  • 如何获取PreparedStatement的SQL?(How can I get the SQL of a PreparedStatement?)
    问题 我有一个带有以下方法签名的常规Java方法: private static ResultSet runSQLResultSet(String sql, Object... queryParams) 它打开一个连接,使用sql语句和queryParams可变长度数组中的参数构建一个PreparedStatement ,运行它,缓存ResultSet (在CachedRowSetImpl ),关闭连接,然后返回缓存的结果集。 我在记录错误的方法中有异常处理。 我将sql语句记录为日志的一部分,因为它对调试非常有帮助。 我的问题是,记录字符串变量sql用?而不是实际值记录模板语句。 我想记录已执行(或尝试执行)的实际语句。 所以...有什么方法可以获取将由PreparedStatement运行的实际SQL语句? (没有自己构建它。如果我找不到访问PreparedStatement's SQL的方法,我可能最终会在自己的catch es中最终构建它。) 回答1 使用准备好的语句,没有“ SQL查询”: 您有一个包含占位符的语句它被发送到数据库服务器并在那里准备这意味着SQL语句已“分析”,解析,并在内存中准备了一些表示它的数据结构然后,您有绑定变量发送到服务器然后执行准备好的语句-处理这些数据 但是,无论是在Java方面还是在数据库方面,都没有重建实际的实际SQL查询的方法。 因此
  • 大数据基础:JavaSE未完。。
    优秀是一种习惯 大数据基础:JavaSE Java 语言背景Java语言跨平台的原理JVM,JRE,JDK关系DOS命令HelloWorld案例详解编程中可能会出现的问题注释关键字常量变量数据类型数据类型转化自动转换/隐式转换强制转换 基础面试题键盘录入标识符运算符分类算数运算符字符参与运算:ASCII自增自减运算符 字符串参与加法运算赋值运算符比较(关系)运算符逻辑运算符短路逻辑运算符短路和非短路之间的区别 三元运算符 流程控制语句分类:顺序结构选择结构(if语句, switch.case语句)单分支双分支多分支switch(byte,short,char,int,枚举,String)...case 值:... 循环语句for循环while循环do...while循环 三种循环之间区别死循环循环跳出随机数数组动态初始化静态初始化动态初始化和静态初始化数组元素的访问内存分配数组操作常见的两个小问题 数组遍历方法方法的调用无参无返回值的方法有参无返回值的方法无参有返回值的方法有参有返回值的方法 方法的重载方法练习题进制为什么要学进制?二进制八进制十六进制不同进制的书写格式:二进制转十进制十六进制转十进制十进制转二进制 快速进制转换 8421码二进制快速转八进制二进制快速转十六进制 原码反码补码位算符异或运算的特点数据交换反转 二维数组动态初始化静态初始化
  • 什么是最好的PHP输入清理功能?(What are the best PHP input sanitizing functions?)
    问题 我正在尝试提出一个函数,该函数可以传递所有字符串以进行清理。 这样,从其中出来的字符串就可以安全地插入数据库了。 但是有很多过滤功能,我不确定应该使用/需要哪些功能。 请帮助我填写空白: function filterThis($string) { $string = mysql_real_escape_string($string); $string = htmlentities($string); etc... return $string; } 回答1 停止! 您在这里犯了一个错误。 哦,不,您选择了正确的PHP函数来使您的数据更安全。 没关系。 您的错误在于操作顺序,以及如何以及在何处使用这些功能。 重要的是要了解在清理和验证用户数据,转储用于存储的数据以及转存用于呈现的数据之间的区别。 消毒和验证用户数据 用户提交数据时,您需要确保他们提供了期望的内容。 消毒和过滤 例如,如果您需要一个数字,请确保提交的数据是一个数字。 您还可以将用户数据转换为其他类型。 最初提交的所有内容都像字符串一样对待,因此将已知数值数据强制为整数或浮点数可以使清理工作变得快捷而轻松。 自由格式的文本字段和文本区域呢? 您需要确保在这些字段中没有任何意外。 主要是,您需要确保不应包含任何HTML内容的字段实际上不包含HTML。 有两种方法可以解决此问题。 首先
  • SCCM2016定制软件资产报表
    SCCM是微软的企业级桌面管理产品,说是桌管,但其实在老王看来SCCM最能拿得出手的实际上是它的资产智能报表和符合性基线功能。  大家玩过SCCM的都知道,SCCM报表默认能统计上来的资产无非就是硬件信息,软件安装信息,许可信息。  统计软件的时候可以按照软件的维度,统计某集合下所有的已安装软件,通过报表钻取一级一级的找到安装了软件的计算机,计算机的硬件配置,IP,登录用户。 但是在我国企业信息项目永远都需要的就是定制,老板们需要简单一目了然 举个例子,有个需求,需要定义出一类非办公软件,在一张报表里面统计出有哪些计算机,安装了非办公软件,以及这些计算机的使用人。  得到这个需求后,如果你仔细看过每一张报表你会发现,看起来很简单的需求,但没有一张报表可以直接显示出来这些信息。而且怎样定义出来非标准软件也是个问题,如果你只是到处简简单单的了解一下,你是找不到怎么去定义这个东西的。 本篇文章老王就以这个需求为例,为广大itpro介绍一下如何去定义非办公软件,简单的找到我们需要的数据,以及如何在不开发的情况下的输出成报表。  在正式开始之前,我们需要补充一些基础知识 什么是WMI,WMI是微软提供的一个封装了Windows上面所有硬件软件信息资源的规范API接口,我们可以通过wmic命令,VBScript,powershell,C#,WQL语言去对WMI封装的资源进行查询,管理操作
  • Java-转义字符串以防止SQL注入(Java - escape string to prevent SQL injection)
    问题 我试图在Java中放置一些反SQL注入,并发现使用“ replaceAll”字符串函数非常困难。 最终,我需要一个函数来将任何现有的\转换为\\ ,将任何" \"转换为\" ,将任何' \'转换为\\ ,并将任何\n为\\n以便在通过MySQL SQL注入评估字符串时将其阻塞。 我已经整理了一些正在使用的代码,并且该函数中的所有\\\\\\\\\\\正在使我的眼睛发疯。 如果有人碰巧有这个例子,我将不胜感激。 回答1 PreparedStatement是可行的方法,因为它们使SQL注入成为不可能。 这是一个简单的示例,将用户的输入作为参数: public insertUser(String name, String email) { Connection conn = null; PreparedStatement stmt = null; try { conn = setupTheDatabaseConnectionSomehow(); stmt = conn.prepareStatement("INSERT INTO person (name, email) values (?, ?)"); stmt.setString(1, name); stmt.setString(2, email); stmt.executeUpdate(); } finally { try {
  • Java事务处理总结
    Java事务处理总结 一、什么是Java事务 通常的观念认为,事务仅与数据库相关。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。隔离性表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见。持久性表示已提交的数据在事务执行失败时,数据的状态都应该正确。 通俗的理解,事务是一组原子操作单元,从数据库角度说,就是一组SQL指令,要么全部执行成功,若因为某个原因其中一条指令执行有错误,则撤销先前执行过的所有指令。更简答的说就是:要么全部执行成功,要么撤销不执行。 既然事务的概念从数据库而来,那Java事务是什么?之间有什么联系? 实际上,一个Java应用系统,如果要操作数据库,则通过JDBC来实现的。增加、修改、删除都是通过相应方法间接来实现的,事务的控制也相应转移到Java程序代码中。因此,数据库操作的事务习惯上就称为Java事务。 二、为什么需要事务 事务是为解决数据安全操作提出的,事务控制实际上就是控制数据的安全访问。具一个简单例子:比如银行转帐业务
  • 白话阿里巴巴Java开发手册
    作者:李艳鹏,现任蚂蚁金服高级技术专家,著有《分布式服务架构:原理、设计与实战》和《可伸缩服务架构:框架与中间件》,曾经在易宝支付、花旗银行、甲骨文、新浪微博、路透社等大型IT互联网公司担任技术负责人和首席架构师的工作,现专注于区块链平台的研发与推广,擅长大规模高并发的线上与线下相结合的第三方支付平台的架构规划与实施。 最近,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里人多年一线实战中积累的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过限制开发人员的编程风格、实现方式来避免研发人员在实践中容易犯的错误,同样的问题大家使用同样的模式解决,便于后期维护和扩展,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行了应用和推广,收效颇丰,也总结了适合支付平台的技术规范,由于阿里巴巴Java开发手册本身定位为规约和规范,语言简单、精炼,没有太多的解读和示例,有些条款对于一般开发人员理解起来比较困难,本文借着阿里巴巴发布的Java开发手册,详细解读Java平台下开发规范和标准的制定和实施,强调那些在开发过程中需要重点关注的技术点,特别是解决某类已识别问题的模式和反模式。 《阿里巴巴Java开发手册》分为编程规约、异常日志、MySQL规约、工程规约、安全规约五大部分
  • json转sql create table
    解析json来创建数据库表sql语句 entity层 package org.example.module.jd.entity; import java.util.List; /** * @Auther: yaohongan * @Date: 2021/3/29 18:11 * @Description: */ public class JsonMetaNode { private String key; private String valueType; //数据库中的列名 private String dbColName; private List<JsonMetaNode> children; public JsonMetaNode() { } public JsonMetaNode(String key, String valueType) { this.key = key; this.valueType = valueType; } public String getKey() { return key; } public String getValueType() { return valueType; } public void setKey(String key) { this.key = key; } public void setValueType(String
  • 如何将java.util.Date转换为java.sql.Date?(How to convert java.util.Date to java.sql.Date?)
    问题 我试图使用java.util.Date作为输入,然后使用它创建一个查询-所以我需要一个java.sql.Date。 我很惊讶地发现它无法隐式或显式地进行转换-但我什至不知道该怎么做,因为Java API对我来说还很新。 回答1 tl; dr 如何将java.util.Date转换为java.sql.Date? 别。 这两类都过时了。 在JDBC 4.2或更高版本java.util.Date ,请使用java.time类而不是旧版java.util.Date和java.sql.Date 。 如果与尚未更新为java.time的代码进行互操作,则与java.time进行相互转换。 使用PreparedStatement查询的示例。 myPreparedStatement.setObject( … , // Specify the ordinal number of which argument in SQL statement. myJavaUtilDate.toInstant() // Convert from legacy class `java.util.Date` (a moment in UTC) to a modern `java.time.Instant` (a moment in UTC). .atZone( ZoneId.of( "Africa/Tunis" )
  • 初识MYSQL
    1、初识MySQL JavaEE: 企业级java开发 Web 前端(页面:展示,数据!) 后台(连接点:连接数据库JDBC ,连接前端(控制,控制视图跳转,和给前端传递数据)) 数据库(存数据,Txt,Excel,word) 只会写代码,学好数据库,基本混饭吃; 操作系统,数据结构与算法!当一个不错的程序员 离散数学,数字电路,体系结构,编译原理。+实战经验,高级程序员~优秀的程序员 1.1、为什么学习数据库 1、岗位需求 2、现在的世界,大数据时代、得数据库者得天下。 3、被迫需求:存数据 4、数据库是所有软件体系中最核心的存在 DBA 1.2、什么是数据库 数据库(DB,DataBase) 概念:数据仓库 , 软件,安装在操作系统(window,linux,mac…)之上!SQL,可以存储大量的数据500万! 作用:存储数据、管理数据 1.3、数据库分类 关系型数据库: MySQL,Oracle,SqlServer,DE2,SQLlite通过表和表之间,行和列之间的关系进行数据的存储,学员信息,考勤表,… 非关系型数据库: (NoSQL) Not Only Redis , MongDB非关系型数据库,对象存储,通过对象自身的属性来决定 DBMS(数据库管理系统) 数据库的管理软件,科学有效的管理我们的数据。维护和获取数据。MySQL,数据管理系统! 1.4、MySQL简介
  • 如何防止在PHP中进行SQL注入?(How can I prevent SQL injection in PHP?)
    问题 这个问题的答案是社区的努力。 编辑现有答案以改善此职位。 它目前不接受新的答案或互动。 如果将用户输入未经修改地插入到SQL查询中,则该应用程序很容易受到SQL注入的影响,如以下示例所示: $unsafe_variable = $_POST['user_input']; mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')"); 这是因为用户可以输入类似value'); DROP TABLE table;-- value'); DROP TABLE table;-- ,查询变为: INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--') 可以采取什么措施来防止这种情况的发生? 回答1 使用准备好的语句和参数化查询。 这些是独立于任何参数发送到数据库服务器并由数据库服务器解析的SQL语句。 这样,攻击者就不可能注入恶意SQL。 您基本上有两种选择可以实现此目的: 使用PDO(对于任何受支持的数据库驱动程序): $stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name'); $stmt->execute([ 'name' => $name
  • 《11招玩转网络安全》之第四招:low级别的DVWA SQL注入
    以DVWA为例,进行手工注入,帮助读者了解注入原理和过程。1、启动docker,并在终端中执行命令:docker ps -adocker start LocalDVWAdocker ps执行结果如图4-19所示。图4-19 启动DVWA2、在浏览器地址栏输入127.0.0.1后回车,浏览器打开了DVWA页面(DVWA在前面的章节中已建立完毕)。先点击左侧栏的DVWA Security,将难度调整至Low级别。单击左侧栏的SQL Injection,进入SQL注入页面,如图4-20所示。图4-20 DVWA SQL注入3、按照提示在文本框中填入用户ID(这里填入1),单击Submit按钮,执行结果如图4-21 所示。图4-21 DVWA返回数据4、返回了两个字段First name和Sumame。先看一下服务器对用户提交的数据User ID是如何处理的。单击页面右下角的View Source按钮,如图4-22所示。图4-22 Low级别SQL注入代码从图中可以看出服务器对用户输入的数据id未做任何处理,直接用于SQL语句了。手工注入首先要确定页面到底使用了数据库中多少个字段。再确定各个字段的位置。最后在字段的位置构建SQL语句,进行注入。5、先确定使用的字段数目,在文本框中输入1’ order by 2#。此时服务器接受数据,$query= “SELECT first_name
  • SQL使用SELECT * [columnA除外] FROM tableA排除一列?(SQL exclude a column using SELECT * [except columnA] FROM tableA?)
    问题 我们都知道要从表中选择所有列,我们可以使用 SELECT * FROM tableA 有没有一种方法可以在不指定所有列的情况下从表中排除列? SELECT * [except columnA] FROM tableA 我知道的唯一方法是手动指定所有列,并排除不需要的列。 这确实很耗时,因此我正在寻找节省时间和精力的方法,并且在表具有更多/更少列的情况下,还可以进行将来的维护。 回答1 您可以这样尝试: /* Get the data into a temp table */ SELECT * INTO #TempTable FROM YourTable /* Drop the columns that are not needed */ ALTER TABLE #TempTable DROP COLUMN ColumnToDrop /* Get results and drop temp table */ SELECT * FROM #TempTable DROP TABLE #TempTable 回答2 不。 维护轻量级的最佳实践是仅指定必需的列。 至少有两个原因: 这使您的客户端和数据库之间的合同稳定。 每次相同的数据性能,涵盖指标 编辑(2011年7月): 如果从对象资源管理器中拖动表的“ Columns节点,它将为您在“查询”窗口中放置一个CSV列列表
  • Java日期-插入数据库(Java Date - Insert into database)
    问题 我需要找出一种将具有java.util.Date字段的记录插入数据库的方法,但我遇到了麻烦。 有人知道我该怎么做吗? 现在我有类似的东西。 java.util.Date myDate = new java.util.Date("01/01/2009"); sb.append("INSERT INTO USERS"); sb.append("(USER_ID, FIRST_NAME, LAST_NAME, SEX, DATE) "); sb.append("VALUES ( "); sb.append(" '" + userId + "'"); sb.append(", '" + myUser.GetFirstname() + "' "); sb.append(", '" + myUser.GetLastname() + "' "); sb.append(", '" + myUser.GetSex() + "' "); sb.append(", '" + myDate + "'"); sb.append(")"); Util.executeUpdate(sb.toString()); 但是,当我运行类似这样的命令时,会出现错误:datetime值的字符串表示形式的语法不正确。 这是sql语句的样子: INSERT INTO USERS (USER_ID , FIRST_NAME