zoukankan      html  css  js  c++  java
  • sql语句的一些学习

    开始自己写代码了,才发现自己的基础太薄弱了。数据库的很多知识都不知道。以后要多看看这样的书。

    在项目中搬到了很多次,现在总结总结:

    1、用springMVC+mybatis  在写sql语句的时候,把$ 和# 弄混了,结果没有找了半天错误,都没有找出来。

     注:#{} 是传的变量的值,自动给变量值加上“”引号; ${}传的是变量的名称,一般为数据库中的表名

    #可以防止sql注入的问题,而$不会防止

    2、mysql和postgres的分页查询语句,可以相互用 ,但注意使用方法。 

     mysql :limit  start,count    

     postgres:limit  count  offset start   

    3、数据库的查询

      这些语句的使用:条件判断语句       (case when msg_id=0 then a end )

    今天在写sql时,遇到了一个奇葩的问题:传int 型的参数到数据库,传0以外的任何数都能成功修改数据库表中的值,但是传0却无法修改,数据库中的值没有变化。

    尝试了各种方法:1、在navicat中写sql,传入0,可以修改。2、改设计表时的默认值,改程序里面的字段默认值(这些方法都很盲目,毫无依据,最终都没有成功),最后想到是不是和mybatis的test条件有关,于是上网查资料,http://bbs.csdn.net/topics/391875920 这篇博客很瘦教育。又长知识了。


     java程序里面,Integer是引用类型,初始值肯定是null, 你设定为0,肯定不为null的,但是在mybatis里面,你传入参数是int,作为参数处理,他的初始值就是0.  ,你传入0,默认为空的

    <if test  flag!=null> </if>   改为这个即可。

    原来的是 <if test flag!=null and flag!='' > </if>   在flag为0,时,mybatis会把它当做默认值(及没有传值)空。我解释的也是不到位,理解还是不透彻。


  • 相关阅读:
    sqlzoo练习答案--SUM and COUNT
    响应式的嵌入内容和图片
    缓存server设计与实现(五)
    编译器DIY——读文件
    [Leetcode]-Pascal&#39;s Triangle
    zoj 1562 反素数 附上个人对反素数性质的证明
    [POJ 1236][IOI 1996]Network of Schools
    POJ 3691 DNA repair [AC自动机 DP]
    POJ 1625 Censored! [AC自动机 高精度]
    51Nod 1225 余数之和 [整除分块]
  • 原文地址:https://www.cnblogs.com/yeemi/p/7470156.html
Copyright © 2011-2022 走看看