zoukankan      html  css  js  c++  java
  • ==>  Preparing: select * from t_user where password= '12345' 
    ==> Parameters: 
    <==    Columns: id, name, password
    <==        Row: 5, admin, 12345
    <==      Total: 1
    ==>  Preparing: select * from t_user where password= '12345' 
    ==> Parameters: 
    <==    Columns: id, name, password
    <==        Row: 5, admin, 12345
    <==      Total: 1

    1、使用postman 进行绑定数据的url 请求时候, 一直无法接受到数据

             http://localhost:8080/user?i =1

      发现上面 i 后面有个空格

    去除空格之后, 就可以接受数据

    2、 执行sql 语句中报错显示列名无效

    SELECT  *  FROM  t_user  WHERE   password = "12345"

     应该是改成 

    SELECT  *  FROM  t_user  WHERE   password = '12345'

    3、  数据库查询过程的中坑, #, $ 的使用问题

    sql: 

       select *
    from t_user
    where
    password= #{password}
    url: http://localhost:8080/user?name='admin'&password='12345'
    ==> Preparing: select * from t_user where password= ? ==> Parameters: '12345'(String) <== Total: 0
    url: http://localhost:8080/user?name="admin"&password="12345"
    ==>  Preparing: select * from t_user where password= ? 
    ==> Parameters: "12345"(String)
    <==      Total: 0

    sql: 

       select *
    from t_user
    where
    password= ${password}
    url: http://localhost:8080/user?name="admin"&password="12345"
    SQL: select *         from t_user         where         password= "12345"
    Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 列名 '12345' 无效。
    url: http://localhost:8080/user?name='admin'&password='12345'
    ==>  Preparing: select * from t_user where password= '12345' 
    ==> Parameters: 
    <==    Columns: id, name, password
    <==        Row: 5, admin, 12345
    <==      Total: 1
    总结:  前端传递字符串的时候,应该是' ', 后端使用${}


    4 前端传送json 数据, 后端接收问题

        @ResponseBody
        @RequestMapping(value = "/user", method = RequestMethod.POST)
        public User queryUser(@RequestBody User user){
            System.out.println("-------- 接收数据 --------");
            System.out.println(user.getName());
            System.out.println(user.getPassword());
            User user1 = userMapper.queryUser(user);
            return user1;
        }
    原来没有上面 @RequestBody的时候, 无法接受数据,显示为null, 现在加上这个注解之后,显示没有问题
    问题: 原来发送数据的时候, 没有加@RequestBody 的时候, 也可以接受数据

    @requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型

    @requestBody可以将请求体中的JSON字符串绑定到相应的bean上

    https://blog.csdn.net/itjauser/article/details/90514754

    5、 数据库查询多条数据的时候,返回的类型不是一个集合,而是这个单个类型的数据类型

    before:

        <select id = "getItemsList" resultType="List">
            select * from t_items
        </select>

    返回的json 数据是为空的 “[ ] ”

    after:

        <select id = "getItemsList" resultType="com.wchat.secondhand.entity.Items">
            select * from t_items
        </select>

    返回的 list 集合。

    6、后端接收参数的问题, 关于  @RequestParam(value = "file") 的使用

    public boolean upLoadItems(@RequestParam(value = "items) Items items, @RequestParam(value = "file") MultipartFile file){}

    向上面这种,使用注解修饰, 只能接收到 两个前端传入的的两个参数

    public boolean upLoadItems(Items items, @RequestParam(value = "file") MultipartFile file){}

    上面参数中可以接收items 里面的所有属性, 以及file 属性

    7、 select  *  from  使用会造成数据查询丢失问题
    在项目中使用 select * from 发现一个字段查出来显示为空,但是自己去数据库
    查看发现是有数据的,所以出现了数据丢问题,所以使用select 字段1, 字段2 from t_table 这种形式
    进行数据的查询
     





  • 相关阅读:
    Java static修饰符小记
    nginx的使用
    Java 日期时间格式化
    Java Annotation使用详解
    栈的应用-四则运算表达式
    计算机网络——学习笔记
    Python __builtin__模块
    搭建Harbor私有库
    Prometheus k8s方式安装
    Day4_字典循环
  • 原文地址:https://www.cnblogs.com/helloqiufei/p/12159542.html
Copyright © 2011-2022 走看看