我们从数据库中取到的数据都会交给实体类,然后从实体类中拿到数据并操作数据,所以如果我们数据库中的字段要是和实体类中的属性不一致的话,我们就从实体类中无法得到我们想要的一些数据
解决方法:
就是在Mapper.xml文件中将字段全部写出来,并给想到的字段起别名
我们只需要在Mapper.xml文件中加入resultMap,设置column和property使得数据传输一致
Mybatis配置解析(核心配置文件)
我们只需要学重点的几个,其余作为了解
Mybatis可以配置成适应多种环境
不过要记住:尽管可以配置多个环境,但每个SqlSessionFactory实例只能选择一种环境
学会使用配置多套运行环境!
Mybatis默认的事务管理器就是JDBC,连接池:POOLED
通过properties我们可以引入外部配置文件,实例如下:
编写db.properties
第一种:
通过其别名,我们的返回值类型和参数类型就不需要写那么长了
第二种:
也可以指定一个包名,Mybatis会在包名下搜索需要的javabean,比如:
扫描实体类的包,他的默认为这个类的类名(首字母小写)
所以直接指定一个包,包下的所有类就都有了自己的别名,更加快捷
在指定包的情况下(就是使用第二种方式),若我们不想使用小写作为他的别名,那么我们可以通过注解继续给类起别名,例如:
所以有两种起别名的方式
如果实体类非常少,使用第一种方式
如果实体类非常多,建议使用第二种方式
这是mybatis中极为重要的调整设置,他们会改变mybatis的运行时行为
类型处理器(typeHandlers)
对象工厂(objectFactory)
插件(plugins)
MapperRegistry:注册登记我们的Mapper文件
注意点:
接口和他的Mapper配置文件必须同名
接口和他的Mapper配置文件必须在同一个包下
注意点:
接口和他的Mapper配置文件必须同名
接口和他的Mapper配置文件必须在同一个包下
生命周期和作用域是至关重要的,因为错误的使用会导致非常严重的并发问题
SqlSessionFactoryBuilder:
SqlSessionFactory:
SqlSession
这里面的每一个Mapper就代表一个具体的业务。