创建第一个mybatis程序 遇到的问题

解决错误: Failed to load class “org.slf4j.impl.StaticLoggerBinder“

缺少一个jar包,jar包如下:

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.25</version>
</dependency>

或者

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-nop</artifactId>
    <version>1.7.25</version>
</dependency>

第三种Java环境有问题,比如Jdk7对应tomcat7,Jdk8对应tomcat8等等。
 

 解决Mybatis报错问题:Type interface com.tjcu.dao.UserDao is not known to the MapperRegistry.

解决方案分为两种情况:
1.在mybatis核心配置文件中(mybatis-config.xml)配置mappers
<!--  每个mappers.xml文件都需要在mybatis-config.xml核心配置文件中注册-->
<mappers>
  <mapper resource="com/tjcu/dao/UserDaoImpl.xml"></mapper>
</mappers>

2.就是namespace编写出错(就是namespace的位置与实际文件位置不同)
注意报错中提示的:is not known to the MapperRegistry.这个表示没有这个映射地址,也就是说虽然配置文件中配置了,又能是SQL配置文件Mapper.xml中配置错误了,也有可能namespace中编写时出了错误:

 

namespace的设置与文件实际的位置不同


 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MyBatis 中使用临表的方式和在普通 SQL 语句中使用临表的方式是一样的。 首先需要在 SQL 语句中创建表,然后再进行相关操作。下面以 MySQL 数据库为例,演示如何在 MyBatis 中使用临表。 1. 创建表 在 MySQL 中,可以使用以下语句创建表: ```sql CREATE TEMPORARY TABLE temp_table ( id INT PRIMARY KEY, name VARCHAR(20) ); ``` 2. 在 MyBatis 中使用临表 首先,在 MyBatis 的 Mapper 文件中定义 SQL 语句,并将创建表的 SQL 语句和相关操作的 SQL 语句写在一起,例如: ```xml <mapper namespace="com.example.mapper.TempTableMapper"> <select id="queryTempTable" resultType="java.util.Map"> <![CDATA[ CREATE TEMPORARY TABLE temp_table ( id INT PRIMARY KEY, name VARCHAR(20) ); INSERT INTO temp_table (id, name) VALUES (1, '张三'); INSERT INTO temp_table (id, name) VALUES (2, '李四'); SELECT * FROM temp_table; ]]> </select> </mapper> ``` 在上面的例子中,先创建了一个临表 `temp_table`,然后插入了两条数据,最后查询了整个表。 3. 调用 Mapper 方法执行 SQL 语句 在 Java 代码中,调用 Mapper 方法执行 SQL 语句即可,例如: ```java public interface TempTableMapper { List<Map<String, Object>> queryTempTable(); } public class MyBatisTest { public static void main(String[] args) { SqlSession sqlSession = MyBatisUtil.getSqlSession(); TempTableMapper tempTableMapper = sqlSession.getMapper(TempTableMapper.class); List<Map<String, Object>> resultList = tempTableMapper.queryTempTable(); System.out.println(resultList); sqlSession.close(); } } ``` 最后,执行 Java 代码即可看到查询结果。需要注意的是,在 MyBatis创建的临表只在当前的会话中存在,在会话关闭会自动删除。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值