提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
记录控制台错误信息便于以后查找
- 一、关于mybatis
- 1.com.mysql.cj.exceptions.WrongArgumentException: SQL String cannot be empty
- 2.Parameter index out of range (1 > number of parameters, which is 0).
- 3.Invalid bound statement (not found):
- 4.(很长一串最后是)Cause: java.lang.ClassNotFoundException: Cannot find class: bean.TabScddinfo
- 5.The alias 'TodayDdInfo' is already mapped to the value 'com.example.demo.bean.production.vo.TodayDdInfo'.
- 5.数据显示[]
- 6.bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException
- 7.org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne()
- 8.Annotation-specified bean name ‘xx‘ for bean class [xxx] conflicts with existing
- 9.sql语句未正常结束
- 2.模板格式
- 总结
一、关于mybatis
1.com.mysql.cj.exceptions.WrongArgumentException: SQL String cannot be empty
代码如下(示例):
你的mapper.xml文件里有个语句只写了比如<select什么什么的标签>里面没有sql语句,吧sql语句补上。
例:<select id="我是id" resultMap="我是结果集">这里没写语句汇报这个错</select>
2.Parameter index out of range (1 > number of parameters, which is 0).
你的mapper.xml文件里有个语句的入参类型不对具体方式参考下图:
#{}与${}两者都可以在mybatis中用在输入映射
#{}和${}的区别:
#{}是预编译处理,
${}是字符串替换。
mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;
mybatis在处理 $ { } 时,就是把 ${ } 替换成变量的值,完成的是简单的字符串拼接。
补充:在mybatis中使用#{}可以防止sql注入,提高系统安全性。
sql注入是什么:
例如:用户输入的账号密码在代码中是以字符串拼接的方式生成查询语句的,这样用户输入的内容很容易改变我们的原查询代码,这就相当一一个数据库注入问题。
我们验证密码和账号的时候,如果用户在输入密码的时候 输入 or 1=1;那不管他输入的密码是什么都可以通过。
3.Invalid bound statement (not found):
应该是你的配置文件*.xml文件的路径错了
4.(很长一串最后是)Cause: java.lang.ClassNotFoundException: Cannot find class: bean.TabScddinfo
这个问题最狗卡我将近一天,
你那个mapper.xml里注入的bean/model类型没有根据路径映射进去
,检查一下入参出参是不是写的都对。
5.The alias ‘TodayDdInfo’ is already mapped to the value ‘com.example.demo.bean.production.vo.TodayDdInfo’.
你的bean或什么文件名字出项相同的了,把springboot整蒙了,改个名字就好了
5.数据显示[]
发现传入值注入什么的都没问题,那你看看${value}这个东西是不是写错了或者拉下什么了。
6.bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException
这个傻逼问题可狗了,
具体原因是你的数据库不能解析你的sql,
肯定是你的对应的sql语句在navcat里执行不了,
好好看看sql语句哪里错了
(一定要开日志看看到底是哪个sql语句,
把这个sql语句拿出去执行看看),
如果可以执行的话就看看你的结尾去掉 ;
然后看看映射关系处没出错。
7.org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne()
你的结果集是个list,但是你用结果的对象接的,所以不可以,你把结果集用list<结果集>接取就解决了
8.Annotation-specified bean name ‘xx‘ for bean class [xxx] conflicts with existing
你的文件中多个文件名相同,自己全局搜索报错的文件
9.sql语句未正常结束
在外面粘贴是对的粘到mybatis里就报这个错误,看看后面有没有‘;’这个符号
2.模板格式
代码如下(示例):
这里便于写作的时候复制格式
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。