利用Java理解sql的语法(实例讲解)

select 相当于 for 循环

select id from IDArray

LinkedList a = new LinkedList();
for ( int i=0 ; i<tableA.length ; i++){
  a.add(IDArray.get("id" ) );
}

return a;

当执行子查询时,可以理解为

select id, ( select name from nameArray) as names ,from Idarray

LinkedList a = new LinkedList();
for ( int i=0 ; i<tableA.length ; i++){
  a.add(IDArray.get("id" ) );
  for(int j=0 ; j<nameArray.length ; j++){
    a.add(namesArray.get("name"));
  }
}

很明显这里一对多了。所以执行不对。报SQL错误

所以在 select中,应该要具体确定某一个值

select id, ( select name from nameArray where nameId=id) as names from Idarray

LinkedList a = new LinkedList();
for ( int i=0 ; i<tableA.length ; i++){
  Object object = IDArray.get("id" ) ;
 for ( int j=0 ; j<nameArray.length ; i++){
   if ( nameArray.get("nameId")==object){
    Object object2 = nameArray.get("nameId");
    a.add(object2);
  }
}
    a.add(object);
}

当且仅当if 条件的值搜索是单个值的时候,是对应上的

那么groupBy呢?

select id, ( select name from nameArray where nameId=id) as names from Idarray group by id

LinkedList a = new LinkedList();
for ( int i=0 ; i<tableA.length ; i++){
  Object object = IDArray.get("id" ) ;
 for ( int j=0 ; j<nameArray.length ; i++){
   if ( nameArray.get("nameId")==object){
    Object object2 = nameArray.get("nameId");
    a.add(object2);
  }
}
    a.add(object);
}
LinkedList groupByArray = new LinkedList();

for ( int i=0 ; i< a. length ; i++){
   int id = a[i].getId();
   LinkedList tempArray = new LinkedList();
   for ( int j=0 ; j<j.length ; j++){
    int temp = a[j].getId();
   if ( id==temp){
     tempArray.add(temp);
    }
  }
  groupByArray.add(tempArray);
}

以上这篇利用Java理解sql的语法(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java跟踪执行的sql语句示例分享

    代码: 复制代码 代码如下: package com.lwj.test.proxy; import java.lang.reflect.InvocationHandler;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.sql.Connection;import java.sql.SQLExce

  • 利用Java理解sql的语法(实例讲解)

    select 相当于 for 循环 select id from IDArray LinkedList a = new LinkedList(); for ( int i=0 ; i<tableA.length ; i++){ a.add(IDArray.get("id" ) ); } return a; 当执行子查询时,可以理解为 select id, ( select name from nameArray) as names ,from Idarray LinkedList

  • Python3操作SQL Server数据库(实例讲解)

    1.前言 前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话,实用性就不那么大了. 2.最基本的SQL查询语句 python是使用pymssql这个模块来操作SQL Server数据库的,所有需要先安装pymssql. 这个直接在命令行里输入pip install pymssql安装就行了 然后还要配置好自己本地的SQL Server数据库,进入Microsoft SQL Server Management Studio中可以进行设置.如果你选择

  • Java分页查询--分页显示(实例讲解)

    当数据库中数据条数过多时,一个页面就不能显示,这是要设置分页查询,首先要使用的是数据库sql语句的limit条件实现分组查询 sql语句大概形式为: select * from table limit 开始索引,显示条数 用该语句就会实现分块查询,并且每页显示固定条数. 首先要实现后台分页,我们需要知道它有多少页,每页有多少行,这就需要知道一共多少行,调用sql语句时还需要知道每一页的开始索引,开始索引是根据当前页数算出来的,所以还需要知道当前页数,查询后会返回一个列表存储当前页数据.将这些属性

  • java虚拟机jvm方法区实例讲解

    和java堆一样,方法区是一块所有线程共享的内存区域,用于保存系统的类信息,类的信息有哪些呢.字段.方法.常量池.方法区也有一块内存区域所以方法区的内存大小,决定了系统可以包含多少个类,如果系统类太多,方法区内存不够肯定会导致方法区溢出,虚拟机同样会抛出内存溢出信息.(内存溢出后面相关文章给大家总结) jdk6和jdk7中,方法区可以理解为永久区(Perm).永久区可以使用参数-XX:PermSize和-XX:MaxPermSize制定.默认情况下-XX:MaxPermSize为64MB.如果你

  • Java编写超时工具类实例讲解

    我们在开发过程中,在进行时间操作时,如果在规定的时间内完成处理的话,有可能会回到正确的结果.否则,就会被视为超时任务.此时,我们不再等待(不再执行)的时间操作,直接向调用者传达这个任务需要时间,被取消了. 1.说明 java已经为我们提供了解决办法.jdk1.5带来的并发库Future类可以满足这一需求.Future类中重要的方法有get()和cancel().get()获取数据对象,如果数据没有加载,则在获取数据之前堵塞,cancel()取消数据加载.另一个get(timeout)操作表明,如

  • java发送email一般步骤(实例讲解)

    java发送email一般步骤 一.引入javamail的jar包: 二.创建一个测试类,实现将要发送的邮件内容写入到计算机本地,查看是否能够将内容写入: public static void main(String[] args) throws Exception { // 1. 创建一封邮件 Properties props = new Properties(); // 用于连接邮件服务器的参数配置(发送邮件时才需要用到) Session session= Session.getDefaul

  • JAVA超级简单的爬虫实例讲解

    爬取整个页面的数据,并进行有效的提取信息,注释都有就不废话了: public class Reptile { public static void main(String[] args) { String url1=""; //传入你所要爬取的页面地址 InputStream is=null; //创建输入流用于读取流 BufferedReader br=null; //包装流,加快读取速度 StringBuffer html=new StringBuffer(); //用来保存读取页

  • java对象类型转换和多态性(实例讲解)

    对象类型转换 分为向上转型和向下转型(强制对象转型). 向上转型是子对象向父对象转型的过程,例如猫类转换为动物类:向下转型是强制转型实现的,是父对象强制转换为子对象. 这和基础数据类型的转换是类似的,byte在需要时会自动转换为int(向上转型),int可以强制转型为byte(向下转型). 对于对象转型来说, 向上转型后子对象独有的成员将不可访问 . 意思是,在需要一只动物时,可以把猫当作一只动物传递,因为猫继承自动物,猫具有动物的所有属性.但向上转型后,猫不再是猫,而是被当作动物看待,它自己独

  • Java成员变量的隐藏(实例讲解)

    一.如果子类与父类中有一个相同名称的成员变量,那么子类的成员变量会不会覆盖父类的成员变量?我们看下在的例子: public class A { public int x=10; } public class B extends A { public int x=20; } public class C { public static void main(String[] args) { A a=new B(); System.out.println(a.x); //1 B b=new B();

  • java RMI详细介绍及实例讲解

    java本身提供了一种RPC框架--RMI(即RemoteMethodInvoke远程方法调用),在编写一个接口需要作为远程调用时,都需要继承了Remote,Remote接口用于标识其方法可以从非本地虚拟机上调用的接口,只有在"远程接口"(扩展java.rmi.Remote的接口)中指定的这些方法才可远程使用,下面通过一个简单的示例,来讲解RMI原理以及开发流程: 为了真正实现远程调用,首先创建服务端工程rmi-server,结构如下: 代码说明: 1.User.java:用于远程调用

随机推荐