工作记录:mybatis

1、语句结尾不要加分号,否则报错:SQL 命令未正确结束
2、springboot中,mapper.xml和mapper接口如果不在同一个包下,需要在application文件中加上:
mybatis:mapper-locations: classpath:com/demo/mapper/impl/*.xml
3、xml中的Statement,必须加上resultMap,否则报异常:

org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped Statement 

4、

Error querying database.  Cause: java.sql.SQLSyntaxErrorException: ORA-00936: 缺失表达式
The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: select sum(a.transamount) amount,substr(F_WEEKBH,7,6)   week,substr(F_WEEKBH,0,6) month   from   DW_CAPPLAN_F_DAILYPAYMENTTRANSACTIONS a   left join (   select distinct   F_DATE,F_WEEKBH from lsa_narrow_sk_zjjhday   ) on   to_char(a.trandate,'yyyymmdd')=F_DATE   where a.trandate   <date ?   and to_char ( a.trandate , 'yyyymm') =? group by   F_WEEKBH
### Cause: java.sql.SQLSyntaxErrorException: ORA-00936: 缺失表达式
 bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00936: 缺失表达式
] with root cause

oracle.jdbc.OracleDatabaseException: ORA-00936: 缺失表达式

解决:把#{}换成${}
5、xml中<替换为&lt; >替换为&gt;
6、查询结果映射的实体对象为空(不是某个属性为空,而是对象为空)

java.lang.NullPointerException: null

解决:当sql字段返回值为空时 默认不映射。返回的字段都为空,service处理或application文件加上:mybatis-plus.configuration.call-setters-on-nulls=true
7、打印sql语句
在application文件添加logging.level.mapper路径,例如:
logging.level.com.demo.mapper
8、java.lang.IllegalArgumentException: Result Maps collection does not contain value
解决:resultMap=""的值填写有误
9、

### Error querying database.  Cause: java.sql.SQLException: 无效的 SQL 类型: sqlKind = UNINITIALIZED
### Cause: java.sql.SQLException: 无效的 SQL 类型: sqlKind = UNINITIALIZED
; uncategorized SQLException; SQL state [99999]; error code [17439]; 无效的 SQL 类型: sqlKind = UNINITIALIZED; nested exception is java.sql.SQLException: 无效的 SQL 类型: sqlKind = UNINITIALIZED] with root cause

原因:select标签后面有多余的">
10、mapper返回的list集合,数量正确,但属性为null
在这里插入图片描述
解决:resultMap中的column与property需一致,包括大小写也要一样
11、

There is no setter for property named 'SNAME' in 'class com.xxx.entity.xxx'

解决:resultMap中的column与property需一致,包括大小写也要一样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis PageHelper 是一个 MyBatis 分页插件,能够快速、便捷的进行分页查询,支持多种数据库。使用 PageHelper 可以避免手写 SQL 语句进行分页操作,同时 PageHelper 支持物理分页和逻辑分页两种方式。 下面是使用 PageHelper 进行分页查询的步骤: 1. 导入 PageHelper 依赖 Maven 项目在 pom.xml 文件中添加以下依赖: ``` <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.11</version> </dependency> ``` 2. 配置 PageHelper 在 MyBatis 的配置文件中添加以下配置: ``` <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <property name="dialect" value="mysql"/> </plugin> </plugins> ``` 其中 dialect 属性指定了数据库类型,PageHelper 支持的数据库类型包括:oracle、mysql、mariadb、sqlite、hsqldb、postgresql、db2、sqlserver、informix、达梦、人大金仓、南大通用、神通、PostgreSQL9.3-9.5。 3. 使用 PageHelper 进行分页查询 在需要进行分页查询的方法中使用 PageHelper.startPage 方法进行分页设置,然后调用查询方法获取查询结果。例如: ``` PageHelper.startPage(1, 10); // 第一页,每页显示 10 条记录 List<User> userList = userDao.selectUserList(); // 查询用户列表 PageInfo<User> pageInfo = new PageInfo<>(userList); // 封装分页结果 ``` 其中 PageHelper.startPage 方法接收两个参数,第一个参数为当前页码,第二个参数为每页显示的记录数。 最后使用 PageInfo 类对查询结果进行封装,得到分页结果。PageInfo 类中包含了分页信息和查询结果。 以上就是使用 MyBatis PageHelper 进行分页查询的基本步骤。需要注意的是,在使用 PageHelper 进行分页查询时,需要确保查询语句中不要使用 limit 关键字。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值