zoukankan      html  css  js  c++  java
  • 002.测验.Java之拼装SQL


    题图:两脚站在同一根高压电线上,电流基本上不从小鸟身上流过,小鸟是不会被电到的。

    002.测验.Java之拼装SQL

    这是一个十分简单但不实用的编程练习,拼装SQL。
    select一个表,where很多单纯的and条件。

    作者:史荣久 日期:2014-11-26 许可:CC BY-SA 3.0

    任务说明

    实现以下接口,完成练习目标。

    package com.moilioncircle.kiss;
    
    public interface Sql {
    
        public Sql select(String... fields);
    
        public Sql from(String table);
    
        public Sql where(String fieldAndOperator, Object value);
    
        public Sql and(String fieldAndOperator, Object value);
    
        public String build();
    }
    

    任务目标

    (1) 以下6个build()得出的sql,在MySql上执行,都返回1条记录。

    Sql sql = new <your-Sql-impl>();
    sql.select("id","birthday","homedir","description")
       .from("sqltest")
       .where("homedir=", "d:\jonny\")
       .build();
    
    sql.select("count(*)")
       .from("sqltest")
       .where("id>", Integer.valueOf(1))
       .and("birthday=", Date.valueOf("1971-01-01"))
       .build();
    
    sql.select("count(*)")
       .from("sqltest")
       .build();
    
    sql.select("1").build();
    
    sql.select("count(*)")
       .from("sqltest")
       .where("description=", "jonny's pet")
       .build();
    
    sql.select("count(*)")
       .from("sqltest")
       .where("description=", "ben said "hi tom!"")
       .build();
    

    (2) 以下3个build(),抛出异常(选择舒服的异常类型)

    sql.select("").build();
    
    sql.select(null).build();
    
    sql.select("count(*)")
       .where("description=", "jonny's pet")
       .build();
    

    测试数据

    通过以下SQL创建表和数据。

    CREATE TABLE `sqltest` (
    `id` INT NOT NULL,
    `birthday` DATE NULL,
    `homedir` VARCHAR(45) NULL,
    `description` VARCHAR(45) NULL,
    PRIMARY KEY (`id`));
    
    insert into sqltest(id,birthday,homedir,description) values
    (1,'1971-01-01','d:\jonny\','jonny''s pet'),
    (2,'1971-02-01','d:\tom','tom is good'),
    (3,'1972-03-01','d:\ben','ben said "hi tom!"');
    
  • 相关阅读:
    CDN的基本工作过程
    受控组件和非受控组件
    【转】深入理解margin
    【转】前端面试
    centos7下 mysql5.7离线安装
    HIVE客户端启动缓慢处理步骤
    arthas使用介绍
    Hive重写表数据丢失风险记录
    namenode 问题小记
    Kafka丢失数据问题优化总结
  • 原文地址:https://www.cnblogs.com/moilioncircle/p/4266745.html
Copyright © 2011-2022 走看看