1.功能正常,但是读出来的数据是null
原因: Mapper.xml中的select语句写错,或者查错了表
比如我要查的表时student
结果我的sql语句是 select * from teacher where id=#{id};
2.报错invalid types () or values ()解决方法
原因:
1) Bean函数中的get/set方法与成员变量不一。
2) 构造函数被重载过,但是没有空的构造函数。
3) 最好不要使用简单类型,如int, long等,改用对象模式Integer, Long等。在写条件查询时会用到判断<if xxx ! = null > … </if>的
根据网上的解答,我发现自己犯了第二条错误, 构造函数被重载过,但是没有空的构造函数。
那么为什么会这样呢?
因为mybatis执行sql语句后,会根据反射机制返回一个对象,反射默认是根据空构造函数来构造一个对象的,如果重载了有参数的构造函数,那么缺省空构造函数就没有了,就报错
3. Mapped Statements collection does not contain value for :
错误原因有几种:
3.1、mapper.xml中没有加入namespace
3.2、mapper.xml中的方法和接口mapper的方法不对应
3.3、mapper.xml没有加入到mybatis-config.xml中(即总的配置文件),例外:配置了mapper文件的包路径的除外
3.4、mapper.xml文件名和所写的mapper名称不相同。
4.查询一个数据用selectOne,查询一堆数据用selectList
5.用接口和注解的方式,不用写映射文件,但是还是要注册!!!
6.一对一关联表查询的时候,出现了
Could not set property 'teacher' of 'class s1.Classes' with value 'teacher [id=1 name=ert]
出现这种情况的原因就是 我把Classes类中的teacher定义成了int类型
错误: private int id; 正确 private int id;
private String name; private String name;
private int teacher; private Teacher teacher;
7.一对一关联表查询的时候,一定要在数据库中先关联表!!!
代码示例:
ALTER TABLE class ADD CONSTRAINT fk_teacher_id FOREIGN KEY (teacher_id) REFERENCES teacher(t_id);
8.为mybatis配置log4j.properties的方法:
只要在src目录下创建一个log4j.properties文件,然后设置好代码就好了,非常简单,目录结构如下图
9.log4j.properties文件的配置代码:
log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG
10. mybatis中,一个session对应一个数据库会话,
在SqlSessionFactory.openSession(true) //true表示自动提交,false表示关闭自动提交
所以session有 session.commit()
session.close()
session.rollback()
11.在一次简单查询中,根据日志记录,发现能查到数据,但是myeclipse中显示的结果是null
后来找了很多资料才发现,实体类的属性名和数据库中字段名不对应,需要告诉编译器
有2种方式:
第一种:
//注意 顺序很重要,先写字段名,再写属性名, 下面例子中,order_id是表的字段名,id是实体类的属性名
select order_id id,order_name name,order_price from student where order_id=#{id}
第二种:
方法2:
<select id="getAllStudent" resultMap="s1.Student"> //将resultType改成resultMap
select * from student
</select>
<resultMap type="order" id="getOrderMap">
<id property="id" column="order_id" /> //主键用id标示
<result property="name" column="order_name" /> //一般字段用result
<result property="price" column="order_price" />
</resultMap>
12.mybatis中Mapper.xml中namespace的作用:外部调用需要知道它的namespace,根据namespace找到对应的Mapper.xml,再根据MybatisConfig.xml(Mybatis全局配置文件),找到Mapper的路径,读取其中的内容
13.报错内容:Type interface s1.MyMapper is already known to the MapperRegistry.
就是congfi.xml中重复注册了映射文件,去掉重复的就可以了
相关推荐
在Java Web开发中,Servlet和...总结,Servlet3.0与MyBatis的整合,使得Java Web应用的开发更加便捷,同时充分利用了两者的优势,提高了开发效率。通过理解上述知识点,开发者可以轻松地在实际项目中实现这一整合。
这通常包括代码提示、自动完成、错误检查和快速修复等功能,使得在IDEA中使用Mybatis变得更加顺滑。 标签"工具"表明这个插件是一个开发辅助工具,是开发者在编程过程中可以利用的一种资源,旨在简化工作流程,提升...
这里提到的笔记可能包括对Mybatis核心概念的理解、实际项目中遇到的问题及解决办法、最佳实践等方面的总结。通过阅读他人的笔记,开发者可以更快地理解和掌握Mybatis的精髓,避免重复踩坑。 5. **Mybatis的核心概念...
总结来说,MyBatis-3.zip文件包含的是MyBatis 3.4.6版本的DTD文件,它们是理解和使用MyBatis框架的关键。通过解析并遵循这些DTD定义,开发者可以构建出符合规范的MyBatis配置和映射文件,从而高效地进行数据库操作。...
通过本文介绍的知识点,读者可以了解到 MyBatis 的基本概念、安装方法、配置方式以及如何使用 SqlSessionFactory 和 SqlSession 进行数据库操作。此外,还介绍了如何通过 XML 或 Java 注解定义 SQL 映射,以便更好地...
总结一下,这个"springboot+mybatis等测试项目"主要涵盖了以下知识点: 1. Spring Boot的自动配置和起步依赖 2. 使用配置文件连接数据库 3. jasypt敏感信息加密 4. MyBatis的SQL映射和接口绑定 5. 数据库分页查询 6....
在这个压缩包中,我们看到涉及到的主要知识点包括Java基础、MySQL数据库管理、Spring Boot微服务开发、MyBatis持久层框架、Redis缓存技术和RabbitMQ消息队列。接下来,我们将逐一深入探讨这些关键领域的核心概念和...
### MyBatis框架知识点概述 #### 一、MyBatis简介 MyBatis是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。它最初源自Apache的一个开源项目iBatis,2010年该项目从Apache Software Foundation迁移到...
- 异常处理:Java通过try-catch-finally语句处理程序运行时可能出现的错误。 - 内存管理:Java使用垃圾回收机制自动管理内存,但理解如何避免内存泄漏也很关键。 - 泛型:提高代码复用性,确保类型安全。 2. **...
总结,MyBatis3的环境搭建优化涉及多个层面,从基础配置到最佳实践,每个环节都需要细致考虑,以达到提升开发效率和系统性能的目的。在实际开发中,结合具体业务场景,灵活运用上述知识点,可以构建出高效、可维护的...
这篇“Java基础知识总结(经典)”涵盖了Java开发中的核心概念和重要知识点,旨在为初学者和有经验的开发者提供一个全面的回顾。以下是主要的学习点: 1. **Java环境配置**:在开始编程之前,必须安装Java ...
总结来说,对于在IntelliJ IDEA 14.1.177中遇到的MyBatis插件问题,可以通过更新IDE、插件、检查配置、清理构建和查看日志等方式解决。同时,MyBatis-Plus作为一个强大的MyBatis扩展,能够帮助开发者更高效地进行...
总结,SpringBoot+Mybatis的应用开发中,前端与后端的交互、数据传输的格式、异常处理、服务间的通信以及代码的自动生成都是重要的知识点。在实际工作中,理解并熟练掌握这些技能,可以提高开发效率,减少错误,提升...
### MyBatis 第一阶段知识点概述 #### 一、MyBatis简介与演变历程 - **起源与发展**:MyBatis起源于Apache的一个开源项目iBatis,在2010年由Apache Software Foundation迁移到Google Code,并更名为MyBatis。2013年...
通过系统地学习Spring MVC和MyBatis的基本原理、核心特性和实战应用,开发者能够更好地掌握这两种框架的使用技巧,并能够在实际项目中灵活运用。此外,结合具体的实战案例分析,可以帮助开发者更快地理解并掌握这些...
在构建一个基于Mybatis和SpringMVC的项目时,我们需要按照一系列步骤进行配置。下面将详细阐述这些步骤涉及的关键知识点: 第一步:添加依赖包 在项目中,我们需要引入Mybatis、SpringMVC以及相关的库,如Spring...
MyBatis是一个优秀的持久...总结来说,MyBatis-3.2.x.jar是MyBatis框架的一个版本,它包含了一系列用于简化数据库操作的工具和特性。通过理解并熟练运用这些知识点,开发者可以构建出高效、易于维护的数据库应用程序。
### MyBatis Eclipse 插件知识点详解 #### 一、MyBatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。...
### MyBatis 3.4.7 中文用户指南知识点概览 #### 一、MyBatis概述 - **定义**:MyBatis是一款优秀的持久层框架,支持自定义SQL语句、存储过程及高级映射功能。它极大简化了JDBC编程模式,通过XML配置文件或注解的...
总结,Spring Boot与MyBatis的集成提供了简洁的配置方式和高效的开发体验。通过理解并熟练掌握这些知识点,开发者能够在Spring Boot环境中充分利用MyBatis的强大功能,构建出高性能的Java Web应用。同时,随着版本的...