返回顶部
首页 > 资讯 > 后端开发 > Python >解决mybatis#{}无法自动添加引号的错误
  • 717
分享到

解决mybatis#{}无法自动添加引号的错误

2024-04-02 19:04:59 717人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录mybatis #{}无法自动添加引号解决mybatis #{}与${} 单引号解决办法验证mybatis #{}无法自动添加引号 传入string类型时,无法自动添加引号,导致

mybatis #{}无法自动添加引号

传入string类型时,无法自动添加引号,导致sql将值识别为列名,导致SQL失败

解决

使用map类型代替string的传值

Map<String, String> map = new HashMap<>(2);
map.put("userName", userName);
return userMapper.selectUserByName(map);

<select id="selectUserByName" parameterType="map" resultType="userDO">
    select
        user_id as userId,
        user_name as userName,
        user_passWord as userPassword,
        user_level as userLevel,
        user_gmt_create as userGmtCreate,
        user_gmt_modified as userGmtModified
    from user
    where user_name = #{userName}
</select>

mybatis #{}与${} 单引号

今天使用mybitas查询数据库时候报了错

错误信息

提示不知道的列,查看上方的sql语句,发现sql的语法错了,where查询的条件的值少了单引号

-- 错误提示
select `uid`, `username`, `password`, `time`         
from blogs_user     
where username = wu;
-- 正确的sql语句
select `uid`, `username`, `password`, `time`         
from blogs_user     
where username = 'wu';

这时问题就很明显了,就是字符串在sql中需要用单引号引起来,而报错的提示信息中是没有这个单引号的

解决办法

解决办法是将对应的映射文件中的${user.username} 改为 #{user.username},再次运行即可

  <!--  ${user.username}  -->
  <select id="xxx" parameterType="wu.bean.User" resultMap="BaseResultMap">
    select
    <include refid="base_column_list"/>
    from blogs_user
    where username = ${user.username};
  </select>
  <!--  #{user.username} -->
  <select id="xxx" parameterType="wu.bean.User" resultMap="BaseResultMap">
    select
    <include refid="base_column_list"/>
    from blogs_user
    where username = ${user.username};
  </select>

验证

如果要验证是否正确,思路是将成的sql 语句打印出来,因此需要在mybatis-config.xml中加入<setting name="logImpl" value="STDOUT_LOGGING"/>

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "Http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <settings>
    <!--  打印查询语句    -->
    <setting name="logImpl" value="STDOUT_LOGGING"/>
	....
  </settings>
  <typeAliases>
    ....
  </typeAliases>
  
  <mappers>
  	.....
  </mappers>
</configuration>

重新运行程序

使用 ${user.username}

在这里插入图片描述

使用 #{user.username} 

在这里插入图片描述

验证正确!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 解决mybatis#{}无法自动添加引号的错误

本文链接: https://lsjlt.com/news/162484.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 解决mybatis#{}无法自动添加引号的错误
    目录mybatis #{}无法自动添加引号解决mybatis #{}与${} 单引号解决办法验证mybatis #{}无法自动添加引号 传入string类型时,无法自动添加引号,导致...
    99+
    2024-04-02
  • navicat添加外键错误1452的解决方法
    这篇文章主要介绍navicat添加外键错误1452的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如果你遇上这种情况你的表里面应该都有数据,就是因为数据里面的属性不对应导致的...
    99+
    2024-04-02
  • Mybatis错误引起的程序启动卡死怎么解决
    本文小编为大家详细介绍“Mybatis错误引起的程序启动卡死怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mybatis错误引起的程序启动卡死怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Myb...
    99+
    2023-06-29
  • weblogic域添加无法启动如何解决
    当WebLogic域无法启动时,可以尝试以下解决办法:1. 检查日志文件:查看WebLogic域的日志文件,通常位于域目录下的log...
    99+
    2023-10-07
    weblogic
  • Mybatis错误引起的程序启动卡死问题及解决
    目录Mybatis错误引起的程序启动卡死解决办法原因分析Mybatis启动错误具体报错如下主要内容是说找不到接口,问题可能有两个Mybatis错误引起的程序启动卡死 mybatis ...
    99+
    2024-04-02
  • java错误找不到符号解决方法(引用自定义类)
    通常情况下,我们在编写java文件时,会有引用到自已定义的一些类,如果按通常的javac *.java的形式来编译会出现找不到符号的错误。(推荐:java视频教程)以下提供了两种方法,以供参考假如在d:/web/wsh下有a.java和b....
    99+
    2018-09-21
    java
  • mysql无法启动3523错误如何解决
    本文小编为大家详细介绍“mysql无法启动3523错误如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql无法启动3523错误如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2024-04-02
  • win10无法启动错误1068如何解决
    错误1068通常是由于某些服务未正确启动或停止而引起的。以下是解决此问题的一些建议:1. 检查服务状态:按下Win + R键,输入s...
    99+
    2023-08-22
    win10
  • mybatis 对于生成的sql语句 自动加上单引号的情况详解
    目录对于生成的sql语句 自动加上单引号的情况mySQL中replace的用法mybatis中IFNULL(P1,P2)函数的用法mybatis单引号字母逻辑处理的一个坑原...
    99+
    2024-04-02
  • 解决mybatis-generator生成器添加类注释方法无效的问题
    遇到的问题! 注:自定义CommentGenerator的都知道 通过实现CommentGenerator接口的一些不足,毕竟只是实现了CommentGenerator接口,在里面的...
    99+
    2024-04-02
  • windows无法启动server错误1083如何解决
    错误代码1083表示在Windows操作系统中无法启动一个服务。解决此问题的一种方法是尝试以下步骤:1. 重启计算机:有时候服务启动...
    99+
    2023-09-05
    windows
  • windows无法启动wlan错误1747怎么解决
    这篇文章主要介绍“windows无法启动wlan错误1747怎么解决”,在日常操作中,相信很多人在windows无法启动wlan错误1747怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”windows...
    99+
    2023-07-01
  • 如何解决MySQL报错:无法创建表,错误编号:121
    MySQL报错:无法创建表,错误编号:121通常是由于表定义中的某些约束条件冲突导致的。要解决这个问题,可以按照以下步骤进行:1. ...
    99+
    2023-10-10
    MySQL
  • 如何解决MySQL报错:无法创建表,错误编号:139
    MySQL报错:无法创建表,错误编号:139 是由于创建表时的语法错误导致的。解决方法如下:1. 检查创建表的语法是否正确,包括表名...
    99+
    2023-10-18
    MySQL
  • 如何解决MySQL报错:无法创建表,错误编号:150
    MySQL报错:无法创建表,错误编号:150通常是由于外键约束导致的。解决此问题,可以按照以下步骤进行操作:1. 检查表之间的关系:...
    99+
    2023-10-18
    MySQL
  • SpringMVC@RequestBody自动转jsonHttp415错误的解决
    目录SpringMVC @RequestBody自动转json Http415错误SpringMVC @RequestBody使用总结SpringMVC @RequestBody自动...
    99+
    2023-05-15
    SpringMVC @RequestBody @RequestBody自动转json Http415 @RequestBody自动转json
  • Vue路由自动添加#的问题及解决
    目录Vue路由自动添加#Vue路由去除 链接 / 前面的 #Vue路由自动添加# 在使用VueRouter时,配置了几个路由规则 尝试在浏览器中输入路由地址(/order,/per...
    99+
    2024-04-02
  • 怎么解决mysql无法启动1067错误问题
    这篇文章主要讲解了“怎么解决mysql无法启动1067错误问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决mysql无法启动1067错误问题”吧!...
    99+
    2024-04-02
  • mysql服务无法启动1053错误如何解决
    本篇内容介绍了“mysql服务无法启动1053错误如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • redis启动无法连接6379错误怎么解决
    如果您遇到无法连接 Redis 服务器并出现 “redis启动无法连接6379错误” 的问题,可能有几种原因导致此错误。以下是一些可...
    99+
    2024-04-09
    redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作