Mybatis学习笔记
1.1 为什么需要Mybatis?
帮助程序猿将数据存入到数据库中
方便
传统的JDBC代码太复杂,简化–>框架–>自动化
优点:
最重要的一点:使用的人多!
Spring-SpringMVC-SpringBoot
1.2、第一个Mybatis程序
思路:搭建环境–>导入Mybatis–>编写代码–>测试
2.1 搭建环境
搭建数据库
新建项目
新建一个普通maven项目
删除src目录
导入maven依赖
2.2创建一个模块
编写mybatis的核心配置文件
此处设useSSL=false。
2.3编写mybatis工具类
2.4编写代码
实体类
• Dao接口
•
• 接口实现类由原来的UserDaoImpl转变成一个Mapper配置文件。
2.5 测试
注意点:
org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UserDao is not known to the MapperRegistry.
MapperRegistry是什么?
核心配置文件中注册mappers
junit测试
2.4 测试
注意点:
org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UserDao is not known to the MapperRegistry.
MapperRegistry是什么?
核心配置文件中注册mappers
可能遇到的问题:
- 配置文件没有注册;
- 绑定接口错误;
- 方法名不对;
- 返回类型不对;
- Maven导出资源问题。
3、CRUD(2020-10-22)
3.1 namespace
namespace中的包名要和Dao/Mapper接口的包名一致!
3.2 select
选择,查询语句;
id:就是对应的namespace中的方法名;
resultType:Sql语句执行的返回值!
parameterType:参数类型!
1.编写接口
2.编写对应的mapper中的sql语句
3.测试
注意点:
• 增删改需要提交事务!
3.6 分析错误
- xml文件中注释不能出现中文报错,查看自己的是UTF-8还是GBK编码,改成为相应的就行。
3.7 万能Map
假设,我们的实体类,或者数据库中的表,字段或者参数过多,我们应当考虑使用Map!
Map传递参数,直接在sql中取出key即可!【parameterType=“map”】
对象传递参数,直接在sql中取对象的属性即可!【parameterType=“Object”】
只有一个基本类型参数的情况下,可以直接在sql中取到!
多个参数用Map,或者注解
3.8思考题
模糊查询怎么写?
- java代码执行的时候,传递通配符% %
2.在sql拼接中使用通配符!
4.1配置解析(2020-10-23)
核心配置文件
• mybatis-config.xml
• MyBatis的配置文件包含了会深深影响MyBatis行为的设置和属性信息。
4.2 环境配置(environments)
Mybatis可以配置成适应多种环境
不过要记住:尽管可以配置多个环境,但每个SqlSessionFactory实例只能选择一种环境。
学会使用配置多套运行环境!
Mybatis默认的事务管理器就是JDBC,连接池:POOLED
4.3 属性(properties)
我们可以通过properties属性来实现引用配置文件
这些属性都是可外部配置且可动态替换的,既可以在典型的Java属性文件中配置,亦可通过properties元素的子元素来传递。【db.properties】
编写一个配置文件
db.properties
在核心配置文件中映入