1.CRUD
1.1 namespace
namespace中的包名要和接口中的包名一致!
1.2 select
查询,选择语句:
- id: 就是对应的namespace中的方法名
- resultType: sql语句的返回值
- parameter:参数类型
-
编写接口
- 编写mappper中的sql语句。
- 测试
注意:
增删改查需要提交事务。
1.3 分析错误
- 标签不要匹配错
- resource绑定mapper需要路径
1.4 万能map
假设,我们的实体类,或者数据库中的表,字段或参数过多,可以使用map
多个参数用map或注解。
注意:
模糊查询:
1. java代码在执行的时候,传递通配符 % %;
2. 在sql拼接中使用通配符。
2.配置解析
2.1 核心配置文件
- mybatis-config.xml
2.2 环境配置
Mybatis可以适应多种配置环境
每个sqlSessiom只能选择一种环境
Mybatis默认的配置环境为JDBC,连接池是: POOLED。
2.3 Propertes
- 编写一个db.properties
- 在核心配置文件中引入
可以直接引入外部文件,
可以在其中增加一些属性配置
如果两个文件有外部配置,优先使用外部配置文件。
2.4 类型别名(typeAliases)
注解实现别名
2.5 映射器(mapper)
MapperRegistry:注册绑定我们的mapper文件
方法一:使用扫描包注入绑定
接口和配置文件必须同名
2.6 生命周期和作用域
Mapper的作用机制:
这里的每一歌Mapper,代表一个具体业务
3.解决属性名与字段名不一致的问题
解决方法:
* 起别名
3.1 ResultMap
报错分析:
修改:mybatis-config中核心配置文件中mapper映射路径写正确
修改:将UserMapper.xml文件中resultMapzhong type标示正确
4.日志
4.1 日志工厂
如果一个数据库操作,出现了异常,我们需要排错,日志就是最好的助手!
曾经: debug
现在 : 日志工厂;
标准日志工厂实现:
sqlSession类似于数据库连接。
4.2 log4j
什么是log4j?
log4j是Apache的一个开源项目,通过使用log4j,我们可以控制日志信息输送目的地是控制台,GUI,文件组件。
我们也可以控制每一条日志的输出格式
通过定义每一条日志的级别,我们可以控制日志的生成过程。
通过配置文件灵活配置。
先导入log4j的包:
5. 分页
减少数据的处理量。
测试:
6.使用注解开发
8.1 面向接口编程
接口: 定义与实现的分离
接口反映了系统设计人员对系统的抽象理解
接口应有两类:
一类对个体的抽象,被称为抽象体
一类对个体某一方面的抽象,被称为抽象面。
8.2 使用注解开发
1.注解在接口上实现
2.需要在核心配置文件中绑定接口
本质:反射机制
底层:动态代理
8.3 CRUD
我们可以在工具类创建的时候实现自动提交事务
注解实现增删改查
!!!关于Param注解:
- 基本类型的参数或String类型,需要加上
- 引用类型不需要加
- 我们在sql中引用的就是Param中设置的
*