[C#] 动态 SQL 生成工具 →→→→→进入此内容的聊天室

来自 , 2020-10-25, 写在 C#, 查看 103 次.
URL http://www.code666.cn/view/1102a326
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace ObjectiveSQL
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             testSelect();
  11.             testUpdate();
  12.             testInsert();
  13.             testDelete();
  14.             try
  15.             {
  16.                 testInsertWhere();
  17.             }
  18.             catch (Exception ex)
  19.             {
  20.                 Console.WriteLine(ex.Message);
  21.             }
  22.         }
  23.  
  24.         static void testSelect()
  25.         {
  26.             string usernamePrefix = "JOHN%";
  27.             string role = "admin";
  28.             string username = "admin";
  29.  
  30.             Command command = SQL.SELECT("*").From("USERS")
  31.                             .Where("USERNAME LIKE ?", usernamePrefix)
  32.                             .And("(ROLE=?", role).Or("USERNAME=?)", username).toCommand();
  33.             Console.WriteLine(command.getStatement());
  34.  
  35.             command = SQL.SELECT("*").From("USERS")
  36.                             .Where("USERNAME LIKE ?", usernamePrefix)
  37.                             .Append("AND (")
  38.                             .Append(role != null, "ROLE = ?", role)
  39.                             .Or("USERNAME = ?", username)
  40.                             .Append(")").toCommand();
  41.             Console.WriteLine(command.getStatement());
  42.  
  43.             role = null;
  44.             command = SQL.SELECT("COUNT(1), ROLE")
  45.                             .From("USERS")
  46.                             .Where(false, "REGISTER_TIME > sysdate - 1")    // dismissed
  47.                             .AndIfNotEmpty("ROLE = ?", role)          // dismissed
  48.                             .And("1=1")
  49.                             .GroupBy("ROLE").toCommand();
  50.             Console.WriteLine(command.getStatement());
  51.  
  52.  
  53.             List<int> levels = new List<int>() { 1, 2, 3 };
  54.             command = SQL.SELECT("*")
  55.                             .From("USERS")
  56.                             .Where("USER_LEVEL IN ?", levels).toCommand();
  57.  
  58.             Console.WriteLine(command.getStatement());
  59.         }
  60.  
  61.         static void testUpdate()
  62.         {
  63.             Command command = SQL.UPDATE("USER")
  64.                             .Set("AGE", 3)
  65.                             .Set(false, "NAME", "admin").Where("ID=?", 1).toCommand();
  66.             Console.WriteLine(command.getStatement());
  67.         }
  68.  
  69.         static void testInsert()
  70.         {
  71.             Command command = SQL.INSERT("USER")
  72.                             .Values("ID", 1)
  73.                             .Values("USERNAME", "admin")
  74.                             .Values("PASSWORD", "admin")
  75.                             .Values("AGE", null).toCommand();
  76.             Console.WriteLine(command.getStatement());
  77.         }
  78.  
  79.         static void testInsertWhere()
  80.         {
  81.             Command command = SQL.INSERT("USER").Values("NAME", "admin").Where("").toCommand();
  82.             Console.WriteLine(command.getStatement());
  83.         }
  84.  
  85.         static void testDelete()
  86.         {
  87.             Command command = SQL.DELETE("USER").Where("ID in ?", new List<int>() { 1, 2, 3, 4, 5 }).toCommand();
  88.             Console.WriteLine(command.getStatement());
  89.         }
  90.     }
  91. }

回复 "动态 SQL 生成工具"

这儿你可以回复上面这条便签

captcha