精华内容
下载资源
问答
  • 主要介绍了asp.net水晶报表参数字段在代码中赋值的方法,实例分析了asp.net中水晶报表的使用技巧,需要的朋友可以参考下
  • 主要介绍了简单了解Django ORM常用字段类型及参数配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 之前遇到一个问题,就是后端@RequestMapping映射的函数的参数列表中需要更改参数名,从原来的ID改为id,但是这样会导致读不到前端传过来的ID。... 后端要求的字段名),至此解决参数不一致的问题。...

    之前遇到一个问题,就是后端@RequestMapping映射的函数的参数列表中需要更改参数名,从原来的ID改为id,但是这样会导致读不到前端传过来的ID。

    这时候需要用到method(RequestParam(value="前端传值的字段") <T> 后端要求的字段名),至此解决参数不一致的问题。

    展开全文
  • mybatis将参数作为字段查询

    千次阅读 2018-08-02 16:13:48
    今天碰到一个需求,在做一个多站点条件对比某个参数的时候需要将前台传入的参数作为数据库字段查询,在XML文件中使用#{param}时却会报异常,如下 HTTP Status 500 - Request processing failed; nested exception ...

    今天碰到一个需求,在做一个多站点条件对比某个参数的时候需要将前台传入的参数作为数据库字段查询,在XML文件中使用#{param}时却会报异常,如下

    HTTP Status 500 - Request processing failed; nested exception is org.springframework.dao.TransientDataAccessResourceException:
    
    
    org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.TransientDataAccessResourceException: 
    ### Error querying database.  Cause: java.sql.SQLException: Bad format for number 'bluealga_n' in column 2.
    ### The error may exist in file [D:\Tomcat\apache-tomcat-8.0.41\webapps\ROOT\WEB-INF\classes\com\algae\mapper\BbeAlgaeMapper.xml]
    ### The error may involve defaultParameterMap
    ### The error occurred while setting parameters
    ### SQL: select  data_time,? from  bbe_algae where  zdid=? and         data_time between  ? and ?         order by         data_time desc
    ### Cause: java.sql.SQLException: Bad format for number 'bluealga_n' in column 2.
    ; SQL []; Bad format for number 'bluealga_n' in column 2.; nested exception is java.sql.SQLException: Bad format for number 'bluealga_n' in column 2.
    	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973)
    	org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)

    SQL语句如下:

    select  data_time,#{param} from  bbe_algae where  zdid=#{zdid} and
            data_time between  #{time1} and #{time2}
            order by
            data_time desc

    查了资料才发现如果将参数作为数据库字段的话则是需要用${param}来获取参数,用#{param}是将获取到的参数加引号的,既是

    "param",而不是 param,在作为字段的时候就回报错。

    参考帖子如下:

     原贴地址:http://www.yuanrengu.com/index.php/mybatis1021.html

    在使用Mybatis这个ORM框架,都是使用mybatis里的一些常用功能。今天在项目开发中有个业务是需要限制各个用户对某些表里的字段查询以及某些字段是否显示,如某张表的某些字段不让用户查询到。这种情况下,就需要构建sql来动态传入表名、字段名了。现在对解决方法进行下总结,希望对遇到同样问题的伙伴有些帮助。

      动态SQL是mybatis的强大特性之一,mybatis在对sql语句进行预编译之前,会对sql进行动态解析,解析为一个BoundSql对象,也是在此处对动态sql进行处理。下面让我们先来熟悉下mybatis里#{}与${}的用法:

      在动态sql解析过程,#{}与${}的效果是不一样的:

     

    #{ } 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符。

      如以下sql语句

    select * from user where name = #{name};

      会被解析为:

    select * from user where name = ?;

      可以看到#{}被解析为一个参数占位符?。

     

    ${ } 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换

      如以下sql语句:

    select * from user where name = ${name};

      当我们传递参数“sprite”时,sql会解析为:

    select * from user where name = "sprite";

      可以看到预编译之前的sql语句已经不包含变量name了。

    综上所得, ${ } 的变量的替换阶段是在动态 SQL 解析阶段,而 #{ }的变量的替换是在 DBMS 中。

     

    #{}与${}的区别可以简单总结如下:

    • #{}将传入的参数当成一个字符串,会给传入的参数加一个双引号
    • ${}将传入的参数直接显示生成在sql中,不会添加引号
    • #{}能够很大程度上防止sql注入,${}无法防止sql注入

      ${}在预编译之前已经被变量替换了,这会存在sql注入的风险。如下sql

    select * from ${tableName} where name = ${name}

      如果传入的参数tableName为user; delete user; --,那么sql动态解析之后,预编译之前的sql将变为:

    select * from user; delete user; -- where name = ?;

      --之后的语句将作为注释不起作用,顿时我和我的小伙伴惊呆了!!!看到没,本来的查询语句,竟然偷偷的包含了一个删除表数据的sql,是删除,删除,删除!!!重要的事情说三遍,可想而知,这个风险是有多大。

    • ${}一般用于传输数据库的表名、字段名等
    • 能用#{}的地方尽量别用${}

      进入正题,通过上面的分析,相信大家可能已经对如何动态调用表名和字段名有些思路了。示例如下:

      <select id="getUser" resultType="java.util.Map" parameterType="java.lang.String" statementType="STATEMENT">
        select 
            ${columns}
        from ${tableName}
            where COMPANY_REMARK = ${company}
      </select>

      要实现动态调用表名和字段名,就不能使用预编译了,需添加statementType="STATEMENT"" 。

    statementType:STATEMENT(非预编译),PREPARED(预编译)或CALLABLE中的任意一个,这就告诉 MyBatis 分别使用Statement,PreparedStatement或者CallableStatement。默认:PREPARED。这里显然不能使用预编译,要改成非预编译。

      其次,sql里的变量取值是${xxx},不是#{xxx}。

      因为${}是将传入的参数直接显示生成sql,如${xxx}传入的参数为字符串数据,需在参数传入前加上引号,如:

            String name = "sprite";
            name = "'" + name + "'";

      

      mybatis动态调用表名和字段名,还可以应用于日志的收集上,如数据库的日志表,每隔一个月动态建一个日志表,表名前缀相同(如log_201610,log_201611等),这样实现日志的分月分表存储,方便日志的分析。

    展开全文
  • golang常用库:字段参数验证库-validator使用 一、背景 在平常开发中,特别是在web应用开发中,为了验证输入字段的合法性,都会做一些验证操作。比如对用户提交的表单字段进行验证,或者对请求的API接口字段进行验证...
  • 将XML文件的schema字段映射到数据库的schema是我们操作数据库的常用手段,这里我们就来整理一些Java的MyBatis框架中关键的XML字段映射的配置参数详解,需要的朋友可以参考下
  • Mybatis 动态SQL之传字段名做参数

    千次阅读 2018-09-21 16:09:00
    动态SQL是mybatis的强大特性之一,mybatis在对sql语句进行预编译之前,会对sql进行动态解析,解析为一个BoundSql对象...1. #{ } 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符 ?。 select * fr...

        动态SQL是mybatis的强大特性之一,mybatis在对sql语句进行预编译之前,会对sql进行动态解析,解析为一个BoundSql对象,也是在此处对动态sql进行处理。

     

    在动态sql解析过程,#{} 与 ${} 的效果是不一样的:  

    1. #{ } 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符 ?。   

    select * from user where  = #{id};   
    // 会被解析为: select * from user where id = ?; 

    #{} 被解析为一个参数占位符?

     

    2. ${ } 仅仅是String替换在动态 SQL 解析阶段将会进行变量替换  

    select * from user where id = ${id};
    // 若传入 id="12"   
    // 变成 select * from user where id = "12"

    虽然id是int类型,但是此时我们仍要传String类型,new Integer(id).toString(), 预编译之前的sql语句已经不包含变量name。

     

     

    总结:

    1. ${ } 的变量的替换阶段是在动态 SQL 解析阶段,而 #{ }的变量的替换是在DBMS中(在解析阶段变成 ‘?’)

    2. 如果使用了${}, 那么传递来的参数必须是字符串。

    3. 声明了statementType="STATEMENT",那么都使用${}, 传字符串

    id传来的是字符串,不然报错

    展开全文
  • 动态SQL是mybatis的强大特性之一,mybatis在对sql语句进行预编译之前,会对sql进行动态解析,解析为一个BoundSql...1. #{ } 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符 ?。 select * from us...

    动态SQL是mybatis的强大特性之一,mybatis在对sql语句进行预编译之前,会对sql进行动态解析,解析为一个BoundSql对象,也是在此处对动态sql进行处理。

     

    在动态sql解析过程,#{} 与 ${} 的效果是不一样的:  

    1. #{ } 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符 ?。   

    select * from user where  = #{id};   
    // 会被解析为: select * from user where id = ?; 
    #{} 被解析为一个参数占位符?

     

    2. ${ } 仅仅是String替换,在动态 SQL 解析阶段将会进行变量替换  

    select * from user where id = ${id};
    // 若传入 id="12"   
    // 变成 select * from user where id = "12"
    虽然id是int类型,但是此时我们仍要传String类型,new Integer(id).toString(), 预编译之前的sql语句已经不包含变量name。

     

     

    总结:

    1. ${ } 的变量的替换阶段是在动态 SQL 解析阶段,而 #{ }的变量的替换是在DBMS中(在解析阶段变成 ‘?’)

    2. 如果使用了${}, 那么传递来的参数必须是字符串。

    3. 声明了statementType="STATEMENT",那么都使用${}, 传字符串

    id传来的是字符串,不然报错 

    展开全文
  • SpringJpa @query 中根据传入参数字段)排序 这种清空下,排序是失效的。请教大家怎么解决?
  • 说明: 通过动态参数获取字段数据,抓取有规则列的字段值 在程序开发中,可能会遇到一些规则的字段名,在数据传递中通常需要对这些字段逐个赋值,以下报表是通过动态参数从数据表(结构体)中获取数据。 在透明表...
  • 参数,django会根据这个参数在数据库层校验层限制该字段所允许的最大字符数。 4、 models.TextField    字符串 ,一个容量很大的文本字段 5、 models.IntegerField    整形 用于保存一个整数 6、...
  • *Mybatis传递参数作为字段名进行查询及非空判断 在做项目的过程中,有时需将前台获取的参数传递到后台,作为某个字段的名称进行数据查询,对Mybatis中的xml文件写法做了整理。 前台的参数作为where语句中的条件: ...
  • 上文介绍了Swagger如何生成API文档--https://blog.csdn.net/shangcunshanfu/article/details/100838137,本篇介绍一下如何在API文档上为参数添加说明。 添加头信息 import ...
  • mybatis实现传一个参数字段搜索

    千次阅读 2018-05-04 18:25:40
    通过name查询出包含name的医院名称、科室名称、医生名称的信息&lt;select id="queryListByOrgDoctor" parameterType="Map" resultType="...&gt; SELECT ... ...
  • 验签是作为一个api接口避免裸奔的必要手段之一,原理就是前后端约定一套签名规则,首先前端在请求api接口时会增加一个sign参数,其值来源是对所提交的参数按照约定的签名规则去生成;接着后端同样会针对其接收到的...
  • Django 数据操作之字段参数

    千次阅读 2018-11-24 18:15:14
    数据操作字段与其参数 字段 所有字段类型: AutoField(Field) int 自增列,必须填入参数 primary_key=True BigAutoField(AutoField) bigint 自增列,必须填入参数 primary_key=True 注:当model中如果没有...
  • -------------mapper把传递来的参数当作字段写入结果集中----------      select  # {startTime,jdbcType=VARCHAR} as StartTime,  # {endTime,jdbcType=VARCHAR} as EndTime,  Station_...
  • 主要介绍了Spring Security在标准登录表单中添加一个额外的字段,我们将重点关注两种不同的方法,以展示框架的多功能性以及我们可以使用它的灵活方式。 需要的朋友可以参考下
  • 经过与技术支持沟通,得出通过迭代器迭代的方式获取到文件名或图层名称,再通过字段计算器进行计算;特别需要注意的是迭代器获取的名称是字符串,字段计算器中的表达式位置需要字符串,这是就需要采用字符串+行内...
  • 字段与属性的区别

    万次阅读 2019-05-29 08:35:36
    字段和属性,都可以叫做是成员变量。属性和字段都是用来存储数据的,但肯定是有不同的 // public int age;//字段 public string Name { //属性 set { name=value; } get { return ...
  • //service是引用进来的接口类,out_order_search是我写的方法... //ckcx参数下面有多个字段。我该怎么取出来。 ckcx.OtPz = new ZlisStCkcxPz[200];//输出参ID ckcx.OtTm = new ZlisStCkcxTm[200];//输出参数
  • 添加属性:statementType=”... 传递的非字段参数如果是字符串需要用单引号括起来 &lt;update id="updateCategoryStatus" statementType="STATEMENT"&gt; update tbl_categorys ...
  • Springboot中后端传递参数字段大写,前端收到参数名为小写 如下图:我后台都是使用了大写,也查看了返回值,大写 检查前端获取数据时发现,我前端获取到的数据参数名为小写了。 经过繁琐的测试阅读,终于有成就...
  • aspcms如何使用自定义参数字段

    千次阅读 2018-08-03 13:54:57
    aspcms如何使用自定义参数字段,相信不少人都有困惑,今天我来为大家详细解答一下 一: 首先到网站后台:一级栏目-----》内容维护-----》内容参数 如图 点击添加参数 如图 先放图,后讲解 这里参数...
  • odoo字段定义的参数

    千次阅读 2015-06-01 13:50:53
    字段定义中可用的参数有, change_default,readonly,required,states,string,translate,size,priority,domain,invisible,context,selection。 change_default:别的字段的缺省值是否可依赖于本字段,缺省...
  • swagger 忽略某个字段/参数

    万次阅读 2019-07-30 17:02:27
    @ApiIgnore @ApiParam(hidden = true) @ApiModelProperty(hidden = true) @JsonIgnore 使用都不行 要一起使用 @ApiModelProperty(hidden=true) @JsonIgnore 原文 ...忽略了会导致toJson的时候没有这个字段
  • 项目需要实现前台传递多个参数,但后台只接受少数参数
  • oracle存储过程中报错,原因可能是由于参数名称自定义的变量名称重复了。
  • C#属性、字段和成员变量的关系区别

    万次阅读 2016-07-30 18:53:10
    我们先来写一个类Person,字段为:name...字段和属性,都可以叫做是成员变量。属性和字段都是用来存储数据的,但肯定是有不同的(要不然也不会起两个名字,干脆叫一个名算了~)。 public class Person { // 字段 pr
  • 两个不同数据库之间的对象的比较,字段(参数)的比较,以及类型的比较.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,267,411
精华内容 506,964
关键字:

参数和字段的区别