学习BeetlSQL总结(2)——查询API,更新API

  

学习BeetlSQL总结(2)
经过上节的学习,我们已经了解了BeetlSQL的基础,接下来我们深入的学习BeetlSQL
一.BeetlSQL说明
1。获得SQLManager是系统的核心,它提供了所有的刀方法,获得SQLManager,可以直接构造SQLManager,并通过单例获取

  
 <代码>=ConnectionSourceHelper ConnectionSource来源。getSimple (mysqlDriver、url、用户名、密码);
  DBStyle mysql=new MySqlStyle ();//SQL语句放于类路径的SQL目录下
  SQLLoader装载机=new ClasspathLoader (“/sql”);//数据库命名和java命名一样,所以采用DefaultNameConversion,还有一个UnderlinedNameConversion下划线风格的
  UnderlinedNameConversion数控=new UnderlinedNameConversion ();//最后,创建一个SQLManager, DebugInterceptor,不是必须的,但可以通过它查看SQL的执行情况
  SQLManager SQLManager=new SQLManager (mysql、装载机、源、数控、新的拦截器[]{新DebugInterceptor()});  
  

如果已经有了数据源,创建ConnectionSource可以采用如下代码:

  
 <代码>=ConnectionSourceHelper.getSingle ConnectionSource来源(数据源); 
  

如果是主从数据源:

  
 <代码>=ConnectionSourceHelper.getMasterSlave ConnectionSource来源(主人,奴隶) 
  

2。查询API
(1)简单查询(自动生成sql)
T·公共独特(clazz类,对象pk)根据主键查询,如果未找的到,抛出异常
T·公共单(clazz类,对象pk)根据主键查询,如果没找的到,返回零
·公开列出所有(类clazz)查询所有结果集
·公开列出所有(大小类clazz, int, int)翻页
·公共int allCount (Class<?比;clazz)总数
(2)单表查询
SQLManager提供了查询类可以实现单表查询操作

  
 <代码>//7。单表查询
  System.out.println(“开始执行单表查询”);
  List列表=sqlManager.query (User.class) .andEq(“名字”,“曼斯坦因”).orderBy (create_date) .select ();
  System.out.println(“打印查询结果:”);
  (用户user1:列表){
  System.out.println (user1);
  } 
  

其中sql.query (User.class)返回了查询类用于单表查询
执行结果:
学习BeetlSQL总结(2)——查询API,更新API”> </p>
  <p>如果是java8,则可以使用lamdba表示列名</p>
  <pre> <代码> List<User>list1=sql.lambdaQuery (User.class)。andEq(用户::getName,“嗨”).orderBy(用户::getCreateDate) .select(); </代码> </pre>
  <p>(3)模板查询<br/> T·公共模板(T T)根据模板查询返回所有符合这个模板的数据库,同上,映射器可以提供额外的映射,如处理一对一,一对多<br/> T·公共templateOne (T T)根据模板查询,返回一条结果,如果没有找的到,返回零<br/>·公共列表模板(T T, int, int大小)同上,可以翻页<br/>·公共长templateCount (T T)获取符合条件的个数<br/>·公共列表模板(类目标、对象帕拉斯长开始,大小)模板查询,参数是帕拉斯,可以是地图或者普通对象<br/>·公共长templateCount(类目标,对象帕拉斯)获取符合条件的个数<br/>翻页的开始,系统默认从一开始,为了兼容各个系统的数据库,会自动翻译为数据库习俗,比如开始为1,会认为mysql, postgres从0开始(从start - 1开始),甲骨文,状态然而,如果你只用特定的数据库,可以按照特定的数据库习俗来,比如你只用mysql, satrt为0代表起始记录,需要配置

  
 <代码> OFFSET_START_ZERO=true  
  

这样翻页参数传入0即可
注意:模板查询方法根据模板查询不包含时间段查询,也不包含排序,然而,可以通过pojo类上使用@ table模板()或者日期字段的getter方法上使用@DataTemplate(来定制),如下:

  

用户登录验证:

  
 <代码>//8。使用模板方法查询
  用户模板=新用户();
  template.setUserName (“zhukefu”);
  template.setPassword (“123456”);
  template.setStatus(1);执行结果:
  
  用户user2=sqlManager.templateOne(模板);
  System.out.println(“打印模板查询结果:”+ user2);  
  

执行结果:
学习BeetlSQL总结(2)——查询API,更新API”> </p>
  <p>(4)通过sqlid查询,sql语句在md文件中<br/>·公共选择列表(字符串sqlid、类clazz Map<字符串,Object>帕拉斯)根据sqlId来查询,参数是个地图公共列表中选择<br/>·帕拉斯(字符串sqlId、类clazz对象)根据sqlId来查询,参数是个pojo <br/>·公共选择列表(字符串sqlId类clazz)根据sqlId来查询,无参数<br/> T·公共selectDSingle(帕拉斯字符串sqlId,对象,类目标)根据sqlId查询,输入的是pojo,将对应的唯一值映射成目标对象,如果未找到则返回空,需要注意的是有时候需要的结果集本身为空,这时候建议使用独特的<h2 class=学习BeetlSQL总结(2)——查询API,更新API