mybatis---error

本文详细解析了一个由SQL语句中参数设置不当引起的MyBatis系统异常案例,强调了在SQL语句编写过程中对参数类型及数量进行仔细检查的重要性。

我的是sql语句错误,就因为一个 ` 符号,找了半个小时,要细心啊

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='startTime', mode=IN, javaType=class java.lang.String, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
    at com.sun.proxy.$Proxy74.selectList(Unknown Source)
    at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:230)
    at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:75)
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
    at com.sun.proxy.$Proxy77.getMiningTodayList(Unknown Source)

### 集成 MyBatis-Plus 并实现前后端分离开发 #### 1. 创建 Spring Boot 项目结构 为了构建一个完整的应用程序,首先需要搭建基础的 Spring Boot 项目框架。确保引入必要的依赖项来支持 MyBatis-Plus 和其他所需的功能。 ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency> <!-- 添加 Vue.js 支持 --> <build> <plugins> <plugin> <groupId>com.github.eirslett</groupId> <artifactId>frontend-maven-plugin</artifactId> <!-- 插件配置... --> </plugin> </plugins> </build> ``` #### 2. 数据库连接配置 编辑 `application.yml` 文件以设置数据库参数: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver ``` #### 3. MyBatis-Plus 初始化配置 通过创建自定义配置类完成 MyBatis-Plus 的初始化工作[^4]。 ```java @Configuration public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } } ``` #### 4. 构建 RESTful API 接口 编写控制器用于暴露 CRUD 操作接口供前端调用。 ```java @RestController @RequestMapping("/api/users") public class UserController { private final UserService userService; public UserController(UserService userService) { this.userService = userService; } @GetMapping("/{id}") public ResponseEntity<UserDTO> getUser(@PathVariable Long id){ User user = userService.getById(id); if (user != null) { return ResponseEntity.ok().body(convertToDto(user)); } else { throw new ResourceNotFoundException("User not found"); } } // Other endpoints... } ``` #### 5. 前端部分 - 使用 Vue.js 安装 Node.js 及其包管理工具 npm 或 yarn 来管理和运行客户端应用。利用 vue-cli 工具快速建立新工程,并按照官方文档指导逐步添加组件和服务请求逻辑。 ```bash npm install -g @vue/cli vue create frontend-app cd frontend-app npm run serve ``` 在 Vue 组件内部发起 HTTP 请求获取后端返回的数据: ```javascript import axios from 'axios'; export default { name: 'App', data () { return { users: [] }; }, mounted(){ axios.get('/api/users') .then(response => this.users = response.data) .catch(error => console.log(error)); } }; ``` 以上就是关于如何在一个基于 Spring Boot + MyBatis-Plus 技术栈的应用程序中实施前后端分离模式的基本流程概述[^1][^2][^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值