D1.MyBatis几个注解

MyBatis是一个支持自定义SQL和高级映射的优秀持久层框架,通过注解如@Select、@Insert等简化JDBC操作,将接口与JavaPOJO关联数据库记录。

MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

MyBatis中有以下几个重要的注解:

  1. @Select:提供查询SQL语句,用于指定查询的SQL语句。
  2. @Insert:提供插入SQL语句,用于指定插入的SQL语句。
  3. @Update:提供更新SQL语句,用于指定更新的SQL语句。
  4. @Delete:提供删除SQL语句,用于指定删除的SQL语句。
  5. @Results:提供结果映射,用于定义结果集的映射规则。
  6. @Param:给参数命名,用于在SQL语句中引用参数。
  7. @Mapper:标识接口,表示该接口是一个MyBatis的Mapper接口。
  8. @ResultMap:引用定义在XML中的ResultMap。
  9. @Options:提供JDBC相关的操作选项,例如超时、获取生成的主键等。
  10. @ResultType:用于指定返回结果的类型。

  1. @TableField(exist = false)

不在数据表里。

com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: com.itheima.mp.domin.po.Address Not Found TableInfoCache. at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:49) ~[mybatis-plus-core-3.5.3.1.jar:3.5.3.1] at com.baomidou.mybatisplus.core.toolkit.Assert.isTrue(Assert.java:38) ~[mybatis-plus-core-3.5.3.1.jar:3.5.3.1] at com.baomidou.mybatisplus.core.toolkit.Assert.notNull(Assert.java:72) ~[mybatis-plus-core-3.5.3.1.jar:3.5.3.1] at com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils.currentSessionFactory(GlobalConfigUtils.java:55) ~[mybatis-plus-core-3.5.3.1.jar:3.5.3.1] at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.sqlSession(SqlHelper.java:86) ~[mybatis-plus-extension-3.5.3.1.jar:3.5.3.1] at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.execute(SqlHelper.java:301) ~[mybatis-plus-extension-3.5.3.1.jar:3.5.3.1] at com.baomidou.mybatisplus.extension.conditions.ChainWrapper.execute(ChainWrapper.java:65) ~[mybatis-plus-extension-3.5.3.1.jar:3.5.3.1] at com.baomidou.mybatisplus.extension.conditions.query.ChainQuery.list(ChainQuery.java:39) ~[mybatis-plus-extension-3.5.3.1.jar:3.5.3.1] at com.itheima.mp.service.impl.IUserServiceImpl.queryUserAndAddressById(IUserServiceImpl.java:67) ~[classes/:na] at com.itheima.mp.service.impl.IUserServiceImpl$$FastClassBySpringCGLIB$$24d1ebf1.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) ~[spring-aop-5.3.27.jar:5.3.27] at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) ~[spring-aop-5.3.27.jar:5.3.27] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) ~[spring-aop-5.3.27.jar:5.3.27] at com.itheima.mp.service.impl.IUserServiceImpl$$EnhancerBySpringCGLIB$$856d04da.queryUserAndAddressById(<gen
04-30
### 解决方案 当遇到 `unable to read meta-data for MyBatis config class` 错误时,通常是因为 Spring 或者其他框架无法找到指定配置类的位置。这可能是由于包扫描路径不正确、缺少必要的依赖项或者是配置文件中的错误引起的。 对于特定于 `com.common.mybatis.config.MybatisConfig` 类的情况,可以考虑以下几个方面来解决问题: #### 1. 检查包结构和组件扫描范围 确保项目中定义的 `@ComponentScan` 注解包含了 `com.common.mybatis.config` 这个包。如果使用的是Spring Boot,则默认会自动扫描启动类所在包及其子包下的所有组件;如果不是,默认情况下可能不会扫描到该位置,因此需要显式声明[^1]。 ```java @SpringBootApplication(scanBasePackages = {"com.example", "com.common"}) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` #### 2. 验证MyBatis配置类上的注解 确认 `MybatisConfig` 上有适当的应用程序上下文感知型注解(如 `@Configuration`, `@MapperScan`),以便让容器识别这是一个配置类并加载相应的映射器接口。 ```java @Configuration @MapperScan(basePackages="com.common.mapper") public class MybatisConfig { } ``` #### 3. 查看日志输出 通过查看应用程序的日志信息可以帮助定位具体原因。特别是要注意是否有任何关于找不到资源或类加载失败的信息被记录下来。这些提示可能会指向更深层次的问题,比如classpath设置不当等。 #### 4. 确认依赖关系 检查项目的构建工具(Maven/Gradle)配置文件,保证已经引入了mybatis-spring-boot-starter或其他必需的相关库版本,并且它们之间不存在冲突。 ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>${mybatis.version}</version> </dependency> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值